Рождение и смерть фреймворков (framework) Перевод

Yori Yori 16 Октября 2021 (ред)

Время от времени, может быть, каждые пару лет у кого-то появляется идея, которая революционизирует технологическую индустрию. Все популярные фреймворки, которые мы используем изо дня в день, когда-то начинались как такая маленькая и незначительная идея: React, TypeScript, Tailwind, Electron, Laravel.

Трудно представить мир без этих фреймворков. И все же: если бы вы сказали мне 15 лет назад, что экосистема JavaScript будет там, где она есть сегодня, мне было бы трудно поверить вам.


Эрик Эванс однажды выступил с докладом о попытках представить альтернативы фреймворкам и библиотекам, к которым мы привыкли сегодня.

Он посмотрел на популярную библиотеку времени Java — Joda Time — и задумался, лучшее ли это решение. Он, безусловно, был самым популярным, но означает ли это еще и «лучший»? За этим последовал мысленный эксперимент по работе со временем, нестандартному мышлению и решению проблем предметной области с нуля без влияния предшествующих знаний и устаревших ожиданий.

«Что, если бы мы начали с чистого листа», — подумал Эрик?

Думаю, именно здесь рождаются потенциальные революционные идеи. Что, если мы не будем принимать наши текущие решения как должное, а начнем с нуля?

Я считаю Laravel хорошим примером. Можно легко сказать, что 10 лет назад проблема «фреймворков MVC для PHP» уже решалась несколькими фреймворками; зачем нам еще один? И все же Laravel сумел перерасти все остальные фреймворки всего за несколько лет. Есть немало источников данных, подтверждающих это. Например, вот Laravel в сравнении с другими основными PHP-фреймворками на протяжении многих лет в Google Trends:

Популярность Laravel

У меня есть еще несколько источников, которые подтверждают ту же тенденцию:

Это правда, что не существует единого набора данных, который бы на 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

2 Ответа

  1. OleStep OleStep 16 Октября 2021 (ред.)

    Мне нравится статья! Если игнорировать обратную совместимость, «начать с чистого листа», то многие вещи можно сделать «лучше». Это факт. Именно обратная совместимость часто держит движение вперед.

    А по поводу Laravel, многое уже видно, если наблюдать.

    1. Evg Evg 16 Октября 2021 (ред.)

      В тему статья, «Что, если бы мы начали с чистого листа»… Тут мы воспользовались ситуацией (пока мало установок) и изменили всё на Темы. )