В глазах разработчика Vue.js

Отказ от ответственности. Это мои собственные мысли. Я ни в коем случае не говорю, что все это соответствует действительности. Не стесняйтесь не соглашаться с чем-либо или со всем. Берите из него все, что хотите.

Я уже давно работаю с Vue.js. Большую часть своего времени я провел, работая с отличным Quasar framework. Однако недавно я устроился на новую работу в компанию по разработке программного обеспечения, которая использует Ember.

Люди на моей новой работе в основном «за» Эмбер. Меня это несколько удивило. Я давно знаю об Ember и даже немного пробовал его еще во времена Rails 3, когда всеобщее внимание было уделено SPA. Однако последние пару лет я чувствовал, что Эмбер действительно отстает.

Проработав с Ember уже несколько недель, я хотел бы поразмышлять о нескольких вещах, которые я наблюдал.

Достоинства: Он проверен в бою и предлагает LTS-релизы.

Что мне определенно нравится в Ember, так это долгосрочная безопасность, которую он предлагает. Есть четко обозначенные выпуски LTS с четко обозначенными устареваниями и т. д.

Мы все помним, какой пиздец был с Angular 2, и некоторые из нас могут чувствовать то же самое по поводу перехода от API параметров к API композиции во Vue.

Эмбер, похоже, ничего подобного не делал. Да, произошел переход от классического Ember к Glimmer с Ember Octane, но, по крайней мере, в моей работе все, кажется, довольны этим, и это также приводит Ember в соответствие с другими современными фреймворками.

Плохое: Экосистемы для Ember просто нет (больше?)

Будем честны. Экосистема для Ember тусклая. Разработчики Ember могут разозлиться на меня за это, но многие библиотеки не поддерживают Ember «из коробки» без некоторой доработки.

Что касается библиотек компонентов пользовательского интерфейса для Ember? Я знаю только про ember-uikit. EmberUI активно развивается (думаю?), но предлагает всего 8 компонентов. Это тоже Ember Boostrap (но уже 2021 год, кто еще использует бутстрап?). Если вы сравните это с фреймворками, созданными с помощью Vue или поддерживающими Vue:

Если вы разрабатываете приложение Ember, вы в основном сами по себе. Вы не сможете просто собрать кучу компонентов, как с Vue. Для меня это огромное снижение производительности.

Вы можете использовать такие вещи, как Apollo, но это не так. Поддержка намного лучше для Vue и React.

Уродливые: отсутствие хороших хуков жизненного цикла, сборка конвейера, BLOAT

За короткое время с Ember я заметил пару вещей:

1. Нет крючков жизненного цикла

Меня просто поражает, что Ember не имеет реальной поддержки хуков жизненного цикла, как я знаю их по Vue. В Vue я получил свои создал, смонтировал, beforeDestroy и т. д. В Ember мне нужно хакнуть их вместе с помощью модификаторов. Однако, и в этом вся прелесть, очевидно, что это больше не рекомендуемый подход? Несмотря на то, что он фигурирует в их собственных руководствах?

Я также нахожу отвратительным, что мой шаблон сообщает моему компоненту, что он должен выполнить какой-то хук жизненного цикла.

2. Построить пайплайн

Брокколи это плохо: дерево не качается, изменение компонента обновляет все приложение, что это за 2009 год? Есть альтернатива Embroider (по сути, вебпак), но она уже давно почти доделана. Илон Маск сказал бы скоро.

3. Раздувание

Эмбер огромен. Когда я открываю документацию Ember, я получаю более 320 КБ JS. Делая то же самое с документацией Vue, я загружаю 82 КБ JS. Vue в самой тонкой форме весит 33 КБ. Эмбер действительно должен быть таким большим?

Выводы

Я не ненавижу Эмбер, правда. Мне это нравится. Но я думаю, что если он хочет идти в ногу с современными JS-фреймворками, ему нужно серьезно заняться.