Рождение и смерть фреймворков (framework) Перевод
Время от времени, может быть, каждые пару лет у кого-то появляется идея, которая революционизирует технологическую индустрию. Все популярные фреймворки, которые мы используем изо дня в день, когда-то начинались как такая маленькая и незначительная идея: React, TypeScript, Tailwind, Electron, Laravel.
Трудно представить мир без этих фреймворков. И все же: если бы вы сказали мне 15 лет назад, что экосистема JavaScript будет там, где она есть сегодня, мне было бы трудно поверить вам.
Эрик Эванс однажды выступил с докладом о попытках представить альтернативы фреймворкам и библиотекам, к которым мы привыкли сегодня.
Он посмотрел на популярную библиотеку времени Java — Joda Time — и задумался, лучшее ли это решение. Он, безусловно, был самым популярным, но означает ли это еще и «лучший»? За этим последовал мысленный эксперимент по работе со временем, нестандартному мышлению и решению проблем предметной области с нуля без влияния предшествующих знаний и устаревших ожиданий.
«Что, если бы мы начали с чистого листа», — подумал Эрик?
Думаю, именно здесь рождаются потенциальные революционные идеи. Что, если мы не будем принимать наши текущие решения как должное, а начнем с нуля?
Я считаю Laravel хорошим примером. Можно легко сказать, что 10 лет назад проблема «фреймворков MVC для PHP» уже решалась несколькими фреймворками; зачем нам еще один? И все же Laravel сумел перерасти все остальные фреймворки всего за несколько лет. Есть немало источников данных, подтверждающих это. Например, вот Laravel в сравнении с другими основными PHP-фреймворками на протяжении многих лет в Google Trends:
У меня есть еще несколько источников, которые подтверждают ту же тенденцию:
- Обзор экосистемы разработчиков JetBrains
- Опрос разработчиков StackOverflow
- Статистика Packagist, сравнение относительного роста Laravel и Symfony
Это правда, что не существует единого набора данных, который бы на 100% точно представлял реальный мир, хотя я думаю, что эти источники являются наиболее точными из имеющихся, и все они подтверждают одно и то же: массовый рост фреймворка, который на самом деле не решал никаких новых проблем. проблемы по сравнению с конкурентами, но популярность резко возросла.
По иронии судьбы, именно такая популярность, скорее всего, в конечном итоге будет означать ее конец.
Что мне нравится в мысленном эксперименте Эрика, так это то, что не было никаких альтернативных целей: он просто хотел честно взглянуть на программное обеспечение, которое у него было под рукой, и подумать: «Может ли оно быть лучше?».
Однако в подходе Эрика есть скрытая оговорка: он может предложить лучшее в мире решение, при этом игнорируя устаревший код и обратную совместимость. Если вам не нужно беспокоиться о существующей базе пользователей, то да, вы можете найти лучшее решение практически для любой данной проблемы.
Joda Time был популярен не потому, что был лучшим, а потому, что он рос вместе со своими пользователями на протяжении многих-многих лет. Это было надежное решение — конечно, в нем были свои особенности, но оно зарекомендовало себя более чем достаточно.
Ирония управления популярным программным обеспечением заключается в том, что, когда оно станет популярным, вы не сможете обещать того же качества, что и вначале. Вы не можете создавать одни и те же нарушения снова и снова, потому что вам нужно приспособиться к существующей базе пользователей. В конце концов, вы неизбежно придете к компромиссу.
Мне кажется, что это происходит с Laravel сегодня, через 10 лет после его рождения.
Между прочим, это не так уж и плохо; это признак зрелости и стабильности, которые являются двумя ключевыми компонентами в создании долговечного и ценного программного обеспечения.
Вдобавок к этому Laravel решил большинство, если не все, проблем, возникающих при написании веб-приложения. Не хватает еще многих новаторских функций. Каждый выпуск приносит с собой некоторые тонкости, но ничего жизненно важного. В то же время, чтобы освоиться с последними дополнениями PHP, требуется очень много времени, потому что нужно помнить о существующей базе пользователей.
Удовлетворяя своих пользователей и гарантируя стабильность, любой фреймворк должен перестать быть таким разрушительным, как вначале. Они должны создать пустоту, которую где-то в будущем заполнит другая структура.
Именно поэтому Laravel стал таким популярным: он заполнил пустоту, созданную другими популярными фреймворками. Десять лет назад этот пробел в сообществе PHP был простотой и низким входным барьером. Это пустота, которую заполнил Laravel и оказался чрезвычайно успешным.
Сегодня Laravel находится на том же месте, что и другие фреймворки десять лет назад. Создается тонкая пустота, и она будет неуклонно расти в ближайшие годы. Я верю, что наступит момент, когда эта пустота станет достаточно большой, чтобы вызвать рождение новой структуры. И хотя Laravel будет оставаться актуальным еще много лет — от него зависит довольно много производственного кода — будет еще одна «лучшая вещь». Laravel, как и любой другой фреймворк, достигнет переломного момента; точно так же, как jQuery, Rails, Bootstrap, Symfony, Angular.
Итак, вопрос: кто и чем заполнит эту пустоту?
Продолжение: The birth and death of a framework
Мне нравится статья! Если игнорировать обратную совместимость, «начать с чистого листа», то многие вещи можно сделать «лучше». Это факт. Именно обратная совместимость часто держит движение вперед.
А по поводу Laravel, многое уже видно, если наблюдать.
В тему статья, «Что, если бы мы начали с чистого листа»… Тут мы воспользовались ситуацией (пока мало установок) и изменили всё на Темы. )