В своей статье, посвященной призыву к публикации в блоге Ember.js в 2018 году, я исследую влияние неизбежных крупномасштабных изменений фреймворка на опыт разработчиков и обсуждаю временную маркетинговую стратегию Ember.

Спросите любого разработчика, почему они любят Ember.js, и слово «стабильность» обычно является одним из первых терминов, используемых для описания фреймворка.

Я работаю с Ember.js с конца 2013 года. Я придерживался его, потому что я твердо придерживаюсь двух его основных принципов:

  • Соглашение важнее конфигурации
  • Стабильность без застоя

Эти идеалы на протяжении многих лет направляли развитие Ember и привели к фантастически продуктивному опыту разработчиков (DX).

Тем не менее, есть неприятная проблема с текущим состоянием Ember для тех, кто глубоко увяз в конвенциях Ember:

В ближайшие 12 месяцев структура изменится до неузнаваемости.

Можно было бы сказать, что это положительная и волнующая проблема. Конечно, это является.

Я не сомневаюсь, что к 2019 году наша структура будет практически возрождена, предлагая новый и улучшенный опыт разработки для тех, кто уже ценит Ember, а также будет способна заставить разработчиков React / Angular / Vue окунуться в экосистему Ember.

Однако для существующих разработчиков Ember впереди долгий путь нестабильности.

Ember больше, чем любой другой фреймворк, должен быть чувствителен к изменениям DX из-за своего тяжелого подхода. По своей природе наше сообщество ценит стабильность, и Ember продает себя за это. Надвигающийся призрак крупных концептуальных изменений в том, как мы взаимодействуем с фреймворком, глубоко тревожит. Эти неопределенности влияют на то, как мы создаем наши приложения в настоящее время, и снижают нашу уверенность в долгосрочной ценности кода, который мы пишем.

Можно утверждать, что в следующем году все основные области структуры изменятся до неузнаваемости:

Синтаксис: Классы ES6

Самое большое изменение в DX, принятие классов ES6 перевернет весь синтаксис фреймворка с ног на голову. Изменив всю ментальную модель того, как определять ресурсы, разработчика нужно будет научить новым концепциям - декораторам (и способам доступа к ним), отслеживаемым свойствам и наследованию классов (с миксинами или без них?), И это лишь некоторые из них.

Файловая система: объединение модулей

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

Шаблон: компоненты угловых кронштейнов

Компоненты угловых скобок (Glimmer) представят совершенно новый метод вызова компонентов с синтаксисом, более близким к стандартным HTML / веб-компонентам. Также произошел переход к определению передаваемых свойств компонентам как @props,, что станет дополнительной концепцией, которую разработчики могут потренировать.

Состояние маршрута: сага о контроллерах

Это проблема, которая сохраняется слишком долго - используем мы или нет контроллеры? Я давно ограничил логику своего контроллера манипулированием параметрами запроса через Ember Parachute. Надеюсь, что решение вопроса о контроллере будет принято в следующем году, что повлияет на то, как мы обрабатываем долгоживущее состояние маршрута и параметры запроса как в компонентах, так и в маршрутах.

Стиль: блоки CSS

Тесная интеграция Ember CLI и CSS Blocks, вероятно, произойдет в следующем году. Хотя я уверен, что CSS-блоки появятся как надстройка, а не как требуемые знания, большинству разработчиков понадобится дар написания стилей с ограниченной областью видимости с помощью компактных пакетов стилей. Блоки CSS - это большое концептуальное изменение для определения и структурирования стилей, которое потребует большого изучения.

Язык: поддержка машинописного текста

В то время как Ember всегда будет фреймворком, ориентированным на JavaScript, применение Typescript в сообществе JavaScript быстро растет, а поддержка типизированных приложений Ember приближается к той стадии, когда Typescript может стать доминирующим языком для приложений и надстроек.

Модули: установка NPM

Одним из недостатков Ember является сложность включения пакетов без написания прокладок или необходимости снискать расположение мельчайших деталей в значительной степени недокументированной библиотеки Broccoli.js. Работа продолжается, чтобы просто заставить npm install работать, но, скорее всего, будет новая конфигурация, которую нужно изучить для точной настройки импорта модулей - например, настройка импорта для Fastboot и сборок браузера.

Решения о производительности: двигатели? Разделение кода?

Большинство приложений Ember в настоящее время страдают от объединения всего в монолитные полезные нагрузки app.js и vendor.js. Разделение кода по границам маршрута исследуется для решения этой проблемы, что может потребовать некоторой изученной конфигурации. Тем временем, до того, как произойдет разделение кода, Ember Engines может выполнять ленивую загрузку частей приложения Ember. Будем надеяться, что Engines выйдет на стабильную версию 1.0 с улучшенной документацией и станет отличным оружием в арсенале разработчиков Ember.

Аддоны: Множество обновлений

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

Учитывая все изменения, перечисленные выше, бесспорно, что Ember сегодня будет сильно отличаться от Ember завтрашнего дня.

Таким образом, уместно спросить, может ли Ember действительно предложить какое-либо подобие «стабильности» во время всех этих изменений в соглашениях, и должно ли сообщество вообще пытаться продавать и обучать структуру в ее текущем состоянии.

Совершенно противоположная ситуация - я невероятно продуктивен с существующим фреймворком и очень мало претензий к опыту разработчиков. Но на данный момент очень сложно порекомендовать Ember товарищу-разработчику, у которого нет абсолютно никакого опыта работы с ним.

Когда меня спрашивают об Ember, я постоянно повторяю слова «У Ember есть планы на этот счет, скоро появится новый ‹enter-feature-here›».

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

Похоже, что нынешнее состояние Ember не особенно востребовано.

Существует явный конфликт между продажей «стабильности» разработчику как одной из основных черт фреймворка и одновременным признанием того, что весь опыт разработчика будет сильно отличаться в ближайшее время.

Вот почему у меня возникнет соблазн начать продавать ближайшую "мечту" Ember раньше времени.

За пределами эхо-камеры нашего сообщества Ember существует поверье, что Ember умирает. Это восприятие необходимо изменить - быстро.

Так почему бы не воспользоваться моментом и не создать привлекательный маркетинговый сайт специально для «опыта» Ember, который, как мы знаем, выбьет из колеи более широкое сообщество разработчиков?

Ember может заранее вызвать интерес к скоординированному маркетинговому запуску, красиво оформленному и смелому новому стилю, чтобы сообщество могло шуметь и разъяснять, в каком направлении движется фреймворк.

Синтаксис ES6, новый макет файлов, новые шаблоны и т. Д. - новые функции появятся в выпусках 3.x как неизменные изменения, но давайте приготовимся продемонстрировать совокупность всех этих удивительных частей. Продайте видение прямо сейчас!

"Перезапуск" Ember в сознании тех, кто его отвергает.

Потому что на данный момент только хардкорные эмберисты знают, что их ждет.

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

Схожим образом, Ember Statusboard - это здорово, но это справочник, а не маркетинговый инструмент. Нам нужно что-то, что объединит все воедино и провозгласит: Эмбер не умирает, у него действительно есть потрясающие вещи, готовые к приземлению… очень скоро!

Необходимо изменить восприятие, и заблаговременное продвижение концепции Ember на 2019 год может даже привлечь более амбициозных разработчиков, которые помогут нам в ее достижении.

Ember 4, возможно?

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

Если цель состоит в том, чтобы расширить сообщество Ember и захватить долю рынка от React / Angular / Vue, то ключевым моментом является достижение максимального интереса.

Я говорю, давай возьмем.

В заключение, я люблю Ember. Спасибо всем, кто причастен. Мне кажется, что я стою на плечах гигантов, когда решаю сложные проблемы такими элегантными решениями.

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