7 месяцев создания, 15 лет диктатуры — один человек контролирует код миллионов программистов

leer en español

7 месяцев создания, 15 лет диктатуры — один человек контролирует код миллионов программистов

Как создатель Laravel  покорил половину PHP-сообщества.

image

Создатель и бессменный руководитель Laravel Тейлор Отвелл выступил с предупреждением о том, что увлечение избыточной сложностью и попытки обходить встроенные механизмы фреймворка могут обернуться серьёзными проблемами для разработчиков. По его словам, программное обеспечение должно оставаться простым, легко изменяемым и при необходимости заменяемым. Ситуации, когда задачи по-настоящему сложны, безусловно, встречаются, но большинство решений, выходящих за рамки задокументированных возможностей Laravel или Ruby on Rails, несут в себе риск и служат сигналом о потенциальных проблемах в будущем. Такой «запах кода» программисты часто воспринимают как тревожный знак: приложение работает, но в дальнейшем может обрушиться под собственным весом.

Отвелл подчёркивает, что считает себя обычным программистом, каким являются и многие другие. Основная задача для них — решать стандартные задачи максимально быстро и эффективно. Именно это стремление и стало основой для появления Laravel. Он начал разрабатывать фреймворк в 2010 году, потратив на первую версию семь месяцев. Отвеллу хотелось создать эквивалент Ruby on Rails для PHP, поскольку существующие тогда решения слишком сильно походили на Java и не имели удобного встроенного ORM. В Laravel сразу вошли функции, позволяющие быстрее запускать проекты. При этом часть идей он позаимствовал из ASP.NET MVC, где используется шаблонизатор Razor. Отсюда родилось название движка представлений Blade, который до сих пор служит отличительной чертой Laravel.

Фреймворк быстро завоевал популярность, и сегодня его позиция в PHP-сообществе фактически безальтернативна. Сам Отвелл считает, что новые проекты чаще всего стартуют либо на Laravel, либо на Symfony, причём Symfony сильнее представлен в Европе. WordPress же он описывает как отдельную экосистему, мало соприкасающуюся с миром полноценных фреймворков. Статистика это подтверждает: в последнем опросе JetBrains Laravel используют 61 процент PHP-разработчиков, WordPress — 23 процента, а Symfony — 21. В более широком исследовании Stack Overflow , охватывающем все языки и среды, Laravel применяют 8,9 процента специалистов, Symfony — 4 процента, а WordPress — 13,6, хотя в данном случае речь идёт уже о системе управления контентом, а не о классическом фреймворке.

Несмотря на масштаб сообщества, Отвелл сохраняет полный контроль над проектом. Все pull-request’ы проходят только через него, и ежедневно он рассматривает от десяти до пятнадцати предложений по изменению кода. Такой режим действует пять дней в неделю и отнимает значительное количество времени. Уже в 2013–2014 годах ему пришлось полностью переписать архитектуру Laravel из-за ограничений ранней реализации. Тогда обновление нарушило обратную совместимость, и с тех пор Отвелл намерен избегать подобных шагов, если только они не вызваны критической необходимостью. Он признаётся, что испытывает раздражение, когда несовместимость вносят другие инструменты, включая сам PHP.

Одной из спорных тем остаётся сочетание философии Laravel, построенной на принципе «соглашение важнее конфигурации», со статическим анализом кода. Такие инструменты, как PHPStan, плохо справляются с динамической природой Laravel. Для этого существует расширение Larastan, адаптированное под особенности фреймворка. Однако Отвелл замечает, что сегодня тренд в PHP-сообществе смещается в сторону строгой типизации, и в будущем Laravel будет стараться учитывать этот вектор. По его оценке, возможно, даже большинство разработчиков теперь предпочитают жёстко типизированные приложения.

Сообщество активно продвигает интеграцию Laravel с современными фронтенд-инструментами. В частности, всё большую роль играет связка с React через InertiaJS, ориентированный именно на Laravel. Сам Отвелл признаёт, что мало работал с React напрямую, но спрос со стороны разработчиков настолько высок, что проект неизбежно движется в эту сторону.

В то же время дискуссии вокруг качества Laravel продолжаются. На Hacker News , к примеру, многие подтверждают, что обновление 2013 года действительно стало болезненным. Одни считают Laravel более дружелюбным к новичкам, чем Symfony, пусть и ценой гибкости и глубины. Но именно в этом, по мнению Отвелла, и заключается суть: чтобы добиться успеха, нужно использовать фреймворк так, как он задуман, не пытаясь изобретать обходные тропы. Тем, кому не близка его философия, Laravel вряд ли подойдёт. Но растущая статистика использования и устойчивый интерес показывают, что огромное число программистов всё же получают от него именно то, что ищут.