Почему некоторые люди ненавидят PHP / Блог им. rmrevin


Оригинал: Why some people hate PHP

Это мой ответ на пост Quora Пользователи ненавидят PHP только из-за того, что так поступает большинство.

Существует масса причин, почему люди «ненавидят» или по крайней мере косо смотрят на PHP. Некоторые из них являются обоснованными, а другие предвзятыми.

Непоследовательность haystack / needle

Часто программисты говорят о непоследовательности haystack / needle, но это происходит из-за незнания одного простого правила:
array: needle, haystack
string: haystack, needle
На самом деле это довольно простой момент, но люди часто забывают об нем и выбирают более сложный путь.

PHP — это HTML-файл с логикой

Имеется в виду, что при использовании PHP-кода, файл будет в первую очередь основан на HTML. На практике случается появление пустых областей до или после <?php ?> тегов. Это может привести к некоторым проблемам при выводе страницы. Чтобы избежать неприятностей, напоминаю всем, что история PHP сложилась так: сначала шаблон, потом программирование.
Новые типы файлов для скриптов с чистым PHP.

Нет стандартов

Есть миллион фреймворков с кучей стандартов. Люди мечутся между over snake_case и camelCase, не имея четкого представления, какой из них является правильным. Поэтому люди, переезжающие с Ruby на PHP (говорят, например, что им надо построить PHP-библиотеку для REST API) понятия не имеют, что делать. Я часто встречался с этой проблемой. Группа PHP-FIG (ранее известная как PHP Standards Group) как раз работает над этим.

Отсутствие качественных пакетов

NPM, Bundler/Gems, PIP, CPAN и т.д. — все эти пакеты предоставляют качественный код для разработчиков. Подключая пакет к своему коду, вы экономите время и получаете новые возможности. PHP не имеет структурированной системы пакетов, кроме PEAR, который большинство программистов игнорируют из-за низкого качества и несоответствия многим современным требованиям.
Стандарт PSR-0 (часть PHP-FIG) сформирован для того, чтобы помочь пакетам работать вместе. Используя Composer, вы получаете в свое распоряжение менеджер, который определяет зависимости для PHP-библиотек. В ближайшее время нас ждет повышение качества кода и ощутимая экономия времени. Теперь не нужно будет работать над решениями, затачивая их под определенный фреймворк.

Заблуждение

Я знаю кучу невероятно умных Ruby-разработчиков, которые привыкли использовать PHP 4, думая, что с появлением пятого ничего не изменилось. На самом деле, отличия между PHP 4 и 5 довольно существенные. Еще один огромный шаг вперед был проделан с переходом от PHP 5.2 к PHP 5.3 (после PHP 5.3 должна выйти версия PHP 6, которая в функциональном плане обратно совместима, кроме Unicode который не будет поддерживаться).
Пользователи Ruby говорят о том, что PHP не имеет так называемого «method_missing» (на самом деле альтернатива есть, называется __ call ()) и жалуются на другие вещи, которых больше нет, или даже на те, что были объективно улучшены. Это означает, что многие люди, которые насмехаются над PHP, не знают о существовании новых версий PHP. Кто-то считал PHP никчемным из-за отсутствия встроенного сервера, как у Ruby — теперь он есть.

Вы делаете это неправильно

«Вы можете смешать MySQL, HTML и PHP в одном файле. PHP — это отвратительно!»
Вы бы могли сказать то же самое о ColdFusion, но люди вежливо объяснят вам, что вы просто делаете что-то не так. PHP — хороший язык. Просто потому, что он достаточно гибок, чтоб позволить вам делать все, что вы хотите.
Структура во многом зависит от фреймворка. Я знаю людей, использующих Ruby без Sinatra или Rails. Среди них есть и те, которые не используют Express, CanJS и т.д.

Элитарность

Не использовать PHP —это здорово. Кто хочет продолжать использовать тот же язык, с помощью которого впервые начал писать код в детстве? Кто хочет использовать те ужасные скрипты, которые пишутся новичками? Это не должно быть проблемой для вас, если вы достаточно умны для того чтобы называться программистом.
Не стоит делать вывод о человеке, использующем PHP, что он не в состоянии освоить другой язык… Я ненавижу эту точку зрения. В лифте сегодня по дороге на работу мой коллега подслушал разговор двух незнакомцев: «Я не доверяю этим магазинам, написанным на PHP. Почему люди не могут изучить нормальный язык программирования?» Так думают многие. И это, по крайней мере, недальновидная точка зрения.

Так почему же люди все еще используют PHP?

Нет ничего другого!
Последние статистические данные от W3Techs показывают, что почти 78% сайтов строятся на основе технологии PHP. Теперь, когда вы видите эти цифры, вы можете судить о качестве языка PHP.
http://w3techs.com/technologies/overview/programming_language/all
У меня есть опыт в разработке приложений на PHP, Ruby, Python и немного на NodeJS. Почему же я использую язык PHP? Потому что он имеет самый большой рынок.
Многие разработчики хотят получить «идеальный язык программирования», «идеальное IDE», «идеальную хостинг-платформу». Но не существует идеального инструмента, есть просто варианты. Странно «ненавидеть» любой из них.