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

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


DOO>>Логичность там полная. В перле надо хорошо знать несколько концепций и все становится очень просто.


А>Опять же, куча "специальных" переменных типа @_,$_ ит.п.

Да, но какие они дают возможности!

А>ИМХО, эти плюсы — развитая библиотека (сейчас большая часть работы программиста сводится с сборке из готовых кирпичиков), сообщество, вт.ч. инфраструктура CPAN.

Кстати, никогда не использовал что-то с CPAN'а.

А>>>А почему эти идиомы нельзя было с самого начала сделать встроенными в язык обязательными к исполнению правилами?

DOO>>Потому что было бы нарушение свободы

А>Детский вопрос: А зачем же их тогда придерживаются? Идиомы для того нужны, ИМХО, чтобы сказать как можно короче и как можно понятнее.

Идиомы нужны чтобы было понятнее. Если писать как можно короче на перле, то получается игра в гольф и через некоторое время программу невозможно прочитать.

А>А в Perl принцип TIMTWDI привел, например к знаменитому косвенному обращению к членам класса, про которое до сих пор некоторые отечественные авторы пишут, что так-де понятнее и лучше, хотя западэнцы уже трубят "ни в коем случае, ведет к неоднозначности" (см. Intermediate Perl 2-nd edition)

Красота языка и промышленная применимость все же очень разные вещи. Перл красив — но в промышленном применении не так уж и хорош. Единственный способ эффективно работать на перле команде разработчиков — это да. Введение ограничений, но тоже и про C++ можно сказать
Re[5]: Почему так ругают PHP?.
От: neFormal Россия  
Дата: 12.01.09 09:32
Оценка:
Здравствуйте, 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>Ну и т.д. и т.п. сейчас лень искать, а так листая мануал на каждом шагу видно такое бездумное копирование.


ок, можешь пояснить еще своё сообщение (http://gzip.rsdn.ru/forum/message/3243892.1.aspx):
Автор: DOOM
Дата: 12.01.09

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


какие причины?.
...coding for chaos...
Re[6]: Почему так ругают PHP?.
От: DOOM Россия  
Дата: 12.01.09 09:35
Оценка:
Здравствуйте, neFormal, Вы писали:


F>ок, можешь пояснить еще своё сообщение (http://gzip.rsdn.ru/forum/message/3243892.1.aspx):
Автор: DOOM
Дата: 12.01.09

F>

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


F>какие причины?.


Такие, что в перле есть параметр по умолчанию, который не обязательно писать ($_), соответственно он должен идти в конце.
Re[9]: Почему так ругают PHP?.
От: Аноним  
Дата: 12.01.09 09:42
Оценка:
Здравствуйте, DOOM, Вы писали:

....

Ладно, это уже у нас оффтоп пошел, еще раз повторю свою мысль: самые успешные (т.е. распространенные) языки, такие, как C++ и Perl имеют те же проблемы, которые ставятся в вину PHP:
легко написать нечитабельный код (то о чем вы писали выше), легко написать опасный код, особенно если программист неопытный, эклектичность (т.е. в языке сочетаются концепции не очень-то сочетаемые), куча пережитков прошлого..... Список можно продолжать.
И все же они, как дело Ленина, живут и побеждают.
Re[10]: Почему так ругают PHP?.
От: FR  
Дата: 12.01.09 13:13
Оценка:
Здравствуйте, Аноним, Вы писали:


А>Ладно, это уже у нас оффтоп пошел, еще раз повторю свою мысль: самые успешные (т.е. распространенные) языки, такие, как C++ и Perl имеют те же проблемы, которые ставятся в вину PHP:

А>легко написать нечитабельный код (то о чем вы писали выше), легко написать опасный код, особенно если программист неопытный, эклектичность (т.е. в языке сочетаются концепции не очень-то сочетаемые), куча пережитков прошлого..... Список можно продолжать.
А>И все же они, как дело Ленина, живут и побеждают.

Я о PHP и перле имею довольно смутные представления, но неплохо зная C++ могу предположить что кроме недостатков у перла и C++ есть немало и достоинств (например возможность писать краткий красивый и эффективный код), которых у PHP не видно
Re[11]: Почему так ругают PHP?.
От: neFormal Россия  
Дата: 12.01.09 15:53
Оценка:
Здравствуйте, FR, Вы писали:

FR>Я о PHP и перле имею довольно смутные представления, но неплохо зная C++ могу предположить что кроме недостатков

FR>у перла и C++ есть немало и достоинств (например возможность писать краткий красивый и эффективный код), которых у PHP не видно

как же ты, имея "довольно смутные представления" о php, можешь судить о его достоинствах?.
...coding for chaos...
Re[4]: Почему так ругают PHP?.
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 12.01.09 18:02
Оценка: +1 :))
Здравствуйте, Аноним, Вы писали:

А> Кто ни разу не нажигался на "if(x=1)" — поднимите руку


Поднимаю. ( Если что — имею 8-летний опыт коммерческого программирования на С++ )
Re[4]: Почему так ругают PHP?.
От: _FRED_ Черногория
Дата: 12.01.09 19:26
Оценка: 1 (1) +1
Здравствуйте, MozgC, Вы писали:

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

F>>имхо в питоне то же самое..

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


Своей гребёнкой

остутствие "проверки во время компиляции"

ты указал на "недостаток" (в кавычках, потому что это ещё вопрос, а недостаток ли?) большинства динамических языков (обращаем внимание на текущий форум). По той причине, что они не являются компилируемыми. ИМХО, это всё-одно что сказать "Мне не нравится жареная картошка, потому что ей не интересно закусывать коньяк" Мнение само по себе конечно заслуживающее внимание, но только не в разговоре о достоинствах жареной картошки.
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Почему так ругают PHP?.
От: Mamut Швеция http://dmitriid.com
Дата: 12.01.09 21:16
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

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

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

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



Виви в тестовом режиме есть и на РСДН: http://wk.rsdn.ru/ Логин/пароль — от рсдна


dmitriid.comGitHubLinkedIn
Re: Почему так ругают PHP?.
От: Mamut Швеция http://dmitriid.com
Дата: 12.01.09 21:42
Оценка: 12 (3)
Здравствуйте, neFormal, Вы писали:

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


F>Какие есть объективные причины?. кроме туевой хучи кода сайтов, написанных новичками..

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

F>последнее время складывается ощущение, что у php просто плохая репутация и все его боятся


1. PHP — динамически типизируемый (что само по себе неплохо), но при этом — слаботипизируемый. А вот эти два компонента вместе дают гремучее сочетание, которое попытались обмануть костылем ===

Гениальное из документации, http://php.net/manual/en/language.operators.comparison.php:
switch ("a") {
case 0:
    echo "0";
    break;
case "a": // никогда сюда не дойдет, потому что "a" уже заматчилось с 0
    echo "a";
    break;
}


Как????

2. Плохой дизайн стандартной библиотеки. Вернее — его отсутствие. Об этом писали выше.

Это и чехарда с названиями функций:
— вырваные напрямую из юникса: link
— вырваные напрямую из C: sprintf
— вырваные напрямую из перла: trim
— придуманые от балды: nl2br
— любой стиль наименований:
-- htmlentities
-- html_entities_decode (существительное->глагол)
-- mysql_select_db (глагол->существительное)
— попытка эмулировать пространства имен префиксом к имени функции... но не везде (можно сравнить mysql_* и строковые функции)

И чехарда с порядком передачи переменных, процитирую, http://rsdn.ru/forum/message/3243779.aspx:
Автор: Гест
Дата: 12.01.09

привычное "сказуемое(подлежащее, [дополнения])" нарушено как минимум в explode, где СНАЧАЛА надо передать разделитель, а потом уж — "что делить"


И чехарда с возвращаемыми значениями: http://md.php.net/manual/en/function.strpos.php

Эа функция вернет False, если символ не найден, а также может вернуть значение, которое может стать false, например 0. Потому необходимо использовать костыль ===. И так — почти везде. Зачем нжен оператор == — неизвестно

3. Отсутствие нормального достаточно общего драйвера к базам данных наподбие JDBC/ADO. PDO должно было появиться, как стандартное расширение в PHP5.0. Оно до сих пор не является стандартным, и не знаю, насколько доработанным

4. Unicode. Казалось бы, прилинкуйся к ICU и не имей проблем. Нет, Юникод пояится только в PHP 6

5. Непонятное развитие языка. То есть, непонятно, что в язык собираются добавлять, а что — нет. И что из того, что собираются добавлять, действительно войдет в язык (как с PDO)

Вот все, что можно найти насчет будущего РНР: http://www.ibm.com/developerworks/opensource/library/os-php-future/ Ну или тут: http://www.corephp.co.uk/archives/19-Prepare-for-PHP-6.html Вау. Дофига


dmitriid.comGitHubLinkedIn
Re[3]: Почему так ругают PHP?.
От: Mr.Cat  
Дата: 12.01.09 21:49
Оценка:
Здравствуйте, Mamut, Вы писали:
M>Виви в тестовом режиме есть и на РСДН: http://wk.rsdn.ru/ Логин/пароль — от рсдна

Дык я его и имел в виду.
Re[5]: Почему так ругают PHP?.
От: neFormal Россия  
Дата: 12.01.09 21:49
Оценка:
Здравствуйте, D. Mon, Вы писали:

А>> Кто ни разу не нажигался на "if(x=1)" — поднимите руку

DM>Поднимаю. ( Если что — имею 8-летний опыт коммерческого программирования на С++ )

я знаю, ты пишешь if(1 == x) ?.
...coding for chaos...
Re[2]: Почему так ругают PHP?.
От: Курилка Россия http://kirya.narod.ru/
Дата: 12.01.09 22:08
Оценка: 17 (1)
Здравствуйте, 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>Как????


Из сишного наследия (хотя тут, можно сказать, всё логично ):

$ cat test.php
<?php
print 012389 . "\n";
?>
$ php test.php
83


via Mirrorer
P.S. Почемуб кывту не заиметь аналог <lj user="...">?
Re: Почему так ругают PHP?.
От: Dirichlet Россия  
Дата: 12.01.09 22:10
Оценка: :))) :))) :))) :)))
Здравствуйте, neFormal, Вы писали:

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


PHP = Получилось Хуже Перла
Re: Почему так ругают PHP?.
От: c-smile Канада http://terrainformatica.com
Дата: 13.01.09 00:31
Оценка: 1 (1) +1 :)))
Здравствуйте, neFormal, Вы писали:

Количество ругани языка программирования прямо пропорционально объему проектов на нем.

http://www.hotscripts.com/PHP/index.html — Scripts and Programs — 14,015
http://www.hotscripts.com/CGI_and_Perl/index.html — Scripts and Programs — 4,009
http://www.hotscripts.com/ASP/index.html — Scripts and Components — 2,378
http://www.hotscripts.com/ASP.NET/index.html — Scripts and Controls — 766
http://www.hotscripts.com/Python/index.html — Scripts and Programs — 92
http://www.hotscripts.com/Ruby_on_Rails/index.html — Scripts and Programs — 30

Я понимаю что выборка по одному серверу не ахти, но тем не менее.
Re[2]: Почему так ругают PHP?.
От: kmmbvnr Россия http://kmmbvnr.livejournal.com
Дата: 13.01.09 03:46
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Количество ругани языка программирования прямо пропорционально объему проектов на нем.

CS>http://www.hotscripts.com/

Честно говоря первый раз слышу об этом сайте.

Вот например обратная статистика
http://code.activestate.com/

* Python (2398 recipes)
* PHP (38 recipes)
* Perl (3 recipes)

Или если например гуглить

python snippets — 1 310 000 результатов
php snippets — 573 000
perl snippets 857 000

А вот самое показательное — количество пакетов в стандартном репозитории:

http://pypi.python.org/pypi — There are currently 5487 packages here.
http://pear.php.net/package-stats.php — Total Packages: 532
http://www.cpan.org/modules/01modules.index.html — CPAN's 14965 modules distributions
-- Главное про деструктор копирования не забыть --
Re[12]: Почему так ругают PHP?.
От: FR  
Дата: 13.01.09 04:09
Оценка: -1
Здравствуйте, neFormal, Вы писали:

F>как же ты, имея "довольно смутные представления" о php, можешь судить о его достоинствах?.


Без проблем, их даже по слухам (кроме легкого освоения даже непрограммистами) не видно
Re[2]: Почему так ругают PHP?.
От: dmz Россия  
Дата: 13.01.09 04:29
Оценка:
A>за что тут ругали PHP. Почему? Честно говоря, хз. Есть в них преимущества, которые перевешивают упомянутые недостатки. И есть у других "красивых" языков отсутствие этих самых преимуществ. Ну, типа, речь окончена.

Вот рассказали бы о преимуществах, что ли. Очень интресно, есть ли в PHP хоть одно.
Re[12]: Почему так ругают PHP?.
От: dmz Россия  
Дата: 13.01.09 04:33
Оценка: +1
F>как же ты, имея "довольно смутные представления" о php, можешь судить о его достоинствах?.

Так расскажите уже об этих достоинствах, что ли.
Re[3]: Почему так ругают PHP?.
От: DOOM Россия  
Дата: 13.01.09 04:49
Оценка: +1
Здравствуйте, dmz, Вы писали:


dmz>Вот рассказали бы о преимуществах, что ли. Очень интресно, есть ли в PHP хоть одно.


Ну например в споре ASP vs PHP выигрывал PHP, потому что у него была хоть какая-то стандартная библиотека — и для закачки файла на сервере там не надо было писать скрипт на 2 страницы кода, а достаточно было вызвать одну функцию...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.