У нас в VK нет JS-фреймворка. Для большинства из вас это звучит как признание в слабоумии.
Но вряд ли вы знаете, что, например, Chrome DevTools (а это по сути большое веб-приложение) тоже не использует фреймворки.
По крайней мере по состоянию на лето прошлого года.
Как я уже и говорил, я один из организаторов @spb_frontend и год назад у нас был один из разработчиков девтулов.
В своём выступлении он, в том числе, призывал не бояться писать приложения без фреймворка.
Если задуматься, то зачем нужен фреймворк?
Унификация стиля и архитектуры, набор понятных ограничений, абстрагирование от рутиных операций.
Фреймворк помогает быстро стартовать, но очень редко фреймворки переживают быстрое масштабирование.
В какой-то момент набор ограничений фреймворка перестает подходить для вашего проекта.
Хороший пример фейла фреймворка при масштабировании: twitter и rails. Не знаю помните ли вы, как часто и надолго ложился твиттер.
При масштабировании остается два варианта: городить костыли, либо дописывать/переписывать фреймворка под себя.
Мне кажется именно поэтому сейчас так популярен стек-конструктор react + redux + whatever.
Потому что в ситуации с react + redux у вас есть набор низкоуровневых абстракций, а дальше вы можете кастомизировать все под свои нужды.
При этом новички на небольших проектах стремятся следовать моде.
Тогда как новичкам бы может лучше подошел какой-нибудь полноценный фреймворк, вроде Ember.js.
Но в react + redux они получают в лоб от количества решений и абстракций, который нагородили другие. Фреймворки защищают от такого.
Если вы разрабатываете приложение, где не все ренедерится на клиенте — как интегрироваться с сервером. Популярное решение — REST.
Но что если вам надо присылать куски HTML с серверва по абсолютно разным причинам. От legacy до улучшения производительности?
Если вы используете фреймворк — возникает вопрос, как он вообще будет работать, если вы больше не используете REST?
Скорее всего, вы сможете научить фреймворк работать с кусками HTML с сервера через какое-нибудь грубое вмешательство.
В какой-то момент, может так случиться, что все что осталось от вашего фреймворка — серия грубых вмешательств. И какие-то декорации вокруг.
И что делать если вы переросли свой фреймворк? Необязательно сразу писать свой.