PHP
PHP (произносится как пи-эйч-пи, пэ-ха-пэ или пых-пых) — самый популярный на сегодняшний день язык программирования для Интернета, который используется на большинстве вебсерверов для создания сайтов. Именно на PHP написана «закулисная» часть большинства сайтов современного Веба[1]. Код на этом языке собирает те html-странички, которые получает из сети ваш браузер, когда вы нажимаете на гиперссылку или жмёте Enter после того, как ввели адрес сайта в адресную строку.
В числе прочего на PHP написан вики-движок MediaWiki, под управлением которого работает этот сайт.
Общественное мнение[править]
Противники PHP, коих немало, критикуют его, порой используя при этом такие слова, как «говнокод» и «быдлокодеры». В 2006 году некто Вадим Гончаров опубликовал в своём ЖЖ неплохую подборку подобных претензий, назвав её К вопросу об ублюдочности PHP (Статья написана с точки зрения Perl-программиста). Не всё, что там утверждается — верно, но это хороший свод претензий. Надо заметить, что с тех пор язык сильно изменился, и многое теперь не актуально. Но многое остаётся неизменным и в начале апреля 2012 года жаркие споры разгорелись вокруг современной статьи примерно аналогичного содержания с куда более изящным названием PHP: фрактал плохого дизайна[2] (тут автор уже Питонист).
Разумеется, как и а любой подобной критике, упоминаются возможности, отсутствующие в языке. Однако, если сравнить претензии образца 2006 и 2011 года, легко видеть, что язык в этом плане весьма быстро развивается и на сегодняшний день он в этом плане выглядит совсем не плохо. Гораздо хуже у PHP с отсутствием единства, если набор операций и функций «более других» языков представляет собой некую, имеющую внутреннюю логику, а потому запоминаемую систему, в PHP с такой системой куда хуже, и в справочник PHP-программисту приходится заглядывать чаще, чем разработчикам на других языках. Помимо этого в PHP имеется несколько унаследованных от первых версий особенностей, призванных облегчить программирование сайтов, но слишком уязвимых для хакеров. Хотя все такие не прошедшие проверку «упрощения» по умолчанию отключены и по мере обновления версий их постепенно убирают совсем, критики не забывают лишний раз показать пальцем на эти скелеты в шкафу. Ещё одна особенность PHP, порой ужасающая многих поклонников других языков — это «слишком универсальные» массивы. Если в большинстве языков программирования классические массивы с индексами-числами и ассоциативные массивы «хеши» со строковыми индексами — это разные типы данных, то в PHP эти, и ещё некоторые способы группировки данных объединены[3]. Это упрощает начальное изучение языка, хотя в более сложных случаях может потребовать от программиста понимания тонкостей работы с этим типом данных. К тому же он, вероятно, не слишком эффективен в плане используемой оперативной памяти[4].
На самом деле многие недостатки и достоинства языка — естественный результат его «биографии». Если почти за всеми остальными языками программирования ясно видны личности одного или нескольких создателей, это воплощение их представления о том, как должен выглядеть с их точки зрения идеальный (для какого-то класса задач) инструмент программиста, тут всё обстоит несколько по другому.
Создание PHP[править]
PHP, почти случайно, создал не слишком-то выдающийся программист Расмус Лердорф. Вначале он просто начал писать библиотеку html-шаблонов на Перлe для своего личного веб-сайта. Но компьютеры тогда были не слишком мощными[5], и производительность полученного продукта Лердофа не устроила. Он решил переписать всё это на Си. В результате в середине 90-х появился уже «почти настоящий» язык программирования PHP/FI[6] который позволял смешивать в одном и том же текстовом скрипте html-шаблон и программный код. Язык унаследовал многие особенности Perl’а. Он свободно распространялся под открытой лицензией, и начал постепенно завоёвывать популярность.
Затем это «побочное дитя программистской мысли»[7] подобрали два израильских разработчика: Энди Гутманс и Зив Сураски. Как вспоминает Зив, это снова произошло случайно. Столкнувшись с ошибкой в PHP-интерпретаторе Лердорфа, они заглянули в его исходный код, и он им «очень не понравился»[8]. Они взялись переписывать его, исправляя попутно ошибки, допущенные Расмусом в базовом дизайне языка. Спустя год после выпущенного Расмусом PHP/FI 2, Энди и Зив, при поддержки Лердорфа, опубликовали в 1998 году новую, третью версию PHP. А ещё спустя год они организовали компанию Zend Technologies Ltd. (название составлено из букв их имён: Zeev и Andу). Она занимается продажей коммерческих продуктов для хостинг-провайдеров и PHP-программистов, а так же сертификацией последних. При этом компания, во главе с Гутмансом и Сураски, продолжила разработку языка программирования PHP, как открытого программного продукта[9].
В выпущенный на момент открытия Zend Technologies 4-й версии языка (помимо зачаточной поддержки объектно-ориентированного программирования и целого ряда улучшений) появилась поддержка подключаемых модулей, написанных на Си, позволяющих расширять язык. Дальнейшее развитие языка нередко определялось тем, что один из разработчиков-волонтёров предлагал готовое к использованию решение, и нововведения в язык, фактически, вводились автором такого решения[10].
Таким образом, в языке PHP на практике воплотились концепции одного из идеологов open source — Эрика Рэймонда, который в своей книге «Собор и базар» противопоставлял разработке программного продукта по тщательно продуманному плану (строительству собора), базарный принцип — стихийную работу над ним заинтересованных добровольцев. В PHP мы видим базарный принцип почти в чистом виде. И несмотря на бросающееся в глаза отсутствие концептуального единства, заставляющее говорить критиков об «ублюдочности» и «фрактале плохого дизайна», именно этот язык стал самым популярным среди веб-программистов языков и по прежнему не сдаёт этих позиций, несмотря на конкуренцию более гармонично-сконструированных «собратьев», таких как Python или Ruby. Вероятно, именно благодаря «базарности», этому языку удаётся хорошо соответствовать ожиданиям множества веб-программистов.
Источники[править]
- ↑ В последнее время появились интересные альтернативы, но об этом — в конце
- ↑ Оригинал: PHP: a fractal of bad design, не законченный, но более тщательный перевод
- ↑ Впрочем, PHP в этом плане не уникален
- ↑ См. Насколько большие массивы (и значения) в PHP? (Подсказка: ОЧЕНЬ БОЛЬШИЕ)
- ↑ А идея компилирующего обработчика шаблонов, вроде Smarty ему в голову, видимо, не пришла
- ↑ Personal Home Page / Forms Interpreter — «Личная Домашняя Страница / Интерпретатор форм»
- ↑ В этом смысле в употреблении слова «ублюдочный» (если понимать его как перевод слова bastard) есть своя правда
- ↑ Т. Ратшиллер, Т. Геркен. PHP4: разработка Web-приложений, ИД «Питер» 2001, ISBN 5-318-00007-X. стр. 15-16, предисловие, написанное Зивом Сураски
- ↑ Позднее к списку открыто ПО от Zend добавился Zend Framework
- ↑ Именно так, к примеру, в языке появились пространства имён