Непросто отказываться от иллюзий, но пришла пора подвести черту. Может кому-то сгодится на распутье выбора. Ну и внукам потом буду показывать. Этой истории уже 20 лет. Краткое содержание: фреймворки — больше никогда; выход есть.  Можно сразу перейти к сути, или с предисловием: почему вообще Метеор? Начинал на Delphi под флагами RAD и VCL. Два чемодана книжек — скупал всё подряд, как маньяк. Приятно осознавать, что некоторые учились кодить в редакторе Winsyntax.  Прошли годы. Устроился веб-мастером в IT-отдел. Помимо перетряхивания корпоративного сайта на PHP, познакомился с монстром SharePoint: виджеты на C#, формочки InfoPath, шлюз в HP ServiceDesk на Java. И очень хотелось поднять сайтик про мою машинку.   Как SharePoint, но чтоб на PHP — привет, Drupal. Это была любовь с первого взгляда. Delphi для веба. Реестр модулей — ящик с сокровищами. Базовый функционал можно настроить мышкой. Коллективный разум для решения технических вопросов. Я заболел сам, и заразил автора LiveStreet: Потом была Мамба. Узнал про Highload и Big Data, про издержки на разработку и обслуживание большого-пребольшого велосипеда. Затем примерил роль крупного эксперта веб-технологий в жирном стартапе: от любых бед нас спасёт фреймворк, в одну харю подниму супер-пупер проэкт и на Мальдивы. Django? Python очарователен, но нет. Может быть Yii? Да ну нафиг PHP вообще. V8, NPM, CoffeeScript, Jade, Express — раздолье. Крыша поехала от SocketStream (ого, все ещё жив), спасибо автору за наводку — привет, Meteor. Раздуплился на раз-два, как мне казалось. На сегодня уже прилично накопил full-time практики.  Внезапно осознал циничную правду. Я выбирал фреймворки, чтобы компенсировать недостаток ресурсов для быстрого старта, но это условная величина при забеге на длинную дистанцию. Фреймворк по определению имеет избыточную функциональность — нужно угодить всем-всем-всем случаям применения. "Чем больше сдадим, тем лучше". Каким бы распрекрасным не казался фреймворк, история будет повторяться каждый раз. Наши бизнес-цели расходятся.  Вспомнить ужасающие хитросплетения схемы данных под капотом Drupal, где спасало тупое кеширование (об этом же говорил Александр Соловьёв в докладе про оптимизацию modnaKasta). Фреймворк берёт на себя ответственность, ограничивая выбор сторонних решений. Изначально сомнительные решения мешают. Правильные решения устаревают. Метеор меняется и пакеты забрасывают: AutoForm, CollectionFS, Jade, IronRouter, поделки от гуру @arunoda. Сроки жизни пакетов, зависимых от фреймворка, значительно уступают библиотекам для платформы. И тут уже конкретная засада: на саппорте тысячи строк развесистого левого кода с обязательствами по обновлению зависимостей для новых версий фреймворка.  Атмосфера — официальный реестр пакетов, хранит тонны неработающего барахла. И больше не собирает статистику установок, хотя механизм можно встроить в Meteor (вспоминаю Drupal). От "богатства выбора" разбегаются глаза. Усугубляет ситуацию отказ от бесплатного хостинга демок на *.meteor.com — старт Galaxy закрывает возможность дальнейших внешних инвестиций? Ну, OK. И эта ваша Атмосфера тормозит всю дорогу (хотя можно же ускорить, см. Fastosphere) — никому нет дела.  О редизайне документации. Ранее это была одна страничка с якорями. Кому она мешала? Больше не работают ссылки из Гугла (ребята видимо не в курсе, что гипертекст — это целостность ссылок, в первую очередь). Под воем критики спустя какое-то время появился внутренний поиск, но оставьте его себе (переехал на devdocs.io). Чем больше ответственности берёт на себя фреймворк, тем больше технологическое отставание и в базовых пакетах. Отборные примеры: HTTP/2, Mongo, Node. Скорость сборки заметно возросла с переходом на версию 1.3 (долгожданная поддержка NPM), но это же натурально трэш по-прежнему.  Краеугольный камень продуктивности (да-да-да, говорю только за себя) отправляется на свалку. JS закусил удила, увы. Язык должен быть прост на базовом уровне. Но фреймворк обязан следовать трендам, ага. Реально встречал требование в вакансиях: отвращение к CoffeeScript. Посмотрите, как прекрасен React на CoffeeScript. GraphQL закрывает вопрос масштабируемости LiveQuery? Поживём-увидим, только оно мне надо сегодня. Пока Horizon опережает в развитии Apollo. Плюс Виктор Грищенко на конференции HolyJS раскритиковал DDP. Мол нет там id-версии в пересылаемых пакетах. А это значит, что если пользователи вышли в оффлайн и вернулись через какое-то время, то "optimistic updates" (aka latency compensation) не сработает и данные потеряются. Favro — нарядно, но исходники недоступны. Ещё есть RocketChat, но там печалька: Больше ничего интересного не нашёл. Кстати, вот альтернативные наборы на коленке лобзиком без претензии называться фреймворками: Meatier, lovli.js. Только сейчас узнал, как оно было задумано:  Метеор все больше переходит на стек технологий Facebook, видимо хочет слиться в экстазе. Аминь! Нужно дойти до горизонта, чтобы увидеть новый горизонт.  PS: ещё один прозрел. PPS: why frameworks are evil. #кодеротбога