PHP жив и будет жить: почему его хоронят больше 10 лет, а он всё никак не умрёт
Шуткам о смерти PHP уже лет 10. Но, как показала практика, PHP актуален. Рассказали, почему это происходит, и какое будущее ждёт PHP.
10К открытий11К показов
Шутки о том, что php умер не устаревают уже лет 10 (а то и все 20). Но как показала практика — php все ещё жив. Согласно статистике на PHP работает 77,5% всех сайтов в интернете, а 30% сделаны на WP.
О том, почему всё так активно хоронят php и почему он всё ещё жив, а также какое будущее его ждёт, — рассказал Кирилл Мокевнин, CEO образовательной платформы Хекслет.
Корни популярности PHP
PHP появился в 1994 году как инструмент для упрощения создания домашних страниц, в набирающем тогда популярность интернете. Несмотря на то, что PHP даже не был полноценным языком программирования, он начал быстро распространятся и к 1998 году уже стал доминирующим инструментом для создания сайтов.
Почему такое вообще произошло? Дело в том, что веб-технологии значительно отличались от всего, что было раньше в плане разработки. Существующие на тот момент языки не очень подходили для этой новой задачи. Не потому что они были плохими, а потому что экосистемы этих языков не были готовы к вебу. Формирование HTML без шаблонизаторов, плохая информативность в случае ошибок и многое другое делали веб-разработку на них не эффективной.
Писать код, как в примере выше, крайне сложно из-за того что HTML записывается в виде обычных строк. В таком случае не видно какой получиться на выходе HTML, нет подсветки, нет отступов, легко поймать незакрытый тег.
Чтобы разработка стала удобной, нужно было придумать и широко внедрить шаблонизаторы, которые позволяют инвертировать процесс. То есть не HTML вставляется внутрь кода, а наоборот – код вставляется внутрь HTML.
PHP был именно таким шаблонизатором, который в итоге превратился в полноценный язык программирования. PHP сразу создавался как инструмент специализированный под веб. Например, минимально работающий сайт на PHP делается с помощью одного файла и пары строк кода. Причём не требуется подключать никаких дополнительных библиотек и фреймворков. Всё, что нужно уже работает внутри и даже скрыто от программиста.
Обратите внимание, что в PHP коде есть явное разделение кода и блоков на HTML. Причём в HTML можно вставлять данные из PHP кода. Это уникальная особенность, которая присутствует только в PHP из популярных языков.
Бизнес
Всё больше и больше бизнесов понимали, что им нужно выходить в интернет. Поэтому в начале 2000-х начался бум веб-студий, компаний, часто состоящих из пары студентов, которые делали сайты на заказ. PHP в такой ситуации, по сути, был единственным выбором. Только он позволял создавать сайты дёшево и достаточно эффективно.
Из-за этого появился повсеместный запрос на PHP-программистов и именно поэтому многие действующие программисты с большим стажем начинали свой путь с PHP, включая автора этого текста.
В свою очередь, все хостинги (место где хранится сайт) начали специализироваться на PHP. В итоге веб замкнулся сам в себе. Выбирать что-то другое для средних и простых сайтов было не выгодно и не удобно.
Дальше пошло углубление и специализация, начали появляться CMS, системы, которые позволяли делать сайты без программирования. Тогда же стала развиваться онлайн торговля. Появились готовые решения для интернет-магазинов. А ещё форумы, они существуют до сих пор и большинство из них все ещё работает на PHP.
Альтернативы
Примерно в 2004-2005 годах на сцену вышли другие языки. В них дозрела экосистема, появились шаблонизаторы и, наконец, фреймворки, которые начали быстро набирать популярность. Среди них были ASP.NET (появился в 2002 г.) Django и Ruby On Rails. Эти фреймворки оказали большое влияние на всю индустрию теми инновационными подходами, которые там использовались. Видео «Блог за 15 минут на Rails» настолько впечатлило людей, что после этого много лет стартапы в кремниевой долине создавались только с помощью Rails.
Этот момент совпал со значительным ростом сложности сайтов. Появились проекты на десятки и сотни тысяч строк кода. В таких проектах порог входа перестал быть важнейшим фактором. На первое место стали выходить такие вещи как:
- развитый инструментарий,
- поддерживаемость, которая зависит от качества кода,
- уровень самих программистов, который традиционно был выше у программистов из других языков.
Не потому что PHP какой-то не такой, а из-за того, что PHP программистов было слишком много и большая часть из них училась на не самом качественном коде самостоятельно.
В какой-то момент пошёл сознательный отказ от PHP у части разработчиков. Они жаловались на неудачный дизайн языка и на довольно низкое качество кода. И это, отчасти, было правдой: PHP не рождался как язык программирования с продуманным дизайном (что оставило большой отпечаток на том, как он выглядит и работает). PHP долгое время развивался эволюционно, без какой-либо системы. Даже сейчас можно услышать подобные мысли, хотя с тех пор все сильно изменилось.
Несмотря на всё это, PHP не просто продолжал лидировать, но и набирал популярность. Плюс PHP комьюнити быстро адаптировало всё то новое, что появлялось на рынке. Например, сразу после выхода Rails, появилось множество PHP-клонов. Даже самый популярный на сегодняшний день фреймворк Laravel является попыткой повторить Rails в PHP.
Долгоживущие приложения
С ростом сложности сайтов, появились и новые потребности. Если раньше сайты были одним приложением, которое обрабатывало пользовательские запросы и работало с базой данных, то теперь достаточно нагруженные сайты стали превращаться в наборы сервисов. Внутри таких проектов были сервисы для обработки картинок, для обмена сообщениями, для взаимодействие с другими сервисами, для каких-то сложных вычислений и т.п.
Как оказалось, PHP плохо подходит для таких задач. Он не был рассчитан на длительное время жизни программы. Классические сайты это запрос-ответ, после которого ничего не происходит, а новые задачи требовали постоянного нахождения в памяти для более эффективной и сложной работы. Это стало одной из ключевых причин, почему PHP начал в части сервисов замещаться на другие языки. В особо сложных и нагруженных ситуациях использовали C, C++ и Java. В более простых ситуациях Python, Ruby и Perl.
Тоже самое происходило и со стороны фронтенд части. Вебсокеты требуют постоянного соединения, а PHP для этого неудобен. Да у него появилась возможность писать асинхронный код, но так мало кто делает. В итоге начали набирать популярность Node.js и дальше Go.
Про Go стоит сказать отдельно. Этот язык, наравне с Java, стал стандартом для создания внутренних сервисов во многих проектах. В итоге, внутренние части крупных PHP проектов стали переписываться и до сих пор переписываются на Go. Причём это касается и тех частей, которые были когда-то написаны на C и C++.
Low-Code
Другая причина снижение использования PHP – появление конкурента в виде целой индустрии проектов, которые позволяют создавать сайты без написания кода. Подобные проекты появились достаточно давно, но только в последние годы они значительно повлияли на распределение сил. Например, было время когда все корпоративные сайты в России создавались с помощью Битрикса. Теперь на его место встала Тильда. Точно так же для создания интернет-магазинов никто не нанимает программистов и не пишет код. Есть маркетплейсы, которые уже все сделали за нас.
Сейчас очень маловероятно, что какой-то небольшой или даже средний бизнес создаёт свой собственный сайт с помощью команды программистов. Скорее это будет готовая платформа.
Реальность
Может сложиться ощущение, что PHP стал резко терять популярность и актуальность. В действительности же, PHP стал уходить из тех мест, где его и так не должно было быть. Просто представьте: в 2005 году почти весь интернет был создан с помощью PHP. Многие разработчики, зная только PHP, создавали вообще весь код с помощью PHP, даже там, где эффективнее было бы использовать другой инструмент. И только спустя много лет после этого произошёл сдвиг, когда PHP стал использоваться только по назначению.
Что подходит для PHP
По сути любые сайты, в которых много пользовательских сценариев, то есть практически все сервисы (SaaS). С помощью PHP написаны: Wikipedia, facebook, slack, Avito, Habr, VK, Blablacar, Яндекс Еда, Кинопоиск, Сбер (Здоровье, облако), SuperJob, Skyeng, Юла, Lamoda, Delivery Club, Делимобиль, Перекрёсток, Wildberries, DNS, Связной, Tutu, Pikabu и многое другое.
На PHP стартует немало и новых проектов. Если посмотреть на статистику использования, то видно что за последние 10 лет PHP не только не сдал позиции, но и стал немного популярнее. При этом остальные языки не идут ни в какое сравнение с ним.
Количество PHP кода, которое создаётся на GitHub, постоянно растет. Общее количество скачиваний библиотек перевалило за 50 миллиардов. Представьте какое количество проектов их использует.
Но растёт не только количество библиотек. Сам PHP непрерывно обновляется и у него регулярно выходят новые версии. Последняя версия вышла буквально две недели назад. И если много лет назад PHP отставал по своим возможностям от других языков, то последние годы он вобрал в себя многие лучшие решения, появившиеся в последнее время.
Так что же ждёт PHP
С PHP будет всё в порядке еще очень долгое время. Во-первых сейчас PHP это не столько сам по себе язык, сколько большая экосистема, которая решает задачи в своей нише на топовом уровне. Во-вторых, количество текущих проектов на PHP настолько огромно, что даже если бы мы решили отказаться от PHP прямо сегодня, то вряд ли бы наступила ситуация, когда PHP бы полностью исчез из интернета. Скорее PHP исчезнет вместе с интернетом.
Если говорить о более прикладной части — зарплатах программистов, то в аналитических отчётах видно, что зарплаты PHP программистов в среднем ниже, чем на других языках. Тут важно не спешить с выводами и понимать о чем идёт речь. В первую очередь это связано с тем, что на PHP больше, чем в других языках, начальных позиций или позиций, в которых нужно заниматься несложной поддержкой сайтов. Зарплата таких специалистов ниже процентов на 20%, но зато на них низкие требования и это хороший старт.
У PHP в целом низкий порог входа, поэтому сложность собеседований на начальные позиции не высокая. В PHP часто берут людей «на вырост». Более того, PHP представлен во всех регионах и очень популярен во фрилансе, а конкуренция даже среди джунов — низкая. Сейчас внимание большинства новичков переключилось на другие языки. Из-за этого в PHP стало идти меньше людей и компании неожиданно обнаружили, что PHP разработчиков не хватает.
Также хорошая новость заключается в том, что для программистов среднего уровня зарплаты выравниваются с рынком. И в этом смысле PHP программисты практически не отличаются от других.
Как говорится: php умер, да здравствует php.
10К открытий11К показов