Quantcast
Channel: Найцікавіше на DOU
Viewing all articles
Browse latest Browse all 8115

Что происходит с Angular 2

$
0
0

Вы встречали человека, у которого опытом работы с фреймворком Angular 2 больше года? Уже. Расскажу, как я туда попал.

В начале 2015 года я закончил работать над вторым изданием моей книжки по Java и, как обычно, сказал себе: «Never Again!» Работа над книгой по программированию довольно изнурительная, и после девяти месяцев обычно хочется уже вытолкать этого очередного ребенка.

Через пару месяцев мне позвонил редактор из издания Manning и стал интересоваться, чем я занимаюсь и не хочу ли я написать книжку. Yeah, right! Я стал вяло поддерживать разговор и сказал, что о Java точно писать не хочу, а сейчас занимаюсь Web фреймворками. Дело в том, что последние три года наша компания пытается найти заменитель фреймворку, который требует опального Флэш Плеера.

Весной 2015 я занимался AngularJS, хотя в отличие от остального мира веб разработчиков, мне этот фреймворк не нравился. Если честно, мне и JavaScript никогда не нравился, хотя, возможно, я так никогда и не научился его готовить.

Надо заметить, что в то время по интернету пошли слухи, что Google решил полностью переписать AngularJS, и что новая версия будет называться Angular 2. Одним словом, я предложил моему коллеге Антону Моисееву стать соавтором книги по Angular 2, то есть написать книгу о том, чего еще нет, и он согласился. После года работы, книга готова, да и Angular 2 1.0 уже вот-вот увидит свет.

As ham and hamster

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

Когда я начал изучать Angular 2, мне было очевидно, что Angular 2 to AngularJS is as ham is to hamster (да, я перефразирую популярное сравнение Java и JavaScript). Сегодня, год спустя, я продолжаю считать, что это два совершенно разных продукта.

AngularJS 1.x был и продолжает оставаться самым популярным JavaScript фреймворком, и им пользуются более миллиона (!) разработчиков. Думаю, кто-то в Google решил подсесть на раскрученный бренд и предложил подать совершенно другой фреймворк как новую версию AngularJS. Типа, Coca Cola 2. В целом это был правильный маркетинговый ход, особенно если учесть, что главным автором обоих фреймворков был один и тот же рок стар разработчик Misco Hevery. Однако разработчики создают и разные продукты, правда?

Если бы Microsoft использовал такую же маркетинговую стратегию, то они бы не назвали достаточно новый язык TypeScript, а продвигали бы его как C# 2. Оба эти языка придуманы одним автором по имени Anders Hejlsberg, ведь так? Потом они бы опубликовали руководство по миграции из C# в C# 2, которое было бы так же притянуто за уши, как и руководствопо миграции из AngularJS to Angular 2. Я уверен, что в следующем году появятся новые руководства, объясняющие, как мигрировать в Angular приложения из React, Ember и ExtJS, и эти процессы не будут сложнее, чем миграция из AngularJS в Angular 2.

Breaking changes

Ладно, хватит придираться к имени фреймворка. Перейдем к версиям релизов. Для книжки мы написали много маленьких приложений, и нам приходилось их переписывать для каждого нового альфа релиза Angular 2. Мы не жаловались, потому что знали, на что подписывались. В каждой альфе были breaking changes, и мы переписали все примеры раз 20. В начале 2016-гофреймворк пошел в бету, а в мае 2016 пришло радостное известие: вышел Angular 2 Release Candidate 1.

Когда меня спрашивали в январе, не очень ли рискованно начинать разрабатывать новое веб приложение с Angular 2, я уверенно отвечал «Да, фреймворк достаточно стабилен». Я был неправ! В своей профессиональной жизни я видел много релизов и был уверен, что альфы всегда включают новые фичи и breaking APIs. Беты — для багфиксинга, а релиз-кандидаты — для полировки продукта. Кто мог подумать, что в период между RC.1 и RC.5 и Router API и Forms API будут полностью переписаны, и появится совершенно новый API для модулей, которые поменяют и внутреннюю архитектуру фреймворка и загрузку приложений?

Если вы меня спросите сегодня (в конце августа 2016 года), безопасно ли начинать разработку нового приложения на втором Ангуляре, я отвечу так: «Если Angular 2.0 не будет зарелизан в сентябре 2016 года, не делайте этого».

Зайдите на StackOverflow, и вы увидите вопросы типа: «У меня такая-то проблема. Я использую Angular 2 RC.1». Если кто-нибудь предложит сделать апгрейд то RC.5, автор вопроса напишет «У меня нет на это времени».

Вообще, в мире JavaScript опенсорса редкая птица долетит до версии 0.5. Когда объявляется Release Candidate любого продукта, связанного с JavaScript, для разработчиков кровавого энтерпрайза это служит сигналом «Софт стабилен. Можно использовать в коммерческих проектах».

А разве апгрейд из одного RC в другой может быть многошаговым процессом? Может! Даже руководствопо апгрейду из RC4 в RC5 есть. И подзаголовок бодрячком: «Migrate your RC4 app to RC5 in minutes». Да, рассказывайте. Именно этим я сейчас и занимаюсь. У меня ушла неделя, чтобы перевести 40 маленьких приложений из RC.4 в RC.5.

Из недавнего подкаста Adventures in Angularя узнал, что, когда разработчики Angular 2 решают, включать ли breaking changes в следующий RC, они задают себе вопрос: «А улучшит ли это Angular?» Если ответ «да», то они берут ломик в руки...

Михаил Жванецкий когда-то сказал: «При чем тут борщ, когда такие дела на кухне!» Дорогие разработчики второго Ангуляра, мне нравится Angular 2 RC.5 таким, как он есть. Пожалуйста, займитесь багами и перестаньте добавлять новые ингредиенты в борщ! Очень кушать хоцца! Дайте нам стабильный релиз и уймитесь на полгода — мы тоже хотим релизать наши приложения.

The happy ending

Angular 2 — это не просто ценный мех. Это мощная платформа для разработки сложных веб и мобильных приложений. Будучи Java разработчиком, я вижу, что Angular 2 может оказать такое же огромное влияние на JavaScript комьюнити, как Spring фреймворк оказал на мир Java.

Не забывайте о 15 миллионах Java и .Net разработчиков, большинство которых еще не потрогали Angular 2, а когда потрогают, им понравится!

Я работал с AngularJS, но он мне никогда не нравился. AngularJS был (и остается) очень популярен, и не знать его было плохим тоном, но он мне не нравился все равно. Если честно, мне не нравится ни JavaScript, ни любой другой JavaScript фреймворк. Однако мне очень даже нравится дуэт Angular2-TypeScript.

В конце сентября в Лондоне пройдет конференция AngularConnect 2016, и я очень надеюсь, что кто-то выйдет на подиум и скажет: «Дамы и Господа! У нас для вас приятнейшее известие. Сегодня вышел Angular 2 1.0».

В 2017 году хедхантеры будут бегать за разработчиками, знающими Angular 2. Готовьте сани летом, if you know what I mean.


Viewing all articles
Browse latest Browse all 8115

Trending Articles