Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, DOOM, Вы писали:
DOO>>Логичность там полная. В перле надо хорошо знать несколько концепций и все становится очень просто.
А>Опять же, куча "специальных" переменных типа @_,$_ ит.п.
Да, но какие они дают возможности!
А>ИМХО, эти плюсы — развитая библиотека (сейчас большая часть работы программиста сводится с сборке из готовых кирпичиков), сообщество, вт.ч. инфраструктура CPAN.
Кстати, никогда не использовал что-то с CPAN'а.
А>>>А почему эти идиомы нельзя было с самого начала сделать встроенными в язык обязательными к исполнению правилами? DOO>>Потому что было бы нарушение свободы
А>Детский вопрос: А зачем же их тогда придерживаются? Идиомы для того нужны, ИМХО, чтобы сказать как можно короче и как можно понятнее.
Идиомы нужны чтобы было понятнее. Если писать как можно короче на перле, то получается игра в гольф и через некоторое время программу невозможно прочитать.
А>А в Perl принцип TIMTWDI привел, например к знаменитому косвенному обращению к членам класса, про которое до сих пор некоторые отечественные авторы пишут, что так-де понятнее и лучше, хотя западэнцы уже трубят "ни в коем случае, ведет к неоднозначности" (см. Intermediate Perl 2-nd edition)
Красота языка и промышленная применимость все же очень разные вещи. Перл красив — но в промышленном применении не так уж и хорош. Единственный способ эффективно работать на перле команде разработчиков — это да. Введение ограничений, но тоже и про C++ можно сказать
Здравствуйте, DOOM, Вы писали:
F>>можно примеров что было в перле сделано логично и правильно, а потом бездумно скопировано в php?. DOO>Пожалуйста: DOO>
DOO>Variables in PHP are represented by a dollar sign followed by the name of the variable. The variable name is case-sensitive.
DOO>На кой ляд? DOO>В перле символ задает контекст — $ скалярный, @ — векторный, ну и псевдо-контекст хэша (%). А в PHP — зачем этот $?
например, чтобы вытащить имя из списка имен в данной области видимости..
DOO>Ну и т.д. и т.п. сейчас лень искать, а так листая мануал на каждом шагу видно такое бездумное копирование.
Г>>нарушено как минимум в explode, где СНАЧАЛА надо передать разделитель, а потом уж — "что делить").
DOO>Это взято из перла. И в перле на то были веские причины.
Г>>>нарушено как минимум в explode, где СНАЧАЛА надо передать разделитель, а потом уж — "что делить").
DOO>>Это взято из перла. И в перле на то были веские причины.
F>какие причины?.
Такие, что в перле есть параметр по умолчанию, который не обязательно писать ($_), соответственно он должен идти в конце.
Re[9]: Почему так ругают PHP?.
От:
Аноним
Дата:
12.01.09 09:42
Оценка:
Здравствуйте, DOOM, Вы писали:
....
Ладно, это уже у нас оффтоп пошел, еще раз повторю свою мысль: самые успешные (т.е. распространенные) языки, такие, как C++ и Perl имеют те же проблемы, которые ставятся в вину PHP:
легко написать нечитабельный код (то о чем вы писали выше), легко написать опасный код, особенно если программист неопытный, эклектичность (т.е. в языке сочетаются концепции не очень-то сочетаемые), куча пережитков прошлого..... Список можно продолжать.
И все же они, как дело Ленина, живут и побеждают.
А>Ладно, это уже у нас оффтоп пошел, еще раз повторю свою мысль: самые успешные (т.е. распространенные) языки, такие, как C++ и Perl имеют те же проблемы, которые ставятся в вину PHP: А>легко написать нечитабельный код (то о чем вы писали выше), легко написать опасный код, особенно если программист неопытный, эклектичность (т.е. в языке сочетаются концепции не очень-то сочетаемые), куча пережитков прошлого..... Список можно продолжать. А>И все же они, как дело Ленина, живут и побеждают.
Я о PHP и перле имею довольно смутные представления, но неплохо зная C++ могу предположить что кроме недостатков у перла и C++ есть немало и достоинств (например возможность писать краткий красивый и эффективный код), которых у PHP не видно
Здравствуйте, FR, Вы писали:
FR>Я о PHP и перле имею довольно смутные представления, но неплохо зная C++ могу предположить что кроме недостатков FR>у перла и C++ есть немало и достоинств (например возможность писать краткий красивый и эффективный код), которых у PHP не видно
как же ты, имея "довольно смутные представления" о php, можешь судить о его достоинствах?.
Здравствуйте, MozgC, Вы писали:
F>>какой проверки?. на что?. F>>имхо в питоне то же самое..
MC>Я не сравниваю с Питоном. Можно сравнить с ASP .NET.
Своей гребёнкой
остутствие "проверки во время компиляции"
ты указал на "недостаток" (в кавычках, потому что это ещё вопрос, а недостаток ли?) большинства динамических языков (обращаем внимание на текущий форум). По той причине, что они не являются компилируемыми. ИМХО, это всё-одно что сказать "Мне не нравится жареная картошка, потому что ей не интересно закусывать коньяк" Мнение само по себе конечно заслуживающее внимание, но только не в разговоре о достоинствах жареной картошки.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, neFormal, Вы писали: F>>Собственно, сабж..
MC>Мне вот тоже интересно. Было бы здорово, если бы кто-нибудь сведующий написал статью в вики (ну или тут, а я бы ее вики загнал).
Виви в тестовом режиме есть и на РСДН: http://wk.rsdn.ru/ Логин/пароль — от рсдна
Здравствуйте, neFormal, Вы писали:
F>Собственно, сабж..
F>Какие есть объективные причины?. кроме туевой хучи кода сайтов, написанных новичками.. F>Давайте сравним, например, с Python-ом, который хвалят почем зря.. F>в чем php проигрывает?. F>- скорость работы, производительность?. F>- простота использования?. F>- отсутствие каких либо нужных библиотек?. F>- ошибки дизайна, нехватка средств языка?. F>- отсутствие хороших средств разработки?.
F>последнее время складывается ощущение, что у php просто плохая репутация и все его боятся
1. PHP — динамически типизируемый (что само по себе неплохо), но при этом — слаботипизируемый. А вот эти два компонента вместе дают гремучее сочетание, которое попытались обмануть костылем ===
switch ("a") {
case 0:
echo"0";
break;
case"a": // никогда сюда не дойдет, потому что "a" уже заматчилось с 0echo"a";
break;
}
Как????
2. Плохой дизайн стандартной библиотеки. Вернее — его отсутствие. Об этом писали выше.
Это и чехарда с названиями функций:
— вырваные напрямую из юникса: link
— вырваные напрямую из C: sprintf
— вырваные напрямую из перла: trim
— придуманые от балды: nl2br
— любой стиль наименований:
-- htmlentities
-- html_entities_decode (существительное->глагол)
-- mysql_select_db (глагол->существительное)
— попытка эмулировать пространства имен префиксом к имени функции... но не везде (можно сравнить mysql_* и строковые функции)
Эа функция вернет False, если символ не найден, а также может вернуть значение, которое может стать false, например 0. Потому необходимо использовать костыль ===. И так — почти везде. Зачем нжен оператор == — неизвестно
3. Отсутствие нормального достаточно общего драйвера к базам данных наподбие JDBC/ADO. PDO должно было появиться, как стандартное расширение в PHP5.0. Оно до сих пор не является стандартным, и не знаю, насколько доработанным
4. Unicode. Казалось бы, прилинкуйся к ICU и не имей проблем. Нет, Юникод пояится только в PHP 6
5. Непонятное развитие языка. То есть, непонятно, что в язык собираются добавлять, а что — нет. И что из того, что собираются добавлять, действительно войдет в язык (как с PDO)
Здравствуйте, D. Mon, Вы писали:
А>> Кто ни разу не нажигался на "if(x=1)" — поднимите руку DM>Поднимаю. ( Если что — имею 8-летний опыт коммерческого программирования на С++ )
Здравствуйте, Mamut, Вы писали:
M>1. PHP — динамически типизируемый (что само по себе неплохо), но при этом — слаботипизируемый. А вот эти два компонента вместе дают гремучее сочетание, которое попытались обмануть костылем ===
M>Гениальное из документации, http://php.net/manual/en/language.operators.comparison.php: M>
M>switch ("a") {
M>case 0:
M> echo"0";
M> break;
M>case"a": // никогда сюда не дойдет, потому что "a" уже заматчилось с 0
M> echo"a";
M> break;
M>}
M>
M>Как????
Из сишного наследия (хотя тут, можно сказать, всё логично ):
Здравствуйте, c-smile, Вы писали:
CS>Количество ругани языка программирования прямо пропорционально объему проектов на нем. CS>http://www.hotscripts.com/
A>за что тут ругали PHP. Почему? Честно говоря, хз. Есть в них преимущества, которые перевешивают упомянутые недостатки. И есть у других "красивых" языков отсутствие этих самых преимуществ. Ну, типа, речь окончена.
Вот рассказали бы о преимуществах, что ли. Очень интресно, есть ли в PHP хоть одно.
dmz>Вот рассказали бы о преимуществах, что ли. Очень интресно, есть ли в PHP хоть одно.
Ну например в споре ASP vs PHP выигрывал PHP, потому что у него была хоть какая-то стандартная библиотека — и для закачки файла на сервере там не надо было писать скрипт на 2 страницы кода, а достаточно было вызвать одну функцию...