Поскольку это довольно субъективный вопрос, я задам свои 2 цента.
Я разработал с использованием инструментария Dojo и нашел его очень хорошо округленным. Однако, если вы не делаете пользовательскую сборку в вашей библиотеке, это замедляет все. У него более крутая кривая обучения, чем у других фреймворков, но, похоже, он находится довольно близко к сердцу JavaScript.
Но это не реклама додзё. Сейчас я работаю над веб-приложением Ajax, и моя цель - попытаться избежать использования фреймворка. Зачем? Несколько причин.
Самая большая причина - полный контроль над кодом. Не то чтобы я не доверял инструментарию, мне просто нравится мой собственный код. У меня нет кода, который я не использую, и все мои абстракции сделаны специально для моих целей. Иногда я на самом деле заново изобретаю колесо *, но оно всегда немного отличается, потому что оно построено специально.
Другая важная причина - это количество знаний, которые я получаю. Я уверен, что я мог бы выбрать любой фреймворк намного быстрее, потому что не использовал его для проекта. Я понимаю намного больше, чем раньше. Раньше это было больше похоже на таинственную коробку вуду, и теперь даже рамки имеют для меня больше смысла.
В том-то и дело, что если вы сделаете какой-нибудь нетривиальный javascript, у вас будет фреймворк (или беспорядок). В действительности это может быть не самый быстрый способ написания веб-приложений, но это не так сложно, если немного потренироваться. Вы можете быть удивлены тем, какие творческие вещи вы можете придумать, чего раньше не было.
* Изобретать колесо - ужасная аналогия, которую мы все используем. Мы постоянно изобретаем колеса. Сначала из камня, затем из более легкого дерева, шин и т. Д. У моего грузовика нет таких же колес, как у моего седана.