Найти тему

За что разработчики ненавидят PHP

Оглавление
Перевод статьи с сайта Je suis un dev. Оригинал статьи

PHP - самый распространённый в мире язык программирования для создания веб сайтов. А также самый ненавидимый. И это чистая ненависть. Но почему так много разработчиков так сильно его ненавидят? Сегодня мы разберёмся в причинах ненависти и посмотрим, заслужена ли она.

Don’t touch my PHP

Когда я говорю, что PHP ненавидит весь мир, это не моё личное мнение. В последних опросах на stack overflow разработчики со всего света поместили его в топ 5 самых ужасных языков. Последний опрос Hired отправил его прямиком в топ 2 самых ненавидимых. Это далеко не всё, и я сейчас даже не про Reddit. Если вы PHP разработчик с 20 летним стажем и пришли сюда с крестовым походом, чтоб распять меня на алтаре Symphony, расслабьтесь. Просто поговорим, опустите ружьё. Итак, даже если вы, напротив, страстно ненавидите PHP, запаситесь попкорном и устраивайтесь поудобнее.

Давным-давно, я сам делал кое-что на Symphony2. И мне эта штука понравилась, честно. Я рассказал об этом одному дэвопсу на митапе. Он был в шоке, его чуть не вырвало, он смотрел на меня так, будто я убил новорожденного младенца. В дальнейшем для простоты я буду звать его Джеймс. Так что я немедленно спросил Джеймса: откуда столько отвращения?

Сложное прошлое PHP

Чтобы разобраться далее, потребуется контекст. Для этого отмотаем немного назад. На дворе 1994 и Расмус Лердорф быстро кодит пакет утилит на C для управления своим персональным сайтом. В тот момент Расмус делал его для личных нужд и не планировал превращать в язык программирования. Абсолютно ничего в этом пакете не было предназначено им стать. Год спустя Расмус выпустил открытое программное обеспечение под названием PHP/FI и выглядело это так.

-2

Совсем не похоже на то, что видим сегодня в серьёзных php 7 фреймворках, не так ли? Тем не менее, с этого всё и начиналось. Ну а потом код был переделан командой разработчиков и в 1997 свет увидел PHP/FI2 . В 1998 его частично переписали и выпустили PHP3. В 1999 ядро PHP полностью переписали, чтобы создать движок Zend. PHP4 последовал в следующем году и в 2004 PHP5 вышел в виде Zend2. PHP6 отменили, потому что разработка превратилась в ад кромешный. Наконец, после очередного полного переписывания языка, в 2015 вышел PHP7. Помню, какой восторг тогда испытывал. Но на самом-то деле, Расмус просто кодил для себя. В 2003 он дал интервью и сказал невероятное.

“На самом деле, не люблю программировать. Я создал эту утилиту, чтобы меньше программировать и просто переиспользовать код... Не знаю, как это остановить, я никогда не собирался создавать язык программирования. Даже не знаю, как писать язык программирования, просто добавлял следующий логический шаг".
“I really don’t like programming. I built this tool to program less so that I could simply reuse code … I don’t know how to stop it, there was never any intention to write a programming language […]. I don’t know how to write a programming language at all, I just kept adding the next logical step.”
“I really don’t like programming. I built this tool to program less so that I could simply reuse code … I don’t know how to stop it, there was never any intention to write a programming language […]. I don’t know how to write a programming language at all, I just kept adding the next logical step.”

Неконсистентность и убогий дизайн

Вернёмся в 2019 с нашим другом Джеймсом с митапа. Он немедленно начал говорить об "отвратительном" синтаксисе PHP. Насколько он не типизирован. Насколько он не консистентен. Будь то использование операторов или чудовищные противоречия в именовании функций. Избавлю вас от списка технических проблем, иначе чтение этой статьи займёт весь день.

Если действительно интересно, я нашёл для вас самого обозлённого на PHP человека в мире. Хотя нет. На самом деле, самый большой PHP-ненавистник - это вот он. Данные посты подтверждают слова Джеймса. Разработчики ненавидят PHP за то, что это неконсистентный язык с плохим дизайном. По сравнению с другими языками программирования, контраст очевиден. Если после этих двух статей вы не признали, что у PHP имеются проблемы, он уже стал вашей религией, а я бросил попытки спорить с фанатиками.

-4

На PHP очень легко писать плохой код. У других языков гораздо больше ограничений. Также имеется множество проблем с безопасностью по той же причине: на PHP очень легко писать незащищённый код. Но всё же сам по себе он не дыра в безопасности и не обрекает на уродливый код, если кодить правильно. Разработчики ненавидят PHP, потому что на таком непривередливом языке программирования гораздо проще делать ошибки.

Жертва собственной популярности

Есть ещё один фактор этой всеобъемлющей ненависти. Разработчики ненавидят PHP, потому что он повсюду. Мой блог работает на PHP. Как и большинству, мне всего лишь требуется разместить динамическую веб страницу и закешировать её. PHP своё дело делает. Да, сам по себе язык не идеален. Да, мне требуется супер-пупер стэк. Кому какое дело? Он отвечает моим потребностям в быстрой и доступной форме. В том числе и по этой причине 80% сети работает на PHP.

Когда я объяснил то же самое Джеймсу, он начал слетать с катушек. Как и у вас, и у меня, у него есть друзья и близкие. Эти люди частенько просят его помочь с личными или профессиональными сайтами. Угадайте, на каком языке они работают? Поэтому Джеймсу часто приходится ковыряться с PHP. И это его головная боль.

-5

С пришествием Вордпресса, который натурально рулит интернетом, Джеймсу придётся играться с PHP ещё долго. Кстати, я так говорю, будто PHP может справиться только с блогом вроде моего, но нет. Facebook, Wikipedia, Yahoo, Flickr, Tumblr - все эти сайты работают на PHP и встречают миллионы пользователей ежемесячно, не моргнув глазом. PHP хорошо справляется и будет делать это ещё долго.

Будущее теперь старик

Вы уже лет 10 слышите, что PHP при смерти. Но он всё ещё здесь. Невзирая на время и новейшие гипотетические технологии, умирать он не собирается. Разработчики ненавидят PHP за то, что он противостоит hype driven development. В сфере, где каждый инвестирует в новинки, PHP - старик, который не соглашается продавать свою землю. Старик, который продолжает нагло танцевать.

Моя дискуссия с Джеймсом продолжилась в прежнем ключе и вдруг он выдал кое-что удивительное: "Более того, PHP самый медленный язык для веба ". И тогда я понял: он уже долго ничего не читал о PHP.

PHP эволюционирует, а его репутация - нет

В головах большинства разработчиков, PHP до сих пор застрял на 4 версии. Когда язык был нестабильным, тормозным и без ООП. Разработчики ненавидят PHP, потому что верят - этот язык загибается уже 20 лет. Изучая PHP сегодня, понимаешь, как далеко он ушёл от 4 версии.

PHP7 быстрее Python и Ruby. Он может быть строго типизирован, если захотите. Не так давно инструментарий расширился статическими анализаторами кода. Такие фреймворки, как Zend и Symphony, заставляют использовать хорошие практики. Ежегодно выходят новые актуальные версии языка. Вдобавок, PHP7.4 уже вышел и производительность поднялась ещё сильнее. Опять же, не буду перечислять всё, что происходит в современным PHP. Если интересно, ознакомьтесь с этой статьёй. Пора переосмыслить свой взгляд на этот язык программирования, не имеющий ничего общего с прошлым.

-6

Разработчики хейтят PHP, потому что хейтить PHP круто. Потому его репутация продолжает страдать. Да, остаётся куча проблем и легаси кода, но и много хорошего для большинства вебсайтов.

Эпилог

Большинство разработчиков, ненавидящих PHP, делают это в силу элитарности или заблуждений. И то, и другое тупо. Выбирайте технологию исходя из потребностей. В куче кейсов PHP - крайне полезный и мощный выбор, исключать этот факт из уравнения на основании одной лишь репутации так себе идея.