Здравствуйте, Mr.Cat, Вы писали:
F>>Собственно, сабж.. MC>Мне вот тоже интересно. Было бы здорово, если бы кто-нибудь сведующий написал статью в вики (ну или тут, а я бы ее вики загнал).
Здравствуйте, neFormal, Вы писали:
F>- скорость работы, производительность?.
я так понял, что php в скорости работы не уступает питону.. бенчмарки тоже ничего конкретного не говорят..
кто может рассказать какие нибудь личные наблюдения?.
Здравствуйте, Daevaorn, Вы писали:
F>>я так понял, что php в скорости работы не уступает питону.. F>>бенчмарки тоже ничего конкретного не говорят.. D>Извините, но куда уж конкретнее?
знаешь, я сомневаюсь в идеальности тестов в принципе..
здесь питон рвет пхп, но как то не сильно.. я ожидал большего..
да еще тут небось 2я версия, а 3я еще не такая шустрая.. поэтому для меня результат не такой очевидный..
Здравствуйте, neFormal, Вы писали:
F>Собственно, сабж.. F>Какие есть объективные причины?.
Для меня главной минус это провал основной PHP идеи. А ведь, казалось, так здорово писать код прямо внутри html странички. Широкое распространение шаблонных движков под PHP (а зачем они вобще нужны в php?), демонстрирует что не так все оно просто.
Создатели PHP ошиблись. Они еще много где ошибались, благородно пытаясь создать язык для чайников. Например, первая реализация ооп, глупые антипаттерны с request переменными, защишенный режим в попытке избежать многих косяков.
История PHP как языка — это история неудач. И нет никакой гарантии что они не продолжаться в будущем.
-- Главное про деструктор копирования не забыть --
Здравствуйте, kmmbvnr, Вы писали:
K>История PHP как языка — это история неудач. И нет никакой гарантии что они не продолжаться в будущем.
Будет. Создатели PHP — так фантазёры! В качестве разделителя namespace'ов для следующего PHP они выбрали символ '\'
Здравствуйте, Гест, Вы писали:
Г>нарушено как минимум в explode, где СНАЧАЛА надо передать разделитель, а потом уж — "что делить").
Это взято из перла. И в перле на то были веские причины.
Вообще в PHP много торчит перловских ушей, только они там как-то бездумно торчат — не понимал разработчик зачем так было сделано в perl.
Здравствуйте, уважаемые вовлеченные в обсуждение, хочу кинуть свои три гроша в очередную Священную Войну. Только, плиз, не надо в духе незабвенной Евгении Альбац сучить ножками и кричать: "ВОН! ВОН ИЗ ПРОФЕССИИ!!!!", как это делал один мой коллега во время подобного обсуждения.
Итак.... Вполне себе успешных языков с пережитками прошлого — навалом.
Страус писал C++ так, чтобы он был полностью совместим с C (и, соответственно, со всеми его "кулхацкерскими" прибамбасами типа "оператор запятая", префиксная и постфиксная форма инкремента). Про C-строки Спольски целый опус написал, про то, чем они хуже Pascal-строк. Ну хорошо, это его частное мнение нестандартного программиста. Но гуру C++ вроде бы тоже рекомендуют в программах поменьше использовать C-строки и C-массивы, а побольше — std::string и std::vector.
Perl: та самая $переменная, которую тут ругали, а еще %переменная и @переменная, переменная $_, которая используется там, где переменная должна быть, но её нет, передача аргументов в подпрограмму через список с предопределенным именем @_, ну ит.п., список агромадный.
Со временем при развитии вышеупомянутых языков в них добавлялось еще много всякого разного не совсем логичного: vector <bool>, mem_fun, знаменитая конкатенация строк, когда
std::string s,d;
d="%опа";
s=d+"есть";
работает, а вот
std::string s;
s="%опа"+"есть"+"а"+"слова"+"нет";
не работает.
Вообще же, как известно, в стандарте C++ наворотов столько, что ни один компилятор не выполняет требования стандарта полностью.(Хотя, возможно, у меня устаревшие сведения, и такой чудо-компилятор появился).
Модель "почти-объекта" построенная на package в Perl — это же застрелиться можно.
Как Perl, так и С++ позволяют неопытному программисту писать очень небезопасные программы с дырами, глюками и багами. Та же Ada бьёт программера по рукам за любой огрех (один из гуру C++ откровенно написал: если вы нуждаетесь в ремнях безопасности при программировании — программируйте на Ada). Что-то я не вижу вокруг себя толпы Ada-программистов.
Ни Perl, ни C++ не умерли, они вполне себе живут и используются, несмотря на эклектичность, нелогичность, пережитки прошлого, опасность в неумелых руках и прочее, за что тут ругали PHP. Почему? Честно говоря, хз. Есть в них преимущества, которые перевешивают упомянутые недостатки. И есть у других "красивых" языков отсутствие этих самых преимуществ. Ну, типа, речь окончена.
Здравствуйте, Аноним, Вы писали:
А>Perl: та самая $переменная, которую тут ругали, а еще %переменная и @переменная, переменная $_, которая используется там, где переменная должна быть, но её нет, передача аргументов в подпрограмму через список с предопределенным именем @_, ну ит.п., список агромадный.
В перле-то как раз все сделано логично и даже очень, а в PHP, такое ощущение, что пытались скопировать внешний вид не понимая сути...
Здравствуйте, DOOM, Вы писали:
А>>Perl: та самая $переменная, которую тут ругали, а еще %переменная и @переменная, переменная $_, которая используется там, где переменная должна быть, но её нет, передача аргументов в подпрограмму через список с предопределенным именем @_, ну ит.п., список агромадный. DOO>В перле-то как раз все сделано логично и даже очень, а в PHP, такое ощущение, что пытались скопировать внешний вид не понимая сути...
можно примеров что было в перле сделано логично и правильно, а потом бездумно скопировано в php?.
...coding for chaos...
Re[3]: Почему так ругают PHP?.
От:
Аноним
Дата:
12.01.09 08:25
Оценка:
Здравствуйте, DOOM, Вы писали:
DOO>В перле-то как раз все сделано логично и даже очень, а в PHP, такое ощущение, что пытались скопировать внешний вид не понимая сути...
Может быть, может быть. В Python ничего этого нет, в Tcl $ используется при разыменовании, т.е.:
#присвоить x значение 22
set x 22
#присвоить y значение, содержащееся в x
set y $x
, а что касается контекста, то он в Tcl определяется без перловых @ $ %. И ничего, никто не жалуется.
Сам пафос (ха-ха) поста — о том, что не всегда успешность==(красота+логичность) (Кстати, оператор сравнения в С++ — еще один пережиток славного прошлого. Кто ни разу не нажигался на "if(x=1)" — поднимите руку )
Здравствуйте, Аноним, Вы писали:
А>а что касается контекста, то он в Tcl определяется без перловых @ $ %. И ничего, никто не жалуется.
Вопрос гибкости. Tcl не знаю, правда. Но в перле легко придумать множество ситуаций, когда невозможно определить контекст.
А>Сам пафос (ха-ха) поста — о том, что не всегда успешность==(красота+логичность)
Очень жаль. Потому что в перле красота есть, а в PHP ее нет.
В питоне тоже есть своя красота, но уже немного другая.
Re[5]: Почему так ругают PHP?.
От:
Аноним
Дата:
12.01.09 08:46
Оценка:
Здравствуйте, DOOM, Вы писали:
DOO>Очень жаль. Потому что в перле красота есть, а в PHP ее нет. DOO>В питоне тоже есть своя красота, но уже немного другая.
Про Python — согласен, он прост и логичен, и я его освоил очень быстро, а вот Perl.....
Логичности в нем гораздо меньше, возможностей для неопытного программера наделать глупостей — больше. Пресловутая концепция TIMTWDI — по моему скромному мнению, полный бред. И не только по моему мнению — в конце концов само сообщество Perl выработало ряд общепринятых идиом. А почему эти идиомы нельзя было с самого начала сделать встроенными в язык обязательными к исполнению правилами?
Здравствуйте, Аноним, Вы писали:
А>Про Python — согласен, он прост и логичен, и я его освоил очень быстро, а вот Perl..... А>Логичности в нем гораздо меньше, возможностей для неопытного программера наделать глупостей — больше.
Логичность там полная. В перле надо хорошо знать несколько концепций и все становится очень просто.
Да местами они перегнули палку, например с похожими операторами сравнения с разным приоритетом, но это в угоду красоте кода
Не забывай, что автор перла — лингвист.
А>А почему эти идиомы нельзя было с самого начала сделать встроенными в язык обязательными к исполнению правилами?
Потому что было бы нарушение свободы
Re[7]: Почему так ругают PHP?.
От:
Аноним
Дата:
12.01.09 09:23
Оценка:
Здравствуйте, DOOM, Вы писали:
DOO>Логичность там полная. В перле надо хорошо знать несколько концепций и все становится очень просто.
Да вообще, любой язык, вплоть до ассемблера для Z80, с которого я начинал, если им овладеешь — простой и понятный. ИМХО, логичность характеризуется скоростью овладевания языком. Объективно, по моему опыту, по опыту ряда коллег, скорость овладевания Perl ниже, чем у Python или Tcl. Опять же, куча "специальных" переменных типа @_,$_ ит.п. Или вот сравнил недавно самые распространенные инфраструктуры тестирования: unittest в Python и Test в Perl. unittest при меньшем объеме самого модуля дает больше возможностей, чем Test.
Но это не значит, что Perl плохой — плохих языков вообще не бывает, если на языке пишут, то он хорош в чем-то, а уж если он распространен так, как Perl — то плюсы просто обязаны быть. ИМХО, эти плюсы — развитая библиотека (сейчас большая часть работы программиста сводится с сборке из готовых кирпичиков), сообщество, вт.ч. инфраструктура CPAN.
DOO>Не забывай, что автор перла — лингвист.
То-то и оно.... Это совершенно другая профессия, другой образ мышления, нежели у программиста.
А>>А почему эти идиомы нельзя было с самого начала сделать встроенными в язык обязательными к исполнению правилами? DOO>Потому что было бы нарушение свободы
Детский вопрос: А зачем же их тогда придерживаются? Идиомы для того нужны, ИМХО, чтобы сказать как можно короче и как можно понятнее. А в Perl принцип TIMTWDI привел, например к знаменитому косвенному обращению к членам класса, про которое до сих пор некоторые отечественные авторы пишут, что так-де понятнее и лучше, хотя западэнцы уже трубят "ни в коем случае, ведет к неоднозначности" (см. Intermediate Perl 2-nd edition)