Бэкслеш - теперь разделитель для неймспейсов

Статус
В этой теме нельзя размещать новые ответы.

Bakti9rov

!*|=?
Бэкслеш - теперь разделитель для неймспейсов

Вот майнтайнеры РНр отожгли... Теперь вместо :: разделителем для неймспейсов в php5.3 становится... бэкслэш! Знак "\"

Как вам такое :

Код:
$var = new \Foo\Bar\Baz();
Foo\Bar::static_method();
$class_name = "Foo\\Bar";
А выбор в пользу этого варианта определился по следующим критерям :

Criterions
(1) type-ability (how easy is it to type the separator)
(2) typo-vulnerability (how easy is it to make a typo and get an unwanted behavior without a error/warning)
(3) parse-ability (how easy is it to read the code and figure out whats going on without getting confused with similar syntax that means another thing)
(4) IDE compatibility
(5) number of chars

http://wiki.php.net/_media/rfc/php.ns.txt?id=rfc:namespaceseparator&cache=cache - здесь history из самого IRC-чата, в ходе которого обсуждались варианты и сложности с "::".

http://wiki.php.net/rfc/namespaceseparator- RFC на эту тему
 

rotoZOOM

ACM maniac
С другой стороны - это как раз напоминает путь от корня файловой системы (правда слэш немного в противоположную сторону). :)
 

ustas

Элекомист №1
А давайте спросим у Tony2001 кто это придумал? Синтаксис устоялся, зачем его менять? Уж лучше $foo.bar, чем слеш использовать.
 

fixxxer

К.О.
Партнер клуба
они с ума посходили!
неймспейсы оставить только для классов, вот и решение. зачем язык то говнять.

кстати, это уже проходили =)
 

kode

never knows best
оушит.

ЗЫ. Небольшой вопрос: лицензия PHP позволяет его форкануть?
 

dr-sm

Новичок
в первом случае путь от рута указан, а в других нет, непонятно.
странновато конечно выглядит :).
 

fixxxer

К.О.
Партнер клуба
kode
хочешь свой похапе с блекджеком и шлюхами? :)
 

Beavis

Banned
Автор оригинала: ustas
А давайте спросим у Tony2001 кто это придумал? Синтаксис устоялся, зачем его менять? Уж лучше $foo.bar, чем слеш использовать.
точка уже занята =(
 

fixxxer

К.О.
Партнер клуба
ага, потому что отличить константу от имени класса можно только в рантайме.

в компилирующих языках гораздо больше возможностей в плане контекстозависимости синтаксиса, там все известно на этапе компиляции. так что сравнивать с тем же с++, разумеется, некорректно.

но за бэкслеш я буду их всех ненавидеть еще долго. :E~ уж лучше пара неявных особенностей (которые на практике никаких неудобств не вызывают - мы один проект на 5.3 пишем), чем это уродство.
 

DYPA

Настоящая dypa (c)
самый главный аргумент - когда пишешь не нужно нажимать shift смешон, тк для :: мы нажимаем shift, для -> тоже, чем быстронабираемый :> неугодил не понятно
смотриться ужастно http://php.net/~helly/backslash-colored.html
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
О да, что не язык, то новый синтаксис надо придумать, есть два устоявшихся разделителя неймспейсов (имхо) "." и ":" (java, c++, .net, xml), но мы же гордые, нам надо свой разделитель. здается что без славян здесь не обошлось :), нам обязательно надо сделать все по своему и желательно через .оопу.
 

fixxxer

К.О.
Партнер клуба
Ирокез
не надо вот про славян, стогов там как раз кажется единственный кто был четко против ;)
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
fixxxer
да..., один в поле не воин, собственно еще пару недель назад, я как предвидев, запостил в офтопике тему про новые фичи в пхп, чувствовал не к добру они :)
 

Wicked

Новичок
что-то мне подсказывает, что нэймспэйсы не будут пользоваться большой популярностью .-)
 

fixxxer

К.О.
Партнер клуба
дык мы уже используем, ради них в этом проекте и перелезли на 5.3 - очень в тему пришлись.
попробовал заменить на бэкслеши - пипец какое уродство получается, гррр.
 

phprus

Moderator
Команда форума
Верх идиотизма... Может еще и ключевые слова иероглифами писать придумают?!

А аргумент про shift вообще гениальный... Они видимо не очень понимают, что символ "\" находится вне буквенно-цифрового блока клавиш и по этому к нему придется каждый раз тянуться отдельно, а ":" легко нажимается привычным, отработанным движением.

Кроме того ИМХО разделитель "\" в большом количестве случаев будет просто сливаться с окружающими буквами и будет трудно различим при чтении кода.
 

Krishna

Продался Java
Есть какой-нибудь способ для общественности повлиять на это безобразие?)

-~{}~ 27.10.08 12:12:

Надо поторопиться, пока 5.3 всё еще альфа :)
 

fixxxer

К.О.
Партнер клуба
предлагаю прекратить тестить 5.3, пока не вернут как было :D

еще можно bugs.php.net побомбить. багрепортами вида backslash namespace delimiter sucks. =)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху