Почему 20 лет все говорят, что PHP умирает, а он жив
Как 20 лет назад говорили, что скоро PHP умрет, так говорят и до сих пор. Тем не менее, на нем по прежнему работает около 75% веб-сайтов в мире. Ни одна альтернативная технология, а их за эти годы было очень много, не добилась даже сравнимой популярности.
4К открытий35К показов
Мой коллега, Альберт Степанцев, тимлид и партнёр ITQuick, уже 20 лет работающий с PHP, рассказал, почему этому языку постоянно пророчат скорое забвение, но оно так и не приходит.
Как 20 лет назад говорили, что скоро PHP умрет, так говорят и до сих пор. Тем не менее, на нём по прежнему работает около 75% веб-сайтов в мире. Ни одна альтернативная технология — а их за эти годы было очень много — не добилась даже сравнимой популярности.
К примеру, когда появилась Node.js, многие ликовали: «О, сейчас мы, наконец, сможем писать на одном языке и бэк, и фронт!». Выходит миллион статей на Хабре, но через пару лет хайп затухает, а PHP как работал, так и работает. На нём продолжают создавать проекты, причём и достаточно сложные. PHP используют для разработки утилит, в области хранения данных, в разработке ПО, финтехе и машинном обучении. Это действительно уникальная в своей стабильности технология, но почему?
Откуда взялись предубеждения насчёт PHP
PHP очень удобно хейтить. Однако все предубеждения обусловлены стереотипами и заблуждениями. Часто люди считают, что PHP — это простой язык программирования, предназначенный исключительно для новичков, которым стоит переходить на более сложные языки в дальнейшем. Однако PHP обладает целым рядом уникальных особенностей и является мощным инструментом для разработки различных проектов.
PHP предлагает простую синтаксическую структуру, что делает его отличным выбором для новичков, позволяя быстро приступить к написанию кода и созданию функциональных веб-приложений. Это не означает, что PHP ограничивается только начальным уровнем — на самом деле, с его помощью можно создавать сложные и масштабируемые приложения. Он обладает развитой экосистемой инструментов и фреймворков, позволяющих реализовывать различные проекты, включая крупные системы управления, аналитики и прогнозирования.
Уникальная особенность PHP — последовательное изучение. Например, чтобы студентам на Java написать «2+2», для начала надо написать класс. Чтобы написать класс, нужно ввести это понятие — объяснить, что такое классы и объектно-ориентированное программирование (ООП). Получается непоследовательная кривая обучения: чтобы понять простые вещи, придется изучить сложное. Методически это плохо.
В то же время на PHP, чтобы написать «2+2», я буквально пишу «2+2». Принцип «Easy to learn — hard to master» — одно из ключевых преимуществ PHP. Возможность быстрого изучения позволяет быстро войти в процесс разработки, а богатая функциональность и гибкость языка открывают широкие возможности для реализации сложных задач. Исторически PHP действительно начинался как легковесный инструмент для создания домашних страниц, но с течением времени он вырос во взрослый и многофункциональный инструмент для веб-разработки.
Например, мы создали огромную систему оптовой торговли автозапчастями полностью на PHP. Она включает управление складом, прогнозирование товарных запасов, управление продажами и так далее. На нём же мы делали систему прогнозирования морских перевозок, которая позволяет владельцу судов построить модель работы на год вперед — спроектировать маршруты, точки загрузки и разгрузки, и рассчитать потенциальную прибыль.
PHP и Go
Go, разработанный внутри Google, изначально позиционируется как язык для создания быстрых и надёжных микросервисов, а также для работы с распределёнными системами. Он обладает отличным набором инструментов и высокой производительностью, что делает его привлекательным выбором для определённых задач. Однако, PHP и Go имеют разные философии и набор возможностей, поэтому не стоит рассматривать их как прямые замены друг другу.
В России почему-то многие считают, что Go станет заменой PHP. Это временное заблуждение, которое обязательно пройдёт, потому что языки абсолютно разные. Важно помнить, что каждый язык программирования имеет свои сильные стороны и области применения. Ключевым здесь является выбор подходящего инструмента для конкретной задачи и проекта, а не сравнение их как абсолютных замен. Разнообразие языков программирования дает возможность выбирать наиболее подходящий инструмент для достижения поставленных целей. Но у меня создаётся ощущение, что в Go идут те, кто не осилил PHP.
По сути, у каждой IT-технологии есть свой жизненный цикл. Принято считать, что в среднем он длится порядка пяти лет — от возникновения до спада хайпа и выхода на стабильный интерес. То есть появилась новинка, ею заинтересовался весь рынок, но в конце концов пользуются ей только те, кому она реально нужна. Но PHP уже больше 20 лет имеет очень широкое применение. Значит, он проходит несколько жизненных циклов?
Почему PHP не теряет актуальности
PHP продолжает привлекать интерес программистов и оставаться популярным благодаря своему развитию и способности адаптироваться к изменяющимся требованиям рынка. За свою долгую историю язык пережил несколько значительных революций, каждая из которых привнесла в него новые возможности и перезапустила его жизненный цикл.
Например, переход PHP с четвёртой версии на пятую. В пятой версии появилось полноценное объектно-ориентированное программирование (ООП). Затем революционная версия 5.4 позволила коллективную работу на PHP — появились неймспейсы и пакетный менеджер. Вместо языка персональных страничек он стал мощным инструментом для коллективной работы. Это буквально все перевернуло. Появилась возможность собрать 10-20 программистов и работать над одним проектом, не мешая друг другу.
Седьмая версия — это революция производительности. Дмитрий Стогов из Core team PHP оптимизировал производительность настолько, что язык стал новым движком. Поэтому седьмую версию долгое время называли PHP Next Generation или Next Gen. С ней он стал не только самым распространенным языком бэкенда, но еще и самым быстрым.
Каждая революция перезапускала жизненный цикл PHP как технологии. Мы получали абсолютно новый язык. Однако, он остаётся актуальным и конкурентоспособным благодаря сбалансированному подходу к развитию.
Этот баланс выражается в возможности выбора между одним стандартом и множеством разнообразных решений. PHP обладает активным сообществом разработчиков, где можно найти несколько основных популярных фреймворков, при этом сохраняя возможность начать что-то собственное без лишних ограничений. Строгие требования к качеству кода и открытый процесс разработки новых версий позволяют PHP оставаться устойчивым и привлекательным для программистов.
Например, Ruby как язык программирования имеет свои уникальные особенности и красоту, но его судьба была в значительной степени связана с популярностью фреймворка Ruby on Rails. Многие программисты использовали его как основной инструмент для создания веб-приложений. Однако с течением времени зависимость от одного фреймворка ограничила разнообразие и инновации в сообществе Ruby. Новые идеи не могли достичь широкого распространения, и разнообразие в экосистеме оставалось недостаточным.
С другой стороны, JavaScript является примером языка программирования, где существует огромное количество фреймворков и библиотек. Это может создавать сложности для начинающих разработчиков. Быстрая смена технологий и постоянное появление новых инструментов делает работу на JavaScript вызовом даже для опытных специалистов. В такой среде важно уметь следить за актуальными тенденциями, постоянно обновлять свои знания и умения, чтобы успешно работать с этим языком.
PHP же умело соблюдает баланс между стабильностью и разнообразием. В сообществе PHP существует несколько основных «парков» с отличающимися подходами, но в целом схожими по духу. Это обеспечивает разнообразие выбора фреймворков и библиотек для разработчиков, позволяя каждому найти оптимальное решение для своих задач. Самостоятельное начало работы над проектом приветствуется, однако существуют строгие стандарты кодирования, и плохое качество кода не находит восприятия в сообществе.
PHP оставляет простор для индивидуальных творческих подходов к разработке, при этом устанавливая высокие стандарты и не допуская низкокачественного кода. Регулярные выпуски новых версий PHP проводятся по чёткому графику с участием сообщества: любой желающий может принять участие в обсуждении и голосовании за функции, которые будут включены в следующую версию языка. Этот открытый процесс позволяет всем участникам сообщества видеть и влиять на будущее PHP.
PHP не остаётся в прошлом, постоянно адаптируясь к текущим тенденциям и заимствуя интересные идеи из других языков программирования. Он активно развивается, сохраняя баланс между сохранением традиций и принятием инноваций, что позволяет ему оставаться актуальным и конкурентоспособным.
4К открытий35К показов