00:00:00Ровно 10 лет назад — и это действительно поразительно, должен признать — был довольно важный
00:00:06день для меня, потому что тогда я выпустил первую версию своего курса по Angular, курса по Angular 2.
00:00:12И, как и сам Angular, этот курс, конечно же, сильно эволюционировал за эти 10 лет,
00:00:17я обновлял его бесчисленное количество раз, так как Angular заметно развивался. И
00:00:23в этом видео, в этом выпуске, я хочу немного поговорить о прошлом Angular: откуда мы
00:00:28пришли, где мы находимся сегодня и, конечно, куда мы движемся и что ждет
00:00:32Angular и его разработчиков в будущем, стоит ли его по-прежнему учить, особенно
00:00:37сейчас, в эпоху ИИ. Давайте погрузимся в тему. Итак, Angular, а конкретно Angular 2,
00:00:44был анонсирован в 2014-м, разрабатывался в 2015-м, и тогда он вызвал много споров,
00:00:53потому что полностью отличался от Angular 1 (AngularJS), который сам по себе был одним
00:00:59из первых крупных фреймворков того времени, созданных, по сути, чтобы помочь нам
00:01:05отказаться от jQuery или, проще говоря, чтобы мы могли создавать более продвинутые
00:01:13и интерактивные веб-приложения. Angular 1 упростил разработку приложений,
00:01:20управляемых на стороне клиента. А затем анонсировали Angular 2, и он был совсем другим. И в 2016-м вышла
00:01:25первая стабильная версия Angular — я имею в виду именно Angular 2.
00:01:33И, как я уже говорил, в феврале 2016-го я выпустил первую версию своего курса
00:01:40еще для бета-версии Angular 2. И поверьте, в той бета-фазе и даже в фазе релиз-кандидата
00:01:45было очень много изменений, я уже тогда обновлял курс много-много раз.
00:01:51Но в итоге мы получили Angular 2. И тот Angular,
00:01:58если сравнить с современным кодом, выглядел совсем иначе. Была концепция ng-модулей,
00:02:05где использовались классы и декоратор @NgModule,
00:02:12в котором нужно было явно объявлять все используемые компоненты. Конечно, были и сами
00:02:19классы компонентов, и внедрение зависимостей через конструктор. В какой-то степени
00:02:26это было похоже на современные компоненты — это все еще класс. Но все же отличия были огромны.
00:02:32Особенно ng-модули — вещь, о которой вы можете уже и не знать,
00:02:39в зависимости от того, когда вы начали путь в Angular и в какой компании
00:02:45с какой версией работали. Ведь до сих пор
00:02:51существует множество проектов, «застрявших» на старых версиях.
00:02:55Затем, в 2017 году, случилась история с «пропущенной» третьей версией. У Angular
00:03:04и по сей день график релизов подразумевает новую мажорную версию каждые полгода.
00:03:11Я помню, тогда многие были этим недовольны, так как казалось,
00:03:17что Angular будет ломаться каждые шесть месяцев. В комментариях к курсу было полно
00:03:23жалоб на то, что Angular постоянно меняется, хотя на самом деле это было не так.
00:03:27Такой график релизов просто давал им возможность внедрять крупные новые функции,
00:03:33но они всегда делали это с соблюдением обратной совместимости.
00:03:40А третья версия в 2017-м «пропала» вот почему: изначально
00:03:46возник рассинхрон версий между основными пакетами Angular и пакетом роутера,
00:03:51так как Angular — это фреймворк, разделенный на множество отдельных пакетов.
00:03:57И они пропустили третью версию, чтобы привести все к единому номеру. Ну а
00:04:03следующим большим скачком стал 2020 год и внедрение компилятора Ivy.
00:04:12Конечно, и в промежутке, году в 2018-м, команда Angular усиленно
00:04:19работала над этим новым компилятором, параллельно внося мелкие правки и улучшения.
00:04:25Идея компилятора заключалась в полной переписке внутренних механизмов Angular: того, как компоненты
00:04:31компилируются и переводятся в инструкции для манипуляции DOM. Старый компилятор
00:04:38имел свои неэффективности, которые приводили к неоправданно большому размеру бандла. Именно
00:04:44поэтому они затеяли этот огромный проект по переписке внутреннего компилятора. Почему это важно?
00:04:52Это важно, потому что тот период можно назвать «скучной фазой». С 2017-го
00:05:01по 2020-й мало что менялось внешне. Многое менялось внутри, были мелкие улучшения,
00:05:10но основной набор функций и то, как вы создаете компоненты, оставались прежними.
00:05:16Почему это имело значение? Потому что в то время на рынке
00:05:22JavaScript-фреймворков была огромная конкуренция. В 2016-м
00:05:27вышел Vue.js 2, бурно развивалась экосистема React.
00:05:36В 2018-м в React появились хуки. Казалось, что остальной
00:05:43мир JS стремительно эволюционирует, и не всем это нравилось. Честно говоря,
00:05:50Angular на этом фоне казался застойным. Но это не так плохо, как звучит.
00:05:57Многие ценили эту стабильность, ведь люди часто жаловались на то,
00:06:03что в JavaScript-мире всё меняется слишком быстро. Сегодня это
00:06:08звучит как шутка, учитывая эволюцию ИИ и перемены,
00:06:13происходящие буквально каждый день. Но тогда на это жаловались. Это была «скучная фаза».
00:06:19И она закончилась примерно в 2022 году, когда в Angular 14
00:06:28появились Standalone-компоненты (кажется, сначала в режиме Developer Preview).
00:06:33Суть была в том, что внезапно вам больше не нужны были модули Angular.
00:06:42Вместо этого вы добавляли флаг standalone к компоненту и могли
00:06:47использовать его в других компонентах без ng-модулей. То есть вы всё еще могли их использовать,
00:06:55сочетать с автономными компонентами и миксовать их как угодно,
00:07:00потому что обратная совместимость и легкая миграция всегда были приоритетом
00:07:05для команды Angular, но теперь модули перестали быть обязательными. Так появились Standalone-компоненты,
00:07:12а за ними в 2023-м быстро последовал Angular 16 с сигналами и множеством
00:07:20других новшеств. Например, появился новый синтаксис условий через @if
00:07:26вместо директивы ngIf. Также начались первые эксперименты с
00:07:34Zoneless Angular. Если вы не в курсе, изначально Angular 2
00:07:40использовал концепцию ng-zone или zone.js. Это была библиотека, которая отслеживала
00:07:46все виды событий на сайте: клики, HTTP-запросы и многое другое.
00:07:54Затем она запускала механизм обнаружения изменений, чтобы проверить, нужно ли обновить DOM.
00:08:00Плюс такого подхода был в том, что обновления DOM казались «магическими».
00:08:05В отличие от React, не нужно было вызывать setState или что-то подобное.
00:08:11Но минус заключался в «манки-патчинге», когда библиотека
00:08:17внедряла обработчики во все события, что создавало лишнюю нагрузку
00:08:22и увеличивало размер бандла. К тому же это было
00:08:28менее эффективно, чем механизм React. Поэтому Zoneless стал огромным шагом вперед,
00:08:35который стал возможен благодаря сигналам. Идея сигналов в том, что
00:08:40теперь у вас есть явный способ сообщить Angular об изменении состояния.
00:08:46Фреймворк запоминает, где именно в DOM используется это состояние, и
00:08:52обновляет только эту часть. Так в 2023 году в Angular появилась гранулярная реактивность.
00:09:01Именно поэтому этот период часто называют «Ренессансом Angular». После
00:09:08«скучной фазы» и хаоса первых дней с кучей ломающих изменений относительно
00:09:15первой версии, сообщество снова полюбило Angular, потому что разработчики
00:09:23сделали огромные шаги в будущее: сделали Angular легче, проще в использовании и
00:09:30приблизили его к тому, что люди видели в других фреймворках. Те же сигналы,
00:09:36например, стали популярны благодаря SolidJS, хотя, кажется, одним из первых
00:09:43крупных фреймворков, использовавших их, был Vue. Только там они назывались refs. Как бы то ни было,
00:09:50Angular двигался именно туда. И сейчас, в 2026-м и далее, мы
00:09:59увидим дальнейшее развитие. Появятся сигнальные формы. Команда Angular также
00:10:06активно внедряет ИИ: в CLI встроен MCP-сервер, чтобы упростить ИИ-разработку
00:10:13приложений и «обучить» нейросети всем фишкам Angular. Таким образом, это история
00:10:19фреймворка, который на самом деле оставался стабильным и обратно совместимым
00:10:26на протяжении всего пути, несмотря на то, что переизобретал себя как минимум раз, а то и несколько.
00:10:33Он был суперстабильным. Я считаю, команда Angular проделала отличную работу,
00:10:39им удалось изменить имидж Angular: из тяжеловесного и
00:10:46сложного в освоении инструмента он превратился в более современный фреймворк.
00:10:54Кстати, Angular всегда был фреймворком «полного цикла» (batteries included),
00:10:59где из коробки есть работа с формами, роутинг, HTTP-запросы, внедрение зависимостей,
00:11:06управление состоянием. Всё это уже встроено. Вам
00:11:12не нужно искать сторонние библиотеки, в отличие от React, где приходится отдельно подключать
00:11:18роутер, библиотеку для стейт-менеджмента и так далее. Именно
00:11:23эту особенность ценят многие компании. Поэтому Angular показывал
00:11:29стабильный рост на протяжении всех этих 10 лет, если взглянуть на графики.
00:11:37Но правда и в том, что React вырос гораздо сильнее. Если добавить
00:11:45кривую React, то график Angular почти не виден. Особенно с начала 2025-го React
00:11:54резко рванул вверх, и мы все знаем причину — это ИИ. Потому что у ИИ,
00:12:00о чем я не раз говорил в других видео, есть явный фаворит — это React с Next.js
00:12:06и Tailwind, а не Angular. Значит ли это, что Angular мертв или что
00:12:13его больше не стоит учить? И как вообще выглядит будущее Angular
00:12:18в эпоху ИИ? Что ж, Angular по сей день используется во многих крупных корпорациях именно
00:12:27благодаря стабильности и постоянной обратной совместимости, которая доказана делом,
00:12:34а не просто словами. Благодаря комплексному подходу «всё включено» Angular
00:12:40популярен в большом бизнесе. Конечно, React тоже популярен в
00:12:46крупных компаниях, но цифры загрузок Angular не всегда
00:12:53точно отражают его реальное использование или популярность в корпоративном секторе.
00:13:00И я могу сказать по своему курсу: на нем обучается 850 000 человек. Это
00:13:08ненамного меньше, чем на моем курсе по React на Udemy. Конечно, курсов по React
00:13:15на платформе в целом больше, и они масштабнее. Но тем не менее,
00:13:22мой опыт отличается от того, что можно увидеть на графиках. Я
00:13:29постоянно вижу, что бизнес-клиенты тоже активно изучают Angular. И это,
00:13:36безусловно, делает его отличным выбором для создания современных веб-приложений
00:13:43даже сегодня. Он очень современный благодаря «Ренессансу Angular» и всем
00:13:48запланированным функциям. Конечно, стоит учитывать фактор ИИ. ИИ меняет то,
00:13:57как мы программируем и пишем код. Мы пишем меньше кода. По крайней мере, я пишу меньше.
00:14:04Я использую такие инструменты, как Claude Code или Cursor (кстати, у меня есть по ним курсы,
00:14:09ссылки под видео). Мы пишем код и создаем
00:14:14программы иначе. Но наш выбор технологий все еще важен. Мы хотим использовать
00:14:21технологии, которые поддерживаются, получают обновления безопасности и новые функции,
00:14:27повышающие эффективность или производительность, или позволяющие решать задачи,
00:14:34для которых раньше нужны были сторонние библиотеки. Нам все еще нужны такие технологии.
00:14:40И в этом плане Angular по-прежнему остается достойным и отличным
00:14:45выбором, как и React, если быть честным. И да, предвосхищая
00:14:51комментарии: Vue и Svelte тоже великолепны. Но это видео,
00:14:57как вы заметили по названию и обложке, посвящено именно Angular. Так что да, это отличный
00:15:02выбор. И да, ИИ умеет писать код на Angular, особенно если дать ему правильный контекст,
00:15:08что необходимо в любом случае, вне зависимости от технологии. И
00:15:13поэтому я считаю, что Angular хорошо подготовлен к будущему с ИИ. Если вы считаете,
00:15:19что через три года никто вообще не будет писать код, и выбор технологий
00:15:25перестанет иметь значение, то у вас, конечно, будет другое мнение. Но я так
00:15:30не считаю. Глядя на свою повседневную работу с ИИ, где я активно его использую
00:15:35и где большая часть моего кода генерируется нейросетью, я вижу, что умение управлять ИИ,
00:15:41выбирать технологии и программную архитектуру важно как никогда. И
00:15:48Angular здесь остается отличным вариантом. Такова была моя краткая история Angular —
00:15:54фреймворка, который навсегда останется в моем сердце. Ведь, как я уже говорил,
00:16:00это был первый крупный курс, который я выпустил на Udemy. И он многое
00:16:07изменил в моей жизни: позволил мне профессионально заниматься созданием курсов. Он изменил жизни
00:16:13и карьеры бесчисленного множества людей. Я получил столько потрясающих отзывов. И
00:16:19поэтому Angular всегда был и остается для меня чем-то особенным.