Объективно можно сказать, что в настоящий момент PHP не самый сексуальный и клевый язык программирования. Онлайн-школы не стремятся рекламировать курсы по PHP, мы не видим истории успеха, начинающие с фразы «Я взял в руки учебник по PHP», да и вообще идет мнение, что лучше совсем никак, чем быть PHP-программистом (а если слышим про битрикс, то сразу можно на костер). Тем не менее, я не согласен с этим, и расскажу, почему инвестиция времени в ПХП себя окупает.
Я бекенд-разработчик, в свое время работал на Python и Java, а сейчас работаю на PHP.
В чем клёвость PHP
Большинство конференций по Python, начинаются с фразы «Мы собрались с вами тут, так как Python — клевый». И эта клёвость чаще всего подразумевается в элегантности языка, большом количестве применений python, и огромного количества готовых библиотек и фреймворков под любую задачу. И это действительно так, ведь синтаксис Python позволяет писать весьма элегантный код, а применяется Python от небольших скриптов и парсеров до космических кораблей.
Клёвость PHP же заключается в том, что он имеет всего одну область применения, но позволяет добиваться выдающихся результатов в ней, на проектах любой сложности, на любой стадии развития программиста, как специалиста.
Скорость и качество. Если есть задача собрать на коленке быстрый MVP проект, то можно писать весьма простой код с огромным числом допущений и неявных преобразований. А если все серьезно, то включаем стрик-тайп, обмазываемся код-стайлами и дата-чекерами, которые заставляют сверять типизацию и явно убрать всю магию из кода. В итоге, можно контролировать скорость и качество разработки, отдавая приоритет тому или другому.
Вектор развития PHP. Если говорить уверенно и помпезно, то PHP в настоящий момент идёт к тому, чтобы стать такой комфортной-версией Java на батарейках. Сначала была увеличена базовая скорость работы языка, а в 8 версией завезли полноценный JIT-компилятор. Перенимается строгая типизация и добавляются новые фичи из других языков.
На одной из Java конференций была шутка про экосистему Java: «Java позволяет очень гибко настраивать систему, и ты будешь её настраивать хочешь ты этого или нет». В кейсе с ПХП у нас полная свобода, когда хотим закапываемся и делаем сложную логику, когда не хотим — работаем, как работается.
Фреймворки под любой проект. Если нам нужно разработать достаточно типичный сайт, то можно взять готовую CMS (Wordpress, Magento, Bitrix и так далее). Если нам нужно запустить гибкий стартап, то можно взять фреймворк для RAD-разработки в виде Laravel. А если стоит задача разрабатывать и поддерживать сложную систему enterprise — уровня, то в ход идёт Symfony.
Более того, если вообще не стоит задача что-то разрабатывать, но есть необходимость слегка поменять стандарную логику, можно взять готовый конструктор сайтов в виде Shopify, Wix и через их апи сделать кастом. И в большинстве случаев этого будет достаточно.
Преданное и продуктивное сообщество. Так как ПХП никогда не был хайповым языком программирования (популярным был, но не хайповым и трендовым), то тут достаточно постоянное сообщество, которое любит PHP и вкладывает душу, чтобы его развивать. Иногда вкладываются так, словно продали душу, ради PHP.
Конечно, на некоторых митах поднимается вопрос, что было бы хорошо найти какой-то мазершип в виде крупной айти-компании, которая будет спонсировать людей, которые развивают язык. Но пока все идет на уровне популярных фреймворков и овнеров cms сиситем (и в общем неплохо).
PHP — это про сайтики?
Представьте, что на дворе 2005-2008 год, несколько парней решило сделать свои проекты. В качестве основы, они взяли PHP, так как ничего другого впринципе больше не было. Они сделали MVP и запустили проект.
Прошло 12-15 лет.
Определенная часть проектов этих парней выжило, окрепло, заработало аудиторию и стало приносить стабильный доход. Проекты усложнились, команды разрослись, разработалось грамотное управление и так далее.
Так как проекты были написаны уже на PHP, вложено в них было много человеко-часов, все разработчики знали PHP, то решено было не искать приключение на 5 точку с переписыванием на другой стек, а просто либо стали развивать свой кастомный фреймворк на PHP, либо перешли на Symfony/Laravel.
Как итог, такие тиер-1 компании, как Avito/Badoo/Mamba/VK/Sber/Mail/Jivo/SkyEng и прочие работают с ПХП и счастливы. Хватит ли теперь смелости назвать PHP про сайтики?
Но они же переводят часть логики на GO?
Если посмотреть доклады с Конференций по PHP (да есть отдельные конференции по PHP), то можно заметить, что многие команды распиливают монолиты на микросервисы и выносят высоконагруженные модули с PHP на GO. А некоторые вообще заморачиваются, что делают отдельные чат-серверы на Go (и они работают!) — например. Это круто, и вот почему!
Представьте, что вы джун который хочет выучить Go и устроить на него работать? Получится ли у вас это сделать! Нет! Ведь там где используется Go, требуется высокая компетенция и опыт работы.
Однако можно будет устроиться в компанию, где используется и php и go на php стек и при желании практиковаться с GO. А может быть и полноценный переход сделать если это будет интересно с развитием компетенции.
Это же, в свою очередь, позволяет php разработчикам переключаться на GO и освежать впечатления от работы. Одни плюсы!
Развитость экосистемы PHP
Можно долго рассказывать о том, какой путь PHP прошел за последние 10 лет. Как он эволюционировал и превратился в язык enterprise уровня. Я лишь приведу такой глупый пример.
Если мы возьмем любую книгу по экосистеме Java и Spring, например, Spring Microservices in Action, заменим через автозамену
Spring → Symfony
Hibernate → Doctrine
Maven → Composer
То большинство людей даже не заметит подставы! Ибо используются одни и те же принципы, одни и те же паттерны, одни и те же парадигмы и решения!
Программисты на PHP делают то же самое, что и программисты на более «серьезных» языках, если им это требуется!
Конечно, иногда особенности и ограничения языка вносят определенные коррективы, но в общем подход к работе не сильно отличается от Java.
А что по деньгам
Тут ситуация хитрая. Если мы посмотрим в лоб зп по PHP на hh.ru или Хабре, то ситуация будет плачевной — практически все конкурирующие стеки дадут разницу в 15-25%. Однако нужно понимать, что php имеет особенность — на нем огромное количество дешевых вакансий на поддержку сайтов небольших компаний и разработку типовых сайтов в веб-студиях. Эти вакансии и опускают среднюю температуру по больнице.
А вот если мы сделаем фильтр по названиям популярных фреймворков (Symfony/Laravel), то тут предложения пойдут на уровне достойных грейдов в приличные места. А если из этого списка предложений выбрать Tier-1 предложения, то местами начинают завидывать и Java программисты.
А если учитывать, что определенная часть php-программистов переходит на GO, то тут ситуация становится совсем хорошей.
Поэтому с оплатой на PHP все хорошо, нужно лишь понимать, что надо повышать свой уровень компетенций.
Перспективы стека
В настоящий момент у PHP нет конкурентов.
Язык Ruby проиграл бой за популярность и перспективные проекты, так как не смог ничего предложить, кроме своего главного фреймворка (который по итогу скопировали и улучшили на других стеках).
Python в общем-то хорош и прекрасен, но веб-разработка — это не главное его применение. В РФ его используют крайне выборочно либо большие it-компании, либо небольшие стартапы, которые работают с цифрами. И так как это достаточно узкая ниша, все равно большинство проектов будет делаться на PHP.
Стеки Java/C#, как не пытались продемонстрировать, что они тоже легкие на подъем со своим spring boot и .net core, все равно остаются достаточно сложными и дорогими стеками.
Поэтому PHP будет жить.
Что по итогу
PHP — клёвый, востребованный и перспективный стек. В него можно смело инвестировать свое время и можно быть уверенным, что ты не останешься без работы на обочине технологического прогресса, но это не точно.