dev fiction


Придумал новый жанр. Вот есть science-fiction, а в мире разработки пусть будет dev-fiction. А что, индустрии веб-разработки явно не хватает своих философов, футуристов и фантастов. Если бы были, то может быть и не появилось в своё время никакого «фронтенда». Начну это исправлять.

2027 год. После релиза 20 версии React и выхода нескольких мажорных версий Next.js команду разработки React вместе с проектом окончательно поглощает Vercel. Meta открещивается от React и веба и уходит целиком в индустрию ИИ. Бизнес-модель Vercel медленно загоняет развитие платформы в тупик: всё больше продуктовых компаний отказываются от хостинга переусложнённых приложений в Vercel и выбирают миграцию на альтернативные опенсорсные хостинги. Vercel теряет прибыль и перестаёт вкладываться в развитие React.

2028 год. TC39 в окончательно уходит от «ежегодного» версионирования языка ES. Теперь baseline-версия языка зафиксирована в версии ESBase и больше практически не изменяется. Все нововведения в язык привносятся в sugar-версию языка — ESNext. -ESNext-версия кода комплируется в базовую ESBase. Для этого TC39 в коллаборации с разработчиками Babel, которые остались не у дел, выпускает выпускает альфа-, а затем бета-версию ESNext-компилятора для преобразования ESNext в ESBase. В языке ESNext появляется типизация. «Нативные» типы ESNext оказываются намного лучше по перфомансу, чем TypeScript, и поэтому TS проигрывает конкуренцию и медленно деградирует. Происходит раскол в команде разработки VSCode и одна часть разработчиков присоединяется к проекту Zed, чтобы разрабатывать новый быстрый редактор для ESNext. VSCode, после ухода части команды, нанесён непоправимый урон, поэтому VSCode по факту останавливается в развитии.

2030 год. Команда React несколько лет пребывает в упадке. Компании всё чаще ищут альтернативное решение, которое будет позволять создавать более быстрые SPA с простым SSR, но его нет на рынке. Многочисленные попытки уйти от React и создать альтернативное JSX+SSR-решение спотыкаются о то, что в них не работают существующие на рынке дизайн-системы и UI-киты, «залоченные» на React API. При этом Angular и Vue так и не обретают большой популярности и остаются нишевыми проектами. Проблема всё больше назревает и требует какого-то разрешения.

Внутри Google решают сделать ставку на создание нового быстрого фронтенд-фреймворка на основе веб-компонентов. Для этого создаётся команда во главе с Addy Osmani, которая сначала в короткие сроки в коллаборации с Open UI, Brad Frost, а также с группой разработчиков Devon Govett, создаёт новый универсальный не привязанный к конкретному фреймворку набор компонентов на основе React Aria. Он получает название GlobalComponents.

2032 год. Команда берётся за создание самого фреймворка, FinalFramework, который тесно сынтегрирован с новым набором компонентов GlobalComponents. Киллер-преимущество нового фреймворка в том, что он не требует дополнительной сборки, кроме компиляции ESNext в ESBase (если писать код сразу на ESBase, то его можно в принципе не билдить, а запускать как есть в браузере, подключив один JS-файл фреймворка в рантайме).

Кроме того, в браузере Chrome в дев-тулзах (инспекторе, профайлере и дебаггере) также появляется нативная интеграция с GlobalComponents и FinalFramework, которая позволяет удобно отлаживать приложения и быстро учиться работе с FinalFramework.

Помимо средств работы непосредственно с DOM (JSX отсутствует, его заменяет надстройка над темплейт-литералами), фреймворк содержит встроенную систему атомарных реактивных сторов, основанную на событийной модели. Также из коробки предоставляется инкапсуляция стилей и JS-скоупы, что больше не требует от команд заботиться о бандлировании и болезненно внедрять «микрофронтенды» посредством тяжеловесного тулинга. Парадигма меняется: один веб-компонент — это и есть «микрофронт» со своим JS-файлом. Данными с окружающим миром он обменивается посредством событий, глобального контекста и нативных браузерных API. Из-за того, что фреймворк построен на веб-компонентах, которые могут отдаваться с сервера как есть простыми строками , SSR включается одним ключом в настройке компонента.

«Примитивный» подход к веб-разработке становится модным, дев-блогеры призывают к «get back to the roots!». Webpack уже давно в стагнации, Evan You вместе с компанией void(0) несколько лет как переключился на коммерческую поддержку легаси-проектов в крупных корпорациях.

2035 год. Из-за своего быстродействия и лёгкости ментальной модели разработки, а также удачного маркетинга, FinalFramework бурно захватывает рынок. Благодаря нативной интеграции с основными браузерами, пошедшими на поводу у удачной стратегии Google, FinalFramework начинает использоваться не только в веб-SPA, но также в создании мини-аппов внутри других крупных приложений и в качестве решения для десктоп-приложений на основе Electron. Веб вновь захватывает мир.