> Историю-то появления посмотрите. Или правда глаза колет?
ОК, смотрим.
PHP was originally designed as a small set of Perl scripts, followed by a rewritten set of CGI binaries written in C by the Danish-Canadian programmer Rasmus Lerdorf in 1994 to display his résumé and to collect certain data, such as how much traffic his page was receiving. "Personal Home Page Tools" was publicly released on 8 June 1995 after Lerdorf combined it with his own Form Interpreter to create PHP/FI.
И за всё это время PHP так и не вырос из своих детских штанишек.
Про "студенческую поделку" я говорил про Ruby и это так.
> И за всё это время PHP так и не вырос из своих детских штанишек.
Очень примечательно, что упоминается именно 95 год и php/fi. Т.е., как я и говорил "критики" дальше второй версии про php ничего не знают и, видимо, считают что с тех пор только номер версии увелилчивали.
P.S. А сколько хостеров в 95 предлагали Ruby и сколько было сайтов на RoR? ;-)
> Вы в курсе, что википедию обслуживают ~250 серверов? И оставьете эти странные претензии.
О! Пройдите по сообщениям вверх. Человек сказал, что сделал на php реальный сервер с 20.000 посетителей в день. Ему сказали, вот сделай с 2 лямами. Так я и предлагаю, продемонстрировать немерянную крутизну других решений. Впрочем, судя по цифрам из теста новости, этого сделать не получится. Тут разница в 2 порядка, а там и в порядок нет.
По этому мои претензии - не странные. За слова отвечать надо. :)
>> PHP не есть язык программирвания общего назначения
>А с чего это минус? У него есть своя задача и область применимости. >Или не изврат писать систему на Python или Ruby?
Судя по результату обсуждаемого тестирования - отнюдь не изврат
>> все функции встроены в язык
>Это как прикажете понимать? Нельзя свою функцию определить? Что же >лежит здесь: http://pear.php.net/ ???
Имеется ввиду, что вся встроенная библиотека - это функции, доступные в глобальной области видимости. О механизме пакетов (модулей) можно только мечтать. Вроде как намечается в 6-ой версии языка.
>> в основном процедурный подход
>Ваши проблемы. Большинство современных php-фреймоворков - объектно >ориентированны.
Как раз для меня это не проблема - я пишу на Python. Проблемы у Вас.
Да и более менее сносная поддержка насколько мне известна - только с 5-ой версии.
>> нет эксепшнов
>Медитировать до посинения: >http://bugz.ru/programming/php/exeptions_in_php5/
>P.S. Исключений, кажется, нет в си. Быдлоязычёкс?.. ;-)))
А трейсбеки? Кстати пример, что Вы привели глуп хотя бы потому, что мы все равно проверяем вручную на file_exists и сами кидаем эксепшн, в то время как эксепшны нужно применять так:
try:
print open('c:/boot.ini1').read()
except IOError, msg:
print "File doesn't exist:", msg
Как говорится - принцип "Сначала сделал, а потом извиняйся"
>> нельзя скрыть исходник однако, средства для этого продаются >компанией Zend за $$$
>Зачем OSS нужен ZendGuard? А комерческая компания, которой есть что >скрывать вполне осилит $995.
Коммерческой компании лучше потратиться на хостинг с Питоном или жавой
>> Спрашиваетя, зачем тогда было оставлять $ в имени переменной.
>За тем, что так переменная однозначто идентифицируется. На секунду >нельзя было забуматься и догадаться, что это не только транслятору >подспорье, но и программисту, а в том числе и системе подсветки >синтаксиса?
меня это только раздражает, например
>> Даже регулярные выражения (где Perl просто невъебенно крут) PHP >имеет и свои (ereg_match) и от перла (preg_match) - ибо круты.
>И? Пользуй те, какие удобнее.
Не удобно вовсе. Лучше уж Перл. Там хоть это часть синтаксиса - тем более это его стихия. Ну и Руби подойдет - там то же самое, а в остальном даже лучше.
>> Но зато есть дофига случаев когда напыхтевшись на пхп люди >переходили на что то вроде Python и назад уже ни ногой, ибо это небо >и земля.
>Конечно не вернуться. Человек, который не способен разобраться с >инструментом, будет вечно искать что-то новое, обвиняя старый во всех >своих неудачах. Известно, что на самом деле мешает плохому танцору, >да...
А может наоборот, разобравшись с новым инструментом, человек понимает, что он на порядок лучше. А искать что-то новое и более подходящее по Вашему это плохо. "Бороться, искать - найти, перепрятать" :)
> P.S. А сколько хостеров в 95 предлагали Ruby и сколько было сайтов на RoR? ;-)
Сейчас не 95-й год, хостингов с Руби и Питоном полно. К тому же, есть VPS. К тому же, если у вас реально офигенный сервер, который приносит вам более 10000 баксов в месяц, купите дедик и не хнычте.
От исключений в PHP толку мало, потому что в стандартной библиотеке их нет. То есть в большинстве случаев всё равно ничего лучше die не сделаешь.
>> Спрашиваетя, зачем тогда было оставлять $ в имени переменной. > За тем, что так переменная однозначто идентифицируется. На секунду нельзя было забуматься и догадаться, что это не только транслятору подспорье, но и программисту, а в том числе и системе подсветки синтаксиса?
Слабое оправдание. Неужели без долларов так сложно отличить имя переменной от вызова функции? А вот синтаксический шум без них был бы заметно меньше. Как правильно заметили выше, в Perl от префиксных символов хоть какая то польза, а в PHP они - явное излишество.
Конечно, это всё мелочи по большому счёту. Вот что действительно скверно в PHP, так это отсутсвие namespaces. Приделывать префикс для каждой функции - это, мягко говоря, неудобно. Можно конечно писать всё только в объектной форме, но эта возможность появилась совсем недавно, ибо в PHP 4 объектная модель была хуже некуда. Ну и ещё (в меньшей степени) огорчает отсутствие анонимных функций / замыканий.
>Изливая откровизмы и выдавая желаемое за действительное, не забываем подкреплять примерами. Ну-ка, где известные/популярные формуы на Python или Ruby. Почему Wikipedia всё ещё не переписалась на них? И т.д.
потому что на питоне пишутся серьезные проекты. а не мясо для хомяков типа пхпбб. кому неизвестно гугол.ком например юзает си, яву и питон. а быдлопхп там и не пахло.
>Ну да, а где заявленный True OOP? И эти люди ругают php? ;)
Вас интересует, почему sorted - глобальная функция, а не метод, и нельзя писать os.environ.items().sorted()? Потому что sorted() можно применить к любому итератору, а не только к списку.
Послушай, человече. Тебе выше написали строку на Руби. Простую. Один человек выше с трудом смог повторить ее на Питоне. Но если в эту строку добавить еще пару итераторов и других фишек, Питон загнется и придется это разбивать на кусочки.
Поэтому хотя бы этот простой пример для понимающего человека может показать преимущества таких фишек как sort, map, select(aka filter) в виде методов. И отсюда же можно углядеть полезность анонимных фунций.
Хотя последние еще очень полезны для создания оберток, как уже указывал Крейзи Пит. Поэтому я не понимаю, чего тут вообще спорить. Есть наглядные примеры, где питон ничего не может противопоставитьи Руби. Приведите пример, где Руби ничего не может противопоставить Питону??
> А вы не словами, а делами. Покажите-ка мне пример Ruby сайта, так смасштабированного.
Послушай, друк атрус. Тут никому нахх не нужно тебе доказывать, что пхп это неудопно. Я шесть лет ипашил на этом языке. Не могу сказать, что мне это доставило много фана и удовольствия. Тебе нравится на нем писать? Ты получаешь удовольствие от стучание по клаве. Зашибись! Пиши дальше.
Но если в один момент твой мозг начнет волать что его сношают, оглядись вокруг, есть масса замечательных языков и, думаю к тому моменту выбор уже будет даже больше чем сейчас :).
>Слабое оправдание. Неужели без долларов так сложно отличить имя переменной от вызова функции? А вот синтаксический шум без них был бы заметно меньше. Как правильно заметили выше, в Perl от префиксных символов хоть какая то польза, а в PHP они - явное излишество.
Каждому своё, мне лично удобнее читать код в котором перед именем переменной стоит $, особенно если этот код читать без подсветки.
>Конечно, это всё мелочи по большому счёту. Вот что действительно скверно в PHP, так это отсутсвие namespaces. Приделывать префикс для каждой функции - это, мягко говоря, неудобно. Можно конечно писать всё только в объектной форме, но эта возможность появилась совсем недавно, ибо в PHP 4 объектная модель была хуже некуда. Ну и ещё (в меньшей степени) огорчает отсутствие анонимных функций / замыканий.
Для целей на которые позиционируется php. объектной модели в php4 за глаза.
> Тебе ж сказали, PHP сначала был простеньким препроцессором. Потом из него зачем-то попытались сделать мегаязык. Обосрались. А ничего сложнее хомяков на нём писать я бы и не стал.
Не хочешь не пиши. Или тебя заставляют? А я бы, под ryby писать ничего не стал, потому что хостеров с ним нет и не придвидится. И кричать, пиарить о нём начали совсем недавно, через полгода будут пиарить какой нибудь Prolog, типа для web круто.
Вот странно, есть куча языков, Ryby, python и т.д. При этом их пытаются заточить ещё под web, ну что бы работало. А есть PHP который нацелен на web, изначально. И начинается, а у нас, а у нас, а у PHP такого нет. А оно надо? Надо сравнить ещё сколько под web написано на PHP, и сколько на ryby, python и т.д. Судя по развитию PHP в нём все потихоньку появляется, что нужно, и язык растёт.
> обладая возможности встраиваться в HTML-код поощряет перемешивания логики веб-приложения с оформлением. - нет возможности интерактивного шелла. - не опенсорс
Даёт свободу, если что то сам злобный буратин. Интерактивный шелл на web страничке нах мне не нужен. А то что не опенсорс, так это вообще из области фантастики.
> Тем, что нет возможности четко указать, сколько же будет коннектов к базе данных. Как только сползёте с MySQL'я на "нормальную базу", поймете, зачем вам это нужно.
Для чего это нужно? Пример можно привести? И сразу объяснитб чем не устроит ограничение на кол. соединений на пользователя на уровне СУБД.
> Вот странно, есть куча языков, Ryby, python и т.д. При этом их пытаются заточить ещё под web, ну что бы работало. А есть PHP который нацелен на web, изначально.
Вы фанат, честное слово. Заточка PHP под веб заключается лишь в том, что код на PHP можно встраивать непосредственно в страницу. Это киллер-фича для мелких хомяков, но в больших проектах необходимо отделять код от контента. И все серьёзные фреймворки от этой фичи постепенно отходят. То есть, они используют PHP как язык общего назначения. Так вот, PHP рулит как простенький препроцессор, но как язык общего назначения он отсасывает по всем статьям.
Поэтому PHP - язык выбора для мелкого счётчика посетителей на заброшенной домашней странице Васи Пупкина, а для серьёзных вещей его использовать глупо.
Удивляет, как упорно быдлокодеры держатся за свой недоязык. Вас же не заставляют под расстрелом переходить на новые языки. Вам просто предлагают почитать хотя бы пару туториалов по Рельсам и Django, посмотреть скринкасты, и т. д. Не исключено, что Рельсы и Django подойдут вам лучше, чем PHP. Но нет: "PHP рулит потому что меня так учили в моём ПТУ, и ни#$ёт!".
См. выше бла-бла-бла. Одни голословные утверждения и всё. PHP изначально придумывали для писанины под web, дпри этом не затрачивая кучу усилий, и он с эти прекрастно справляется, а большего ему и не нужно.
А оно мне надо? У меня куча всего под php написано и прекрасно работает. Бросать всё что работает и бежать всё переписывать с воем RoR круто!!!!!? Ну и бегайте, в результате зоопарк получается. Там одно, здесь другое, там третье. Я лучше ещё раз под PHP перепишу что бы ещё лучше работало чем было.
Уверен что из задач для WEB нет ничего с чем бы PHP не справился по сравнению с RoR или Django. Справится, и не хуже.
А вы небось думаете, что вы не в толпе php-быдлокодеров? Приятное чувство? Понимаю. Но нет. Вы просто в _другой_ толпе. В той, где "рельсы - это круто".
Поправка. PHP изначально придумывали для МЕЛКОЙ писанины под web. Потому что по-настоящему крупных проектов в те далёкие времена просто не было.
> и он с эти прекрастно справляется, а большего ему и не нужно.
Ну что тут сказать. Кто хочет до старости оставаться быдлокодером, пускай остаётся. Но всё же почитайте хотя бы пару статеек про Rails и Django. Если асилите - будете ту же самую работу выполнять в два раза быстрее.
Я тут вчеа писал что-то вроде "эта тема перегонит "Тест юзабилити гнома"....
Так вот: s/"Тест юзабилити гнома"/"KDE4 Technical Preview 1 выйдет в октябре"
А вообще, чего это мы? Да, php не супер, но и не полная фигня. Средненькая вещь, ничего особенного, но, в целом, работает. Он будет развиваться, становиться лучше (и слава богу). Что самое интересное, так это то, что по поводу ASP.NET высказались всего два-три человека. Причем один из них я :). PHP по сравнению с ним вполне нормальная вещь, ибо некоммерческий, переносимый... Не хочу говорить, что ASP.NET полная фигня, но ведь это так и есть:).
p.s. В мозгу:"Блин, и этот человек еще пишет "а чего это мы?" !! Тут же после всего, что я только что написал еще страничек на 20-25..."
Предлагаю не мелочиться, а писать сразу на ассемблере. Brainfuck хорошо, но он переносимый, а мы же не ищем лёгких путей? Ассемблер х86, привязка к определённой версии ядра. Синтаксис - чище не куда. Request-per-second будут зашкаливать. Библиотеку специальную сделать, стандартизировать. Там и до MVC дойдёт. А у ASP появится новая расшифровка - assembler server pages. Всякие ruby, python, не говоря о PHP, просто сосадь будуд.
> Судя по результату обсуждаемого тестирования - отнюдь не изврат
Тогда почему же не переписывают? ;-)
На самом деле, в тестах нет выигрыша даже на порядок. И даже это ещё не показатель. Я не проверял, но подозреваю, что благодаря jit, тот же mono или .NET должен показать гораздо лучшие результаты. Повод перейти? ;-)
> Кстати пример, что Вы привели глуп хотя бы потому
Пример приводился не глядя. Надо было показать лишь наличие механизма обработки исключений. Которого, как утверждалось нет. :)
> А трейсбеки?
Нету. :)
> О механизме пакетов (модулей) можно только мечтать.
Да, это так. Не то, что бы непоправимо напрягает. (В том же си ситуация практически аналогичная, и ничего, пишут. Причём, целые ядра... ;-)) Но было бы лучше, если бы они были.
> Проблемы у Вас.
Дык, нет особых проблем.
> Да и более менее сносная поддержка насколько мне известна - только с 5-ой версии.
А сейчас у нас что? Третья? Найти хостинг с пятой версией не представляет особых проблем.
> Коммерческой компании лучше потратиться на хостинг с Питоном или жавой
Боюсь, вы не правильно понимаете ситуацию. Если компания делает себе, то никого не волнует на чём это делается. Хоть на bash'е. ;-) И уж точно непонятно, зачем скрывать код в этом случае. От самих себя? А если делается на продажу, то встаёт вопрос встаёт иначе - клиент-покупатель должен иметь возможность легко использовать продукт. Это у него встанет проблема - где искать хостинг. И выбор становится очевиден: хостинга с php несоизмеримо больше, чем остального, значит надо использовать его, невзирая на неудобства.
> Лучше уж Перл.
Perl, увы, отсох. Если они ещё столько же провозятся, то шестёрку можно будет не выпускать.
> А может наоборот, разобравшись с новым инструментом, человек понимает, что он на порядок лучше.
Может, даже так и есть. Только вот, новые инструменты появляются каждый день. Что же, теперь, ничего не делать, только разбираться со всеми новыми инструментами подряд?
> А искать что-то новое и более подходящее по Вашему это плохо.
Новое должно реальный выигрыш давать. Вот если кто-то из них хотя бы в 3-4 раза быстрее станет и распространение получит, тогда они будут стоить изучения. Тем более, что к этому времени там столько всего сделают...
> у что тут сказать. Кто хочет до старости оставаться быдлокодером, пускай остаётся. Но всё же почитайте хотя бы пару статеек про Rails и Django. Если асилите - будете ту же самую работу выполнять в два раза быстрее.
Ну и кто тут фанатик? Туже самую работу в два раза быстрее, прям как Java рекламируют, юзаёте яву и будет вам великое щастье. Я тоже могу нарекламировать.
Кто хочет до старости оставаться быдлокодером на Rails или Django, пускай остаётся. Но всё же почитайте хотя бы пару статеек про j2ee. Если асилите - будете ту же самую работу выполнять в два раза быстрее.
> Заточка PHP под веб заключается лишь в том, что код на PHP можно встраивать непосредственно в страницу. Это киллер-фича для мелких хомяков, но в больших проектах необходимо отделять код от контента.
Сходите на Yandex. Посмотрите, подумайте. Возвращайтесь поумневши.
Золотые слова. Как началась тема, решил прикрутить на сервак mod_brainfuck. Теперь когда начальство будет задолюывать вопросами "когда сдаём проект?" буду открывать код на brainfuck, и говорить что нибудь типа, ну посмотрите в это х**.
> Тогда почему же не переписывают? ;-) На самом деле, в тестах нет выигрыша даже на порядок.
Раньше, когда PHPшникам говорили про рельсы, у них был один ответ: PHP рулит, а рельсы - тормозное убожество. Теперь они этого аргумента лишились. А дело, конечно, не в быстродействии, а в скорости разработки. Как правило, один толковый чувак на рельсах заменяет пару-тройку пыхпых-быдлокодеров. Соответственно, можно ему платить вдвое больше, и всё равно контора в плюсе останется. :)
> Кто хочет до старости оставаться быдлокодером на Rails или Django, пускай остаётся. Но всё же почитайте хотя бы пару статеек про j2ee.
Давно почитал и попробовал, думал даже начать применять для больших тяжёлых проектов, но тут как раз появились рельсы, а потом и Django. :) Йабба плохо приспособлена для метапрограммирования, а без него в вебе делать нечего.