Re[4]: Почему так ругают PHP?.
От: neFormal Россия  
Дата: 11.01.09 22:44
Оценка:
Здравствуйте, MozgC, Вы писали:

F>>какой проверки?. на что?.

F>>имхо в питоне то же самое..
MC>Я не сравниваю с Питоном. Можно сравнить с ASP .NET.

я так понял, что ты говоришь про особенность динамических языков.. компиляции нет, если функция еще не вызвана, то ошибку в ней и не покажет..
...coding for chaos...
Re[2]: Почему так ругают PHP?.
От: neFormal Россия  
Дата: 11.01.09 22:55
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

F>>Собственно, сабж..

MC>Мне вот тоже интересно. Было бы здорово, если бы кто-нибудь сведующий написал статью в вики (ну или тут, а я бы ее вики загнал).

уже частично повторили вот это: http://ru.wikipedia.org/wiki/PHP#.D0.9A.D1.80.D0.B8.D1.82.D0.B8.D0.BA.D0.B0
еще вот здесь
Автор: Roman Odaisky
Дата: 12.01.09
Roman Odaisky добавил пару весомых аргументов..
...coding for chaos...
Re: Почему так ругают PHP?.
От: neFormal Россия  
Дата: 11.01.09 23:02
Оценка:
Здравствуйте, neFormal, Вы писали:

F>- скорость работы, производительность?.


я так понял, что php в скорости работы не уступает питону..
бенчмарки тоже ничего конкретного не говорят..
кто может рассказать какие нибудь личные наблюдения?.
...coding for chaos...
Re[2]: Почему так ругают PHP?.
От: Daevaorn Россия  
Дата: 11.01.09 23:09
Оценка:
Здравствуйте, neFormal, Вы писали:

F>я так понял, что php в скорости работы не уступает питону..

F>бенчмарки тоже ничего конкретного не говорят..

Извините, но куда уж конкретнее?
Re[3]: Почему так ругают PHP?.
От: neFormal Россия  
Дата: 11.01.09 23:12
Оценка:
Здравствуйте, Daevaorn, Вы писали:

F>>я так понял, что php в скорости работы не уступает питону..

F>>бенчмарки тоже ничего конкретного не говорят..
D>Извините, но куда уж конкретнее?

знаешь, я сомневаюсь в идеальности тестов в принципе..
здесь питон рвет пхп, но как то не сильно.. я ожидал большего..
да еще тут небось 2я версия, а 3я еще не такая шустрая.. поэтому для меня результат не такой очевидный..
...coding for chaos...
Re[4]: Почему так ругают PHP?.
От: neFormal Россия  
Дата: 11.01.09 23:15
Оценка:
Здравствуйте, neFormal, Вы писали:

F>да еще тут небось 2я версия, а 3я еще не такая шустрая.. поэтому для меня результат не такой очевидный..


ну да.. с 3й версией не всё так радужно:
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=php&lang2=python3
а ведь на нее будут переходить
...coding for chaos...
Re[5]: Почему так ругают PHP?.
От: Daevaorn Россия  
Дата: 11.01.09 23:24
Оценка:
Здравствуйте, neFormal, Вы писали:

F>Здравствуйте, neFormal, Вы писали:


F>>да еще тут небось 2я версия, а 3я еще не такая шустрая.. поэтому для меня результат не такой очевидный..


F>ну да.. с 3й версией не всё так радужно:

F>http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=php&lang2=python3
F>а ведь на нее будут переходить

К тому времени, когда на него начнут переходить промышленно и повсеместно, он уже до 3.2-3.3 доберется и всё нормализуется.

А вообще не питон тут обсуждать надо. Он лишь как пример того, как может выглядеть продуманный хороший динамический язык.
Re[7]: Почему так ругают PHP?.
От: Гест Украина https://zverok.github.io
Дата: 12.01.09 00:18
Оценка: -1
Здравствуйте, MozgC, Вы писали:

MC>Что-то смешное в моем сообщении?


Да.
Re: Почему так ругают PHP?.
От: kmmbvnr Россия http://kmmbvnr.livejournal.com
Дата: 12.01.09 03:34
Оценка: +3 -1
Здравствуйте, neFormal, Вы писали:

F>Собственно, сабж..

F>Какие есть объективные причины?.

Для меня главной минус это провал основной PHP идеи. А ведь, казалось, так здорово писать код прямо внутри html странички. Широкое распространение шаблонных движков под PHP (а зачем они вобще нужны в php?), демонстрирует что не так все оно просто.

Создатели PHP ошиблись. Они еще много где ошибались, благородно пытаясь создать язык для чайников. Например, первая реализация ооп, глупые антипаттерны с request переменными, защишенный режим в попытке избежать многих косяков.

История PHP как языка — это история неудач. И нет никакой гарантии что они не продолжаться в будущем.
-- Главное про деструктор копирования не забыть --
Re[2]: Почему так ругают PHP?.
От: Cyberax Марс  
Дата: 12.01.09 03:39
Оценка: +1 :))) :))) :))
Здравствуйте, kmmbvnr, Вы писали:

K>История PHP как языка — это история неудач. И нет никакой гарантии что они не продолжаться в будущем.

Будет. Создатели PHP — так фантазёры! В качестве разделителя namespace'ов для следующего PHP они выбрали символ '\'
Sapienti sat!
Re[6]: Почему так ругают PHP?.
От: DOOM Россия  
Дата: 12.01.09 03:49
Оценка: +1
Здравствуйте, Гест, Вы писали:

Г>нарушено как минимум в explode, где СНАЧАЛА надо передать разделитель, а потом уж — "что делить").


Это взято из перла. И в перле на то были веские причины.
Вообще в PHP много торчит перловских ушей, только они там как-то бездумно торчат — не понимал разработчик зачем так было сделано в perl.
Re: Почему так ругают PHP?.
От: Аноним  
Дата: 12.01.09 08:05
Оценка: +1 -1
Здравствуйте, уважаемые вовлеченные в обсуждение, хочу кинуть свои три гроша в очередную Священную Войну. Только, плиз, не надо в духе незабвенной Евгении Альбац сучить ножками и кричать: "ВОН! ВОН ИЗ ПРОФЕССИИ!!!!", как это делал один мой коллега во время подобного обсуждения.
Итак.... Вполне себе успешных языков с пережитками прошлого — навалом.

Страус писал 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. Почему? Честно говоря, хз. Есть в них преимущества, которые перевешивают упомянутые недостатки. И есть у других "красивых" языков отсутствие этих самых преимуществ. Ну, типа, речь окончена.
Re[2]: Почему так ругают PHP?.
От: DOOM Россия  
Дата: 12.01.09 08:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Perl: та самая $переменная, которую тут ругали, а еще %переменная и @переменная, переменная $_, которая используется там, где переменная должна быть, но её нет, передача аргументов в подпрограмму через список с предопределенным именем @_, ну ит.п., список агромадный.

В перле-то как раз все сделано логично и даже очень, а в PHP, такое ощущение, что пытались скопировать внешний вид не понимая сути...
Re[3]: Почему так ругают PHP?.
От: neFormal Россия  
Дата: 12.01.09 08:21
Оценка:
Здравствуйте, 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)" — поднимите руку )
Re[4]: Почему так ругают PHP?.
От: DOOM Россия  
Дата: 12.01.09 08:35
Оценка: 4 (2)
Здравствуйте, neFormal, Вы писали:


F>можно примеров что было в перле сделано логично и правильно, а потом бездумно скопировано в php?.

Пожалуйста:

Variables in PHP are represented by a dollar sign followed by the name of the variable. The variable name is case-sensitive.

На кой ляд?
В перле символ задает контекст — $ скалярный, @ — векторный, ну и псевдо-контекст хэша (%). А в PHP — зачем этот $?

Далее, символические ссылки.
Если я в перле пишу
$a = ${$b};

То это очевидная запись — из текущего хэша символов берется элемент с именем $b, а в PHP это просто шаманская запись.

Ну и т.д. и т.п. сейчас лень искать, а так листая мануал на каждом шагу видно такое бездумное копирование.
Re[4]: Почему так ругают PHP?.
От: DOOM Россия  
Дата: 12.01.09 08:37
Оценка:
Здравствуйте, Аноним, Вы писали:

А>а что касается контекста, то он в Tcl определяется без перловых @ $ %. И ничего, никто не жалуется.

Вопрос гибкости. Tcl не знаю, правда. Но в перле легко придумать множество ситуаций, когда невозможно определить контекст.

А>Сам пафос (ха-ха) поста — о том, что не всегда успешность==(красота+логичность)

Очень жаль. Потому что в перле красота есть, а в PHP ее нет.
В питоне тоже есть своя красота, но уже немного другая.
Re[5]: Почему так ругают PHP?.
От: Аноним  
Дата: 12.01.09 08:46
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>Очень жаль. Потому что в перле красота есть, а в PHP ее нет.

DOO>В питоне тоже есть своя красота, но уже немного другая.

Про Python — согласен, он прост и логичен, и я его освоил очень быстро, а вот Perl.....
Логичности в нем гораздо меньше, возможностей для неопытного программера наделать глупостей — больше. Пресловутая концепция TIMTWDI — по моему скромному мнению, полный бред. И не только по моему мнению — в конце концов само сообщество Perl выработало ряд общепринятых идиом. А почему эти идиомы нельзя было с самого начала сделать встроенными в язык обязательными к исполнению правилами?
Re[6]: Почему так ругают PHP?.
От: DOOM Россия  
Дата: 12.01.09 08:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Про 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)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.