Привет, Хаброжители!
React по умолчанию сопряжён со скрытыми издержками. Вот аргументы в пользу более осознанного выбора подходящего фреймворка для конкретной задачи.
React больше не побеждает за счёт своих технических достоинств. Сегодня его выбирают по умолчанию. И именно это «по умолчанию» теперь тормозит инновации во всей фронтенд-экосистеме.
Когда командам нужен новый фронтенд, разговор редко начинается с вопроса: «Каковы ограничения и какой инструмент лучше всего под них подходит?» Чаще всё звучит так: «Давайте возьмём React — его все знают». Такой рефлекс запускает самоподдерживающийся цикл, в котором архитектуру определяют сетевые эффекты, а не техническая уместность.
В то же время фреймворки с реальными инновациями с трудом находят признание. Фреймворке Svelte избавляет пользователя от накладных расходов за счёт компиляции. Solid даёт тонкую реактивность функционала без «налога» виртуальной DOM. Qwik обеспечивает мгновенный запуск через механизм возобновляемости. Эти варианты могут в распространённых сценариях могут оказываться более выигрышными, чем модель React, но редко получают честную оценку, потому что React выбирают по привычке.
React отлично справляется со многими задачами. Проблема не в самом React, а в мышлении «React по умолчанию».
Потолок инноваций
Технические основы React помогают понять часть сегодняшних разногласий.
Виртуальная DOM была умным решением проблем по состоянию на 2013 год, но, как отметил Рич Харрис в статье «Virtual DOM is pure overhead», она вносит лишнюю работу, которой современные компиляторы во многих случаях могут избежать.
Хуки частично сняли боль классовых компонентов, но привнесли новые сложности: массивы зависимостей, устаревшие замыкания и неверно используемые эффекты. Даже в официальной документации React делается акцент на сдержанность: «Вам, возможно, не нужен Effect».
Серверные компоненты ускоряют первый байт, но добавляют архитектурную сложность и новые режимы сбоев.
React Compiler — умное решение, которое автоматизирует паттерны вроде useMemo и useCallback. Но сам факт его существования — это сигнал: мы оптимизируемся вокруг ограничений, заложенных в саму модель.
Для сравнения: Svelte 5 с его инструментом Runes упрощает реактивность уже на этапе компиляции; Solid обеспечивает тонкую реактивность, обновляя ровно то, что изменилось; Qwik с его возобновляемостью полностью упраздняет традиционную гидратацию. Это не постепенные улучшения модели React — это другие модели с другими пределами.
Инновации без внедрения не меняют реальность. А внедрение невозможно, когда выбор делается по привычке.
Технический долг, который все мы несем
Выбирая React по умолчанию, мы часто получаем накладные расходы рантайма и reconciliation, которые уже перестали ставить под сомнение. Даже если производительность «достаточно хороша», потолок оказывается ниже, чем у моделей с компиляцией или тонкой реактивностью. Время разработчиков уходит не на предоставление ценности, а на управление повторными рендерами, зависимостями эффектов и границами гидратации.
Общий вывод из исследований производительности остаётся неизменным: JavaScript — это дорогой ресурс на критическом пути (The Cost of JavaScript).
Мы сосредоточили мышление вокруг «паттернов React» вместо фундаментальных принципов веба, тем самым снизив переносимость навыков и усилив архитектурную инерцию.
И потери здесь не только в производительности — это упущенные возможности, когда более подходящие альтернативы даже не рассматриваются. Например, бенчмарки вроде JS Framework Benchmark показывают, что альтернативы вроде Solid достигают обновлений в 2–3 раза быстрее в сценариях с интенсивной реактивностью по сравнению с React.
Фреймворки, чьё развитие душат
SVELTE: Революция в области компиляторов
Svelte переносит работу на этап компиляции: без виртуального DOM и с минимальным рантаймом. Компоненты превращаются в точечные операции с DOM. Ментальная модель совпадает с фундаментальными принципами веба.
Но аргумент «слишком мало вакансий» искусственно сдерживает распространение Svelte, несмотря на его техническое превосходство для большинства сценариев. Реальные примеры, такие как внедрение Svelte в The Guardian для фронтенда, показывают ощутимый рост производительности и продуктивности разработчиков — зафиксированы сокращения размера бандлов и более быстрая загрузка.
Например, как писали Wired в статье о Svelte, разработчик Шон Ван (@swyx в X/Twitter) уменьшил размер своего сайта с 187 КБ на React всего до 9 КБ на Svelte, воспользовавшись компиляционными оптимизациями, которые убирают накладные расходы фреймворка с рантайма. Это приводит к более быстрым и эффективным приложениям, особенно при медленном соединении.
SOLID: Реактивный примитивный подход
Solid предлагает тонкую реактивность с привычным JSX. Обновления проходят через сигналы напрямую к затронутым DOM-узлам, обходя узкие места reconciliation. Результат — высокая производительность при меньшей известности. Как отмечается в сравнительном гайде Solid, такой подход обеспечивает более эффективные обновления по сравнению с виртуальным DOM в React, давая точную реактивность, которая сводит к минимуму лишнюю работу и улучшает опыт разработки за счёт упрощённого управления состоянием.
Хотя громких кейсов применения меньше, чем у более зрелых фреймворков, это во многом связано с низким уровнем распространения Solid. Но отзывы ранних пользователей показывают аналогичные трансформационные результаты — значительный прирост эффективности обновлений и упрощение кода, которые ждут масштабирования и подтверждения по мере того, как всё больше команд начинают экспериментировать.
Qwik: инновационный принцип возобновляемости
Qwik использует возобновляемость вместо гидратации, обеспечивая мгновенный старт за счёт загрузки только того, что нужно для текущего взаимодействия. Это делает его идеальным для крупных сайтов, длинных сессий или медленных сетей. Согласно руководству Think Qwik, этого удаётся достичь благодаря прогрессивной загрузке и сериализации как состояния, так и кода. Приложения могут мгновенно возобновлять выполнение без тяжёлого бутстрапинга на улиенте, что даёт лучшую масштабируемость и сокращает время первоначальной загрузки по сравнению с традиционными фреймворками.
Истории успеха Qwik пока не так заметны просто потому, что мало команд решились отказаться от «выбора по умолчанию», чтобы попробовать его. Но те, кто сделал этот шаг, сообщают о резком росте скорости запуска и эффективности использования ресурсов — это указывает на огромный нераскрытый потенциал в случае более широкого внедрения.
Все три фреймворка недооценены не из-за недостатков, а потому, что «выбор по умолчанию» мешает их попробовать.
Более того, API React заметно шире и сложнее, чем у альтернатив, включая такие концепции, как хуки, контекст, редьюсеры и паттерны мемоизации, которые требуют внимательного контроля, чтобы избежать проблем. Такая разветвлённая API-поверхность увеличивает когнитивную нагрузку на разработчиков, часто приводя к багам из-за непонимания зависимостей или переусложнённости решений.
Например, во время сбоя Cloudflare 12 сентября 2025 года один хук useEffect с проблемным массивом зависимостей вызвал повторные API-запросы, перегрузив их Tenant Service и приведя к масштабному отказу. В отличие от этого, фреймворки вроде Svelte, Solid и Qwik имеют меньший и более сфокусированный API, основанный на простоте и фундаментальных принципах веба, что снижает когнитивную нагрузку и делает их легче для освоения и сопровождения.
В плену сетевых эффектов
Доминирование React создаёт самоподдерживающиеся барьеры. Вакансии формулируют требования как «React-разработчик», а не «Frontend-инженер», что ограничивает разнообразие навыков. Библиотеки компонентов и «мышечная память» команд усиливают институциональную инерцию.
Лидеры, избегающие рисков, выбирают «безопасный» вариант. Учебные программы подстраиваются под спрос работодателей. Цикл продолжается, независимо от технических достоинств.
Это не здоровая конкуренция — это захват экосистемы по умолчанию.
Разрушение сетевого эффекта
Чтобы вырваться из этой ситуации, необходимо предпринять целенаправленные действия на нескольких уровнях. Технические руководители должны принимать решения, основываясь на ограничениях и преимуществах, а не на импульсе. Компании могут выделить небольшой бюджет на инновации для тестирования альтернативных решений. Разработчики могут повысить свою квалификацию, выйдя за рамки одной ментальной модели.
Преподаватели могут преподавать концепции, не зависящие от конкретных инструментов, наряду с конкретными инструментами. Участники открытых проектов могут способствовать развитию альтернативных экосистем.
Изменения не произойдут сами по себе. Они требуют сознательного выбора.
Чек-лист оценки фреймворка
Чтобы сделать осознанный выбор, при запуске нового проекта воспользуйтесь этим простым чек-листом:
Оцените потребности в производительности: оцените такие показатели, как время запуска, эффективность обновления и размер пакета. Если скорость имеет решающее значение, отдайте предпочтение фреймворкам с оптимизацией на этапе компиляции.
Навыки команды и кривая изучения: учитывайте имеющийся опыт, но не забывайте о путях миграции; многие альтернативы предлагают плавный переход (например, совместимость Solid JSX с React).
Масштабируемость и стоимость владения: рассчитайте долгосрочные затраты, включая обслуживание, управление зависимостями и технический долг. Альтернативы часто снижают накладные расходы на выполнение, сокращая затраты на хостинг и улучшая масштабируемость.
Соответствие экосистеме: найдите баланс между зрелостью и инновациями; запустите пилотный проект в некритических областях, чтобы проверить осуществимость миграции и рентабельность инвестиций.
Стандартные контраргументы
«Но зрелость экосистемы!» Зрелость ценна, но она также может усиливать инерцию. Возраст не то же самое, что пригодность для современных условий.
Кроме того, зрелая экосистема часто означает сильную зависимость от сторонних пакетов, что может привести к дополнительным затратам на обслуживание, таким как обновление зависимостей, устранение уязвимостей безопасности и раздувание пакетов неиспользуемым кодом. Хотя в некоторых случаях такая гибкость необходима, она может привести к чрезмерной зависимости; индивидуальные решения, адаптированные к конкретным потребностям, часто более компактны и проще в обслуживании в долгосрочной перспективе. Меньшие экосистемы в альтернативных фреймворках поощряют создание с нуля, способствуя более глубокому пониманию и уменьшению технического долга. Более того, благодаря тому, что помощники по кодированию с ИИ теперь могут генерировать точные настраиваемые функции по запросу, барьер для создания индивидуальных утилит значительно снизился. Это позволяет полностью отказаться от использования общих библиотек, таких как lodash или библиотек дат, таких как Moment или date-fns, в пользу легких реализаций, специфичных для конкретных приложений.
«Но найм!» Найм следует за спросом. Вы можете снизить риски, опробовав альтернативы в некритических областях, а затем наняв сотрудников с базовыми знаниями и проведя их обучение на рабочем месте.
«Но библиотеки компонентов!» Фреймворк-агностичные дизайн-системы и Web Components снижают зависимость от конкретного фреймворка, сохраняя скорость разработки.
«Но стабильность!» Эволюция React от классов к хукам и серверным компонентам демонстрирует постоянные изменения, а не стабильность. Альтернативные фреймворки часто предоставляют более стабильные API.
«Но проверено в масштабе!» jQuery тоже было проверено в масштабе. Успех в прошлом не гарантирует актуальность в будущем.
Большой ущерб экосистеме
Монокультура замедляет развитие веба, когда ограничения одной платформы становятся де-факто пределами. Талантливые специалисты тратят время на решение проблем, связанных с конкретным фреймворком, вместо того, чтобы продвигать платформу вперед. Инвестиции следуют за действующими игроками, независимо от технических достоинств. Учебные программы оптимизированы для обеспечения немедленного трудоустройства, а не для приобретения фундаментальных знаний. Это приводит к формированию навыков, применимых только к конкретному фреймворку, но не адаптируемых к другим платформам. Улучшения платформы задерживаются, потому что все считают: «React может с этим справиться».
Когда исчезает разнообразие, страдает вся экосистема.
Сад, который мы могли бы вырастить
Здоровые экосистемы требуют разнообразия, а не монокультур. Инновации возникают, когда различные подходы конкурируют и взаимодействуют друг с другом. Разработчики растут, изучая несколько ментальных моделей. Платформа улучшается, когда несколько фреймворков преодолевают разные границы. Ставка на одну модель создает единственную точку сбоя. Что произойдет, если она достигнет предельных ограничений? Какие возможности мы упускаем, не исследуя альтернативы?
Пришло время выбирать фреймворки на основе ограничений и достоинств, а не на основе импульса. Ваш следующий проект заслуживает большего, чем React по умолчанию. Экосистема заслуживает инноваций, которые может обеспечить только разнообразие.
Перестаньте по умолчанию сажать одно и то же семя. Сад, который мы могли бы вырастить, исследуя различные фреймворки, был бы более устойчивым и инновационным, чем монокультура, в которую мы погрузились.
Выбор за нами.
Вот и подходит к концу наша осенняя распродажа ?
Условия акции:
16–28 сентября 2025 г.
Скидка 35% на все бумажные книги по купону — Бумажная
Скидка 50% на все электронные книги по купону — Электронная
Комментарии (39)

cmyser
26.09.2025 13:11пора уже попробовать $mol у коготоро 99.9% достоинств
все описанные выше достоинтсва у него есть, и так же есть множество других
например offline first 1 строчкой кода
синхронизация между вкладками
свой dsl для описания компонентов который умеет Не только в одностороннее связывание!
и еще куча полезных вещей
ScorpAL
26.09.2025 13:11Попробуй переименовать. Избавься от $ в названии (да и в коде тоже). Найди краткое яркое звучное название. Определись с позиционированием. Сделай простой но яркий лэндинг с преимуществами и простейшими примерами и кусочками кода.
Накидай несколько статеек в medium.Гугл по запросу $mol выдал всё что угодно, но не $mol.

cmyser
26.09.2025 13:11

Enverest
26.09.2025 13:11Возможно персонализированная выдача.
У меня статью на хабре выдаёт 6-ой ссылкой в гугле. В Бинге вообще их нет на первой странице.
funca
26.09.2025 13:11Попробуйте поискать "$mol js" или "$mol геморрой". Авторы явно SEO'шничали по этим ключевым словам.

nin-jin
26.09.2025 13:11Надеюсь найденный $mol помог вам вылечиться и вам больше не приходится гуглить такие странные запросы?

funca
26.09.2025 13:11Я без злого умысла, просто наблюдение. Все же знают, что google высоко ценит текст в заголовках и чтобы увидеть страницу на первом месте выдачи нужно попасть в слова. Статьи вы вроде сами писали.
Если просто вбить $mol, то на первом месте мне отображает marines.mil, а все остальное про mole (единицу измерения).

nin-jin
26.09.2025 13:11В том числе я писал статью о сломанном интернет поиске: https://page.hyoo.ru/#!=o9jnhf_7v21c4

henox
26.09.2025 13:11У меня выглядит так

А так полностью согласен с @ScorpAL: ни лендинга, ни примеров, ни туториалов, ни нормальной документации, никому даже в голову не придет пробовать это.

Cmuser
26.09.2025 13:11
Сразу же всё доступнои примеры и туториалы и дока
Выдачу в инкогнито проверял, есть, наверное в российской части интернета лучше ищет

RulenBagdasis
26.09.2025 13:11Судя по всему, только вы его и находите в вашей персонализированной выдаче. У меня на первой странице выдачи никаких фреймворков нет. В Kagi то же самое примерно. Ответ гугловой нейросети нам тоже как-бы намекает на популярность этого инструмента:


nin-jin
26.09.2025 13:11Если научитесь пользоваться кавычками в поиске, то даже в гугле сможете находить искомое гораздо чаще.

RulenBagdasis
26.09.2025 13:11Т.е. вы хотите всех заставить изменить свои привычки, чтобы они нашли ваш неизвестный фреймворк и поняли, какой вы молодец? Купите какую-нибудь книжку по маркетингу, "Маркетинг для чайников" подойдёт вам точно для старта.
А ещё попробуйте почитать тред, в котором отвечаете. Ваш коллега выше демонстрирует поиск без кавычек, поэтому я провожу эксперимент в аналогичных условиях. Адресуйте свои уроки интернет-поиска ему.

nin-jin
26.09.2025 13:11Примечательно, что человек, который с упоением раздаёт свои очень ценные непрошенные советы другим, сам к чужим советам не прислушивается, а потом ещё и возмущается, что его после этого на хер посылают. Продолжаем наблюдение.

RulenBagdasis
26.09.2025 13:11Советы в этом треде вы раздавать начали. Перечитайте, если потеряли контекст. Показательно, что человек, который вас в реале видел, говорит, что там вы ведёте себя по-другому. Пысаетесь? Правильно делаете, в энторнетах на хер посылать гораздо безопаснее.

tamtakoe
26.09.2025 13:11Мол это как Эсперанто. Идеальный, но никому не нужный кроме пары энтузиастов. Создатель просто не понимает на каком языке общаются программисты и предлагает им изучать китайскую грамоту вместо с того, чтобы для начала перестать называть переменные снэк_кейсом (просто потому что на фронтенде так не принято). Жалко, что столько трудов закопано в землю и всё это закончится тем, что кто-то скопирует удачные моменты Мола в свой фреймворк, сделав его удобнее, а про Мол все забудут как забыли про Нокаут после выхода Ангуляра

Femistoklov
26.09.2025 13:11Если автор продвигал его только на Хабре, то это просто непопадание в ЦА. 99% хабровчанинов (и мне - тимлиду фронтенд команды - в том числе) не нужен новый фронтенд-фреймворк. Да, много трудов вложено, да, компетентный автор, да, интересно почитать про какие-то решения. Но и только. Ангуляр, Реакт и Вью стали популярными НЕ на Хабре.

nin-jin
26.09.2025 13:11Я много где про него писал и много где выступал. Если вы только сейчас про него узнали, то проблема на вашей стороне.

Femistoklov
26.09.2025 13:11Хорошо. А те, кому вы писали и перед кем выступали - им в принципе нужен новый фронтенд-фреймворк?

nin-jin
26.09.2025 13:11Если бы я спросил людей, чего они хотят, они бы попросили более быструю лошадь.

Femistoklov
26.09.2025 13:11Сильно. Если уж проводить аналогии, я бы вашу работу и существующие решения сравнил скорее не с автомобилем и лошадьми, а с раскладкой клавиатуры Дворака и QWERTY. Да, у Дворака может быть объективно в чём-то получше, но не принципально, и по большому счёту всем глубоко ПОФИГ и на его раскладку, и на самого Дворака.

themen2
26.09.2025 13:11Пора уже угомониться с этим mol... Да простит меня господь. Это уже похоже на клинику какую-то

RulenBagdasis
26.09.2025 13:11Автор, к сожалению, агрессивный хам, что он уже много лет показывает на хабре. Поэтому, даже если он сделал что-то хорошее, пользоваться этим желания не возникает. Вон он вам тоже продемонстрировал своё отношение к потенциальным пользователям..

funca
26.09.2025 13:11Автор в жизни нормальный дядька, я как-то пересекался с ним. И пользователей в общем-то ценит. Но в интернетах он такой, да.

nin-jin
26.09.2025 13:11Воинствующие идиоты не являются нашей целевой аудиторией. Се ля ви.

RulenBagdasis
26.09.2025 13:11Продолжайте в том же духе, так вы точно станете популярнее.

nin-jin
26.09.2025 13:11Вы зря проецируете на других свои жизненные ценности - это мешает вам понимать происходящее.

nin-jin
26.09.2025 13:11Тут про нейминг: https://mol.hyoo.ru/#!section=docs/=yhm6e9_l5h97i
А тут про влияние мола на индустрию: https://mol.hyoo.ru/#!section=docs/=f43e8e_z87u2z

tamtakoe
26.09.2025 13:11ЧатГПТ помог составить список. Прочитайте и беритесь за версию 2.0. Я не стебусь, действительно уважаю ваш труд и огорчаюсь, что работа зашла в тупик из-за очевидных вещей(
Дональд Норман — The Design of Everyday Things (в русском переводе: «Дизайн привычных вещей» / «Дизайн вещей будущего»).
Норман прямо пишет, что хороший дизайн должен опираться на знания и опыт, который у человека уже есть.
Пример: дверные ручки, кнопки, интерфейсы должны быть «понятными с первого взгляда», потому что они используют знакомые паттерны.
Стив Круг — Don’t Make Me Think («Не заставляйте меня думать»).
Книга о веб-дизайне и UX, но идея универсальная: пользователю должно быть сразу понятно, как использовать интерфейс, без долгого обучения. То есть — чем более знакома и ожидаема модель взаимодействия, тем лучше.
Джон Маэда — The Laws of Simplicity («Законы простоты»).
Там есть акцент на том, что упрощение и опора на уже знакомые формы взаимодействия помогают пользователю быстрее понять продукт.
Алан Купер — About Face: The Essentials of Interaction Design.
Книга про интерфейсы, где также подчеркивается важность работы с ментальными моделями и привычными сценариями пользователя.
Дитер Рамс (принципы хорошего дизайна).
Один из его 10 принципов: "Good design is understandable" — то есть дизайн должен быть «самоочевидным» и работать в логике, понятной пользователю.
nin-jin
26.09.2025 13:11Я тоже так умею:
Создайте систему, которой сможет пользоваться даже дурак, и только дурак захочет ею пользоваться.
Если всегда делать то, что всегда делали, всегда будут получать то, что всегда получали.
Любая сложная задача имеет простое, легкое для понимания неправильное решение.
Не бойтесь менять привычное, чтобы найти лучшее.
Тонкость рассуждения рассчитана на тонкость понимания... Если понимания нет, то объяснения излишни.

dominus_augustus
26.09.2025 13:11Адепты двух религий уже в комментах. Их библиотеки объединяет лишь одна вещь, ими никто не пользуется

funca
26.09.2025 13:11На самом деле это уникальные проекты, которые на каждом шагу бросают вызов всякой попсе типа React. Но если ими начнут пользоваться все подряд как React, тогда они сами превратятся в попсу, - чего авторы, естественно, допустить никак не могут.

Unnemed112
26.09.2025 13:11Скажу одно не популярное мнение. Для людей которые топят за фреймворки, которые точечно работабт с Dom, не очевиден факт, что разметка меняется не точечными узлами, а блоками, и там уже не важно, работает там какой то умный алгоритм рассчета изменений или происходит маппинг с виртуального дома. Разница в перформансе в этом случае практически отсутствует для конечного пользователя приложения. Поэтому команды выбирают реакт по причине быстрого онбординга, простого апи и бесконечного количества готовых решений.

isumix
Во Фьзоре нет ни встроеного стейта, ни реактивности. Врочем, это всё легко и явно подключается одной иструкцией обычного JavaScript. Но парадоксально вот что, несмотря на это - код получается менее многословным, чам в любом другом фреймворке. А благодаря тому что абстракция - минимальна - почти натив - то гибкость и производительность тоже впереди.