В конце прошлого года на сайте State of JS 2020 было опубликовано исследование о состоянии экосистемы JavaScript в 2020 году с ретроспективой на предыдущие годы развития. Исследование основывалось на многочисленных опросах, в которых суммарно приняли участие более 23 тысяч человек из 137 стран мира.
![Географическое распределение числа опрошенных. Географическое распределение числа опрошенных.](https://habrastorage.org/getpro/habr/upload_files/eec/ca9/6ff/eecca96ff1c611b66170c49659e91bff.png)
По результатам исследования можно сделать ряд прогнозов о том, какой будет экосистема JavaScript в 2021 году.
Языки, расширяющие возможности JavaScript
Первое, на что хочется обратить внимание, это тренды использования компилируемых языков, которые расширяют стандартные возможности JavaScript. Здесь всё довольно предсказуемо: TypeScript прочно обосновался на позиции лидера. При этом из года в год количество его поклонников только растет. И, возможно, TypeScript уже стал негласным стандартом для индустрии разработки веб-приложений.
![Тренды использования языка. Тренды использования языка.](https://habrastorage.org/getpro/habr/upload_files/3d1/cf5/568/3d1cf5568b161376c22a8250d03f3548.png)
Кроме рейтинга использования языков, на сайте также приводится сравнение по трём другим показателям: удовлетворённость от использованием этой технологии, интерес к ней и осведомлённость о её существовании. Как и в первом случае TypeScript держит лидирующие позиции с тенденцией к дальнейшему росту.
Также, судя по трендам, сообщество проявляет интерес к языкам из ML-семейства, которые предоставляют больше возможностей для приверженцев функционального программирования. Но о преобладании кого-то из них пока говорить рано.
Фреймворки
Наверно, многие помнят, когда в начале бурного развития фронтенд-экосистемы количество фреймворков росло, словно грибы после дождя. Часть из них уже канула в лету (Press F for Backbone.js, Marrionete.js, Prototype.js, [type anything].js), и за последние годы мы могли наблюдать стабилизацию позиций трёх основных конкурентов: React, Angular, Vue. И с каждым годом их доля присутствия на рынке только росла.
![Тренды использования технологии. Тренды использования технологии.](https://habrastorage.org/getpro/habr/upload_files/c2d/297/e18/c2d297e18ad78edaff743c059e886309.png)
Однако здесь не всё так однозначно. В 2019 году ворвался молодой Svelte, который за 2020 год в два раза увеличил свою долю использования среди разработчиков. И при этом в рейтингах проявления интереса и удовлетворённости от использования со стороны IT-сообщества Svelte занимает первое место. Фреймворк стал глотком свежего воздуха в подходе к созданию веб-приложений, и поэтому следует ожидать, что он будет наращивать своё присутствие в 2021 году всё больше и больше.
![Тренды интереса к технологии. Тренды интереса к технологии.](https://habrastorage.org/getpro/habr/upload_files/b35/e79/f3a/b35e79f3a835a09fd1aa5aec8281696d.png)
![Тренды удовлетворённости от использования технологии. Тренды удовлетворённости от использования технологии.](https://habrastorage.org/getpro/habr/upload_files/5cf/c38/276/5cfc382762343fff76a3f9b0528adab7.png)
Также интересна позиция Angular как одного из лучших в рейтинге использования. Несмотря на то, что им пользуется более половины опрошенных, интерес к изучению этого JavaScript-фреймворка плавно угасает. Разработчики едины во мнении, что Angular имеет высокий порог входа и применим в основном для разработки крупных и сложных проектов. Ожидается, что в 2021 году разработчиков будут привлекать фреймворки с меньшим порогом входа.
Главный лидер, React, по-прежнему занимает прочную позицию во фронтенд-сообществе, и это не изменится в 2021 году. Постоянное развитие этого инструмента в сочетании с некоторыми новаторскими идеями во фронтенде гарантирует, что это решение ориентировано на будущее.
Управление данными
Благодаря популярности React и его частому использованию совместно с Redux для управления состоянием приложения, последний на протяжении пяти лет исследований занимал первую позицию. И только в 2020 году его доля использования перестала расти, а удовлетворённость от использования стала резко падать. Возможно, это связано с гетерогенностью «обвесов», которые применяются совместно с Redux и большим количеством шаблонного кода, который приходится писать при использовании этой технологии.
![Тренды использования технологии. Тренды использования технологии.](https://habrastorage.org/getpro/habr/upload_files/80d/698/cd8/80d698cd849c1a197a3029fc373e2ea4.png)
Одновременно с этим GraphQL за последние годы медленно наращивал свои позиции. Инструмент сейчас чрезвычайно популярен, становясь номером один в категориях удовлетворённости, интереса и осведомлённости. Легкость работы и отличная интеграция с бекендом становится ключом к успеху. И это даёт неплохие шансы для GraphQL на 2021 год в плане дальнейшей популяризации.
![Тренды удовлетворённости от использования технологии. Тренды удовлетворённости от использования технологии.](https://habrastorage.org/getpro/habr/upload_files/48c/7ba/17a/48c7ba17ac32fd70e7efaa1f791c08d7.png)
![Тренды интереса к технологии. Тренды интереса к технологии.](https://habrastorage.org/getpro/habr/upload_files/1d6/719/068/1d6719068a1d3e775e80bb32626df107.png)
Инструменты для тестирования
В мире библиотек для модульного тестирования всё довольно прагматично и основывается на ранее рассмотренных показателях. В частности, Jest продолжает своё господство, что и следовало ожидать, учитывая, что React является самым популярным фреймворком, а Jest — это часть экосистемы React.
Mocha по-прежнему является достойной альтернативной. Но отсутствие явной привязанности к конкретному фреймворку смещает её на вторую позицию.
Jasmine является инструментом тестирования по умолчанию для проектов на Angular. И, возможно, спад его популярности связан с определенным спадом самого Angular.
![Тренды использования технологии. Тренды использования технологии.](https://habrastorage.org/getpro/habr/upload_files/ce7/eb7/e06/ce7eb7e06f0d16a8b7bb8e5e131fc9af.png)
Также интересен тот факт, что сообщество проявляет активный интерес к инструментам для интеграционного и e2e-тестирования. Сложно сказать, с чем это могло бы быть связано. Возможно, на это повлияла популярность TypeScript, который предлагает статическую проверку типов на этапе компиляции. Что значительно снижает количество требуемых модульных тестов для покрытия кода и высвобождает время для того, чтобы можно было заняться интеграционными и e2e-тестами.
![Тренды интереса к технологии. Тренды интереса к технологии.](https://habrastorage.org/getpro/habr/upload_files/d89/aca/94e/d89aca94effd0386d6036625ec5ec3d9.png)
Заключение
Специфика экосистемы JavaScript такова, что каждое направление ее развития представлено большим количеством технологий и инструментов. Для бизнеса критически важна гибкость и скорость в разработке своих продуктов, возможность с легкостью нанимать специалистов с рынка и не скатываться в legacy. Поэтому возрастает важность прогноза технологических трендов развития IT-индустрии, который может серьёзно повлиять на успех компаний в будущем.