Почему все ненавидят PHP?

preview_player
Показать описание
В последнее время мне часто задают вопрос - почему все хэйтят PHP? Отвечу сегодня на него

Рекомендации по теме
Комментарии
Автор

программисты на php так хотят денег, что перед каждой переменной пишут знак доллара.

rxevyic
Автор

Плюсы:
1) PHP начиная с 7 версии - один из самых быстрых интерпретируемых ЯП (раза в 3 быстрее python уже сейчас) а начиная с 8 так вообще JIT подвезут
2) Хорошая объектная модель с абстрактными классами и интерфейсами, с модификаторами доступа, неймспейсами, миксинами (трейтами)
3) Отличные качественные фреймворки на все случаи жизни, как для RAD (быстрой) разработки (Laravel, Yii) так и для энтерпрайз решений (модульный Symfony например с основными концепциями позаимствованными из Spring)
4) Можно без особых усилий реализовать большинство ОО паттернов (на python или js это проблема)
5) Опциональная строгая типизация
6) Тайпхинты для свойств (начиная с 7.4), аргументов и возвращаемые типы в методах и функциях. При том тайпхинты работают на уровне интерпретатора. И вообще современные проекты принято уже писать с тайпхинтами и подключенной строгой типизацией.
7) Удобная концепция массивов (хеш таблиц), эдакий швейцарский нож на все случаи жизни (жаль правда что это не объекты и приходится работать с ними с помощью встроенных функций но то такэ). Если что есть еще SPL.
8) Некоторые концепции из функционального программирования легко реализуемы (замыкания, анонимные функции, стрелочные функции (начиная с 7.4) и т.д)
9) Поддержка БД
10) Скорость разработки
11) Обратная совместимость
13) Низкий порог входа, но чтобы стать специалистом времени и сил уйдет уйма.
14) Много работы
15) Оплата труда растет и хороший php программист это уже не "дешевая рабсила" которая запилит сайтик.
16) Хорошая культура разработки на новых и даже некоторых старых проектах


Чего бы хотелось на мой взгляд:
1) Дженерики
2) Нормальную перегрузку
3) Нормальные аннотации а не "почти комментарии"


Минусы:
1) Наследие прошлого (несогласованность имен функций (выпиливается потихоньку но обратная совместимость наше все), дополнительные символы и много мелочей)
2) Нет промежуточного состояния между запросами ("умирает" после того как исполнится код). Но это даже не вина языка в принципе. Хотя для большинства проектов это плюс.
3) Нет удобной работы с потоками (хотя это можно поправить с помощью брокеров)
4) Много некачественно написанных проектов на старых версиях (обратная сторона низкого входа) и очень часто программистам впарят старый легаси на саппорт даже если основное время они пилят новый красивый проект.
5) Специализация только на веб (хотя с JIT возможно ситуация измениться но я так не думаю)
Такие дела.

МуслимМо
Автор

'ЯПы делятся на два типа - те, которые хейтят и те, которые никто не использует' (с) Стэтхем

zenovsergey
Автор

Очень понравились Ваши слова: "Людям надо доказывать, что они чего-то стоят. Давайте их пожалеем что ли, а сами будем дальше зарабатывать деньги")
Спасибо за отличное видео!

МарияБеседа-цх
Автор

Меня вообще всегда удивляет эти споры вокруг PHP. По моему нужно смотреть на проекты, которые написали "программисты"-хейтеры.

Владислав-ибн
Автор

Как в пословице "Если человеку нечем гордиться, он славит своих предков".

paleface_brother
Автор

А я сначала java выучил, а сейчас на php перешел. Хейтингом занимаются недалекие люди, не понимающие, что любой язык это инструмент решения задач. Столяр же не хейтит отвертку из-за то, что ей неудобно гвозди забивать)

username
Автор

Это одно из самых адекватных мнений, который я встречал про PHP. Сергей, спасибо!

Stas_Nomadis
Автор

когда-то в самом деле может быть видео, где Сергей скажет что он уже больше не Сергей Немчинский...

ineptDev
Автор

Все ненавидили и ругали Windows Vista, а у меня 7 лет был компьютер с Windows Vista и у меня никогда не было проблем с ним.

brianryan
Автор

Хороший пример winderton который хейтил всех русскоязычных разработчиков на ютубе, а сам оказался мошенником.

stepbystep
Автор

В плюсы PHP: заставили дорабатывать сайт на Flask (это Python, если что).
То, что я делаю на php двумя строчками за 10 минут, делал на Фласке за два дня с кучей избыточного кода. Одни даты чего стоят. Вместо date('Y-m-d) надо import datetime, потом strftime, потом тип данных не подходит в SQLAlchemy... НЕНАВИЖУ!
И этот Фласк падает от любого чиха. Ну нет такого элемента в массиве. PHP бы выдал Notice и пошел дальше. Фласку надо упасть с грохотом, еггог 500, смотрите логи.
НЕНАВИЖУ!

sergeyrebik
Автор

PHP c версии 7.2 уже с типизацией работает, в 7.4 ее еще расширили, можно сделать обязательной.

mihailasidorov
Автор

Нет плохого языка, есть не верно выбранный инструмент под конкретную задачу.
Основная нелюбовь к PHP из-за того, что большинство тех кто начинает, начинает писать под Wordptress, а там древняя архитектура.
Как начали так и дальше пишут.

Но современный PHP, с его фреймворками, очень даже ничего и оптимально походит для многие задачи под WEB.

alekseyr
Автор

Сергей, расскажите пж, о вашем отношении к функциональщине в джаве 8(лямбда и всё такое) и котлине, и к фп в принципе. Стоит ли учить параллельно с ООП или это будет зря потраченное время.

artursveshnikov
Автор

Проблема вообще не в PHP (потому что язык как язык, ничего криминального в нём нет). Проблема в людях: у него не то что бы порог входа как-то принципиально отличается от порога входа JS или Python, но продолжительный промежуток времени он реально лучше всего подходил для того, чтобы "войти в IT", т. е. начать быстренько что-то разворачивать на каких-нибудь CMS или даже самостоятельно писать какие-нибудь сайтики. Этого всегда делалось много, недорогих специалистов, которые не очень качественно, но быстро и дёшево могут накидать какую-нибудь форму регистрации или вывести страничку с каким-нибудь гридом, нужно было много, поэтому когда у молодого человека возникал вопрос, с чего бы начать, чтобы в скором времени гордо назвать себя "программист", чаще всего этот молодой человек слышал "PHP". И действительно: шлёпать сайтики или клонировать интернет-магазины на Opencart не так уж сложно - толковая обезьяна справится... и вот результат: огромная армия людей, которые как бы не очень правильно "вошли в IT", не с парадного входа какой-нибудь Java, где сразу на тебя наваливают такое количество ужасных условностей и диких абстракций, что во-первых, сразу отсеет всех, у кого слабые нервы или не очень богатырское здоровье, во-вторых, прямо поставит руки, потому что писать говнокод на Java намного сложней, чем на PHP. А "формошлёпам" плевать - они знать не знают, чем фабрика отличается от лямбда-функции, им фиолетово, зачем кто-то придумал интерфейс, но тем не менее, через какое-то время и они начинают получать боле-менее приличные деньги, при этом продолжая безжалостно шлёпать формами и поплёвывать на зануд из Java и C#. И вот занудам из упомянутых "серьёзных" языков кажется, что это несправедливо: что они принимают страшные муки со своими "академическими" языками, а эти животные шлёпают их своими формами практически по лицу.
Мне, как формошлёпу с 10-летним опытом искренне жаль этих людей, поэтому я всегда отношусь их "хейту" крайне положительно и даже поддакиваю им: ведь у них и правда очень сложная жизнь. А их программистское "детство" прошло просто в аду.

TheKwadriga
Автор

По моему мнению, есть еще одна, основная, причина для хейта PHP:
У языка низкий порог вхождения (сам с PHP начинал). И подавляющее большинство приложений на php это какие-то несложные сайты или простые интернет-магазины (где в среднем намного меньше денег чем в enterprise).
Часто такие сайты пишутся одним программистом, без процесса разработки (без ревью кода, юнит тестов, документирования, часто даже без CVS, или даже без отступов). Пишется "Чтоб работало", нарушая все принципы хорошего кода.

В следствии чего и качество кода написанного на php намного хуже, чем качество кода написанного на той же java.
В следствии чего, у народа PHP ассоциируется с "Говном".

professorpirog
Автор

Сергей, спасибо. Отлично всё расписали.

PHP - это отличный язык программирования (ДЛЯ СВОИХ ЗАДАЧ), с очень трудным детством.

Обычно его хейтят за:
1. Слишком низкий порог входа
2. На нем можно сделать только небольшие сайты, со слабой нагрузкой
3. Его нельзя использовать за пределами веба

Но это же идиотизм.

Это ФИЧИ языка.
Он создавался для этого. Он обрел популярность именно потому, что писать небольшие сайты на Java неудобно и дорого, а Perl/Python - языки общего направления, не заточенные конкретно под веб-разработку.

Первые 2 версии языка - это вообще был не язык. Это был парсер (Лердорф так и писал), написанный на Perl.

Третья (и все последующие) версия языка была написана уже на Си. Но это пока что был недоязык, развивающийся.
Четвертая версия - уже неплохой ЯП, заточенный под конкретные задачи.
Пятая версия - хороший ЯП.
Седьмая версия - отличный ЯП. ДЛЯ СВОИХ ЗАДАЧ (быстро, недорого, маленький масштаб).

Тот, кто по инерции продолжает хейтить PHP, либо застрял в двухтысячных годах, либо не понимает, для чего и как этот язык появился.

Ну и вспомним Страуструпа: "Есть два типа языков программирования: те, которые все ругают, и те, которые никто не использует"
Более половины сайтов небольшого масштаба написаны на PHP, и никто и ничто его не заменит в этой нише в ближайшее время, хейтеры хоть обосраться могут в своих естетических порывах.

ЗЫ: Сам пишу в основном на JavaScript/Python. Несколько лет писал на PHP.

Ogr
Автор

Я Программер и мне чихать на чем писать проги главное что бы это оплачивали хоть на ассемблере, да хоть паять схемы если тебе интересно создавать ты из зубочисток соорудишь шедевр

Тыжепрограммистсделай
Автор

С общей идеей согласен. Каждой задаче - свой инструмент, на пхп не просто так больше половины веба написано.

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

На чем писать high-load, разница огромная, StackOverflow тому прекрасный пример. Посмотрите, сколько машин его обслуживает, офигеете.

Discord тоже не просто так для ряда сервисов выбрал Rust.

Для малых и средних проектов можно и на пхп. С него начинал веб-разработку и не жалею. Если закажут инет-магазин с админкой, выберу Yii, чтобы не возиться с виртуалками.

Если виртуалка уже есть, возьму асп.нет. Если привык к строгой типизации, пхп уже не вставляет)

(Знаю про версию 7 и тайп-хинты, но это не дженерики и LINQ. Не то))

JS со времен jQuery продвинулся очень хорошо, так что зря вы так. Настраиваете Babel, ставите TypeScript, юзаете стрелочные функции, и будет вам счастье.

liamsmith