Найти в Дзене

Какой JavaScript фреймворк или библиотеку выбрать для изучения в 2020 году?

Очень часто слышу вопрос: какой фреймворк или библиотеку в JavaScript выбрать для изучения, особенно от новичков? Тем более их достаточное разнообразие на любой вкус и цвет. Конечно хотелось бы знать максимально много, а лучше всё, но к сожалению — это не реально, поэтому давайте объективно оценивать наши силы. Данная статья посвящена именно перспективности изучения таких популярных на данный момент фреймворков, как: React, Angular и Vue. Поэтому здесь не будет технического сравнения и глубокого анализа внутренней структуры каждой из них. Я намеренно сосредоточился именно на этих трех и не затрагивал с десяток других подобных, которые были популярны или только набирают популярность, т.к. их доля уже или пока ничтожно мала на общем фоне. Начнем с выбора критериев, по которым мы будем сравнивать претендентов, и сравним то, что нам покажет выборка. Итак я думаю для нас, как разработчиков, важны следующие моменты: Популярность библиотеки Раз с критериями определились, начнем сравнивать. И
Оглавление

Очень часто слышу вопрос: какой фреймворк или библиотеку в JavaScript выбрать для изучения, особенно от новичков? Тем более их достаточное разнообразие на любой вкус и цвет. Конечно хотелось бы знать максимально много, а лучше всё, но к сожалению — это не реально, поэтому давайте объективно оценивать наши силы.

Данная статья посвящена именно перспективности изучения таких популярных на данный момент фреймворков, как: React, Angular и Vue. Поэтому здесь не будет технического сравнения и глубокого анализа внутренней структуры каждой из них.

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

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

  • популярность библиотеки
  • востребованность на рынке труда
  • предполагаемый срок поддержки и конечно, кто поддерживает данную библиотеку или фреймворк

Популярность библиотеки

Раз с критериями определились, начнем сравнивать. И первый критерий — популярность. О ней может говорить два показателя — это количество загрузок и количество звезд на GitHub, хотя со вторым можно поспорить.

Посмотрим соотношение загрузок разных библиотек в разные периоды, за точку отсчета возьмем 2015 год и у нас получиться вот такой график на основе статистики с npm-stat.com:

-2

По количеству загрузок React сильно обгоняет своих ближайших конкурентов, и тенденция к росту сохраняется вот уже на протяжении нескольких лет, в отличии от того же Angular. С большой долей вероятности исходя из тенденций нескольких лет Vue рано или поздно обгонит Angular, но до React еще далеко.

Вторым критерием популярности может служить количество звезд на Github и здесь соотношение немного иное:

-3

Vue незначительно обгоняет React в этом плане, но я не склонен сильно доверять объективности системы звезд на GitHub, хотя — это моё личное мнение. Но факт остается фактом, 166 тыс. у Vue против 166 тыс. у React на момент написания статьи.

В последние годы Vue действительно быстро набирает популярность за счет своей простоты в освоении. Порог вхождения намного ниже того Angular и многим он кажется проще изучения React с его JSX синтаксисом.

Востребованность на рынке труда

Звезды звездами, но вернемся на Землю и рассмотрим еще один критерий — это востребованность на рынке труда. Нам, как работникам важно понимать, насколько востребована та или иная специализация в области frontend разработки. И тут помогут данные русскоязычного агрегатора вакансий — hh.ru. Введем простые запросы по ключевым навыкам на странице сайта и получим примерно следующую картину:

-4

Для русскоязычного сегмента рынка IT специалистов в области frontend разработки характерно доминирование React. Мы видим, что он уверенно держит свои позиции в качестве лидера среди JavaScript фреймворков. Это обусловленно разными причинами, о которых мы еще поговорим ниже, но по моему мнению, одной из ключевых является гибкость библиотеки.

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

Angular в свою очередь достаточно популярен в enterprise разработке, т.к. он хорошо структурирован, с ним удобно работать не только frontend разработчикам, но и специалистам с backend стороны. Его подходы и архитектура хорошо сочетается с “серверными” языками, например с Java, а она в свою очередь очень популярна в крупных компаниях финансового сектора и высоко нагруженных систем.

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

Долгосрочность поддержки со стороны главных мейнтейнеров

И третий, наверное, не маловажный момент — это долгосрочность поддержки в прошлом и обозримом будущем. Потому как мы вкладываем своё время и силы на изучение, внедрение и поддержание той или иной библиотеки. Будет весьма обидно, если в какой то момент “горячо любимая” библиотека или фреймворк перестанет развиваться или просто прекратит своё существование.

У React опять же в этом плане всё не плохо, ядро разработки поддерживается со стороны Facebook. И судя по тому, что они внедряют React в своих приложениях говорит о долгосрочности существования и развития библиотеки в целом. Обновления React получает регулярно и на момент выхода статьи стабильной вышедшей версией была уже 16.

В этом плане Angular не отстает от React, он поддерживается со стороны Google и тоже с завидным постоянством обновляется. Хотя и была длинная пауза между первой и второй версией, но уже затем регулярность обновлений восстановилась и сейчас — это уже 9 мажорная версия.

И наконец Vue, тут поддержка проекта по большей части лежит на opensource сообществе. Есть команда постоянных разработчиков, которые занимаются поддержкой и развитием кода, а также всей остальной экосистемой Vue. На данный момент стабильной является вторая версия библиотеки.

Где лучше подходит React, Angular и Vue?

React подойдет, если вам требуются следующие характеристики:

  • Приложение требует высокой скорости работы. React со своей идеей с Virtual DOM действитель быстрый, отлично оптимизирован, поэтому справляется с этой задачей полностью.
  • Приложение требует хорошей поддержки со стороны SEO. В целом React приложения хорошо настроены под поисковые системы, и роботы поисковиков уже уверенно могут обрабатывать SPA приложения.
  • Достаточно низкий уровень входа и большое количество разработчиков. Это снижает в целом расходы и время на ввод нового разработчика в проект и упрощает в целом поддержание приложения.
  • Большая экосистема и комьюнити. Информации по самой библиотеке и всей её экосистеме очень много, что является существенным конкурентным преимуществом.

Angular подойдет в следующих случаях:

  • Для очень больших и нагруженных enterprise проектов. Как уже говорилось — высокая структурированность фреймворка позволяет без проблем поддерживать громоздкие проекты.
  • Приложение требует наличия большого количества динамических элементов. Благодаря эффективной работе с данными и так называемому `data binding` у вас будет сильный инструмент управления всем этим многообразием данных.

И наконец Vue:

  • Приложение требует высокой скорости работы. Аналогично React, Vue обладает высокой скоростью приложений, поэтому тут точно не прогадаем.
  • Требуется максимально легкое приложение. У Vue есть неоспоримое преимущество — это небольшой вес приложений, а это бывает часто критичным.
  • Приложение необходимо встраивать в уже существующее. В этом плане Vue немного выигрывает перед остальными и не требует всей той обвязки, которые есть у остальных, например, ему не нужен тот же JSX для создания компонентов.

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

Итак

Мы рассмотрели три основных фреймворка (библиотеки), которые доминируют в настоящее время — это React, Angular и Vue. Моей целью было дать общее представление о выборе первого фреймворка для изучения именно с точки зрения ближайшей перспективы. Поэтому и был выбран такой набор претендентов и критериев оценки каждого из них.

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

А вот со вторым местом не так всё просто, здесь скорее зависит от ситуации и места, куда планируется попасть будущему разработчику. Если опыта не так много, то стоит предпочтение отдать Vue, из-за его простоты в освоении и применении.

Если же вы полноценно изучили и попробовали один из фреймворков, то ничто не мешает развиваться дальше и понять, как работают остальные. Дополнение существующих знаний и навыков еще никому не вредило!

Ссылки:

https://npm-stat.com/ — сайт со статистическими данными о загрузке с npm

https://ru.reactjs.org/ — официальная документация по React на русском языке

https://angular.io/ — официальный сайт Angular

https://vuejs.org/ — официальная страница Vue