В веб-разработке наш мир быстро меняется, но что мы можем сказать, что принесет 2021 год? Изучив данные опросов разработчиков 2020 года, я выделил, какими, на мой взгляд, будут большие истории о JavaScript.

Прежде чем вдаваться в подробности, сделаем небольшое примечание об опросах по JavaScript. К сожалению, следующее издание превосходного Front End Tooling Survey не будет опубликовано в течение некоторого времени, что затрудняет поиск тенденций. Хотя у нас может быть не один хороший обзор, вместо него появился новый: Состояние Front End. Хотя предыдущих годовых данных, которые помогли бы нам увидеть тенденции, нет, но они были заполнены колоссальными 4500 разработчиками со всего мира, так что это определенно ценный ресурс.

Давайте углубимся и исследуем выводы, которые я почерпнул из данных.

Менеджеры пакетов

В прошлом году я посоветовал нам следить за ростом PNPM, цель которого - избежать конфликтов версий и хорошо работать с монорепозиториями. У него есть несколько страстных сторонников, и в прошлом году он достиг 9,5 тысяч звезд на Github, так что он явно выигрывает у разработчиков. Однако я считаю, что в 2021 году вряд ли он сможет серьезно конкурировать по использованию, учитывая, насколько Yarn и NPM встроены в текущие проекты и сколько энергии они вложили в разработку новых функций. Некоторые из этих функций были разработаны непосредственно в ответ на PNPM, в частности Рабочие пространства. Это просто показывает, насколько важна конкуренция в продвижении вперед программного обеспечения с открытым исходным кодом.

Тестирование

В 2019 году Cypress и Puppeteer выделялись как высокие новые записи, и оба они продолжали иметь успех в 2020 году. Однако Microsoft представила на вечеринку новый инструмент для тестирования E2E в виде Playwright, который Казалось, что они появились из ниоткуда и только в 2020 году набрали чуть менее 20 тысяч звезд. Как одна из крупнейших в мире компаний-разработчиков программного обеспечения, они обладают достаточным влиянием для широкого продвижения своих товаров, но это лишь частично объясняет популярность этого инструмента. Основная причина - набор функций и простой способ миграции с Puppeteer.

С тех пор, как Наделла занял пост генерального директора, Microsoft выработала привычку выпускать популярные и мощные инструменты с открытым исходным кодом. Кто угодно VSCode?

Варианты JavaScript

В прошлом году я сказал, что TypeScript медленно, но верно захватил мир JavaScript; эта тенденция усилилась. Бесчисленные проекты с открытым исходным кодом с готовностью перечисляют его как поддерживаемую функцию. Deno, который был самым популярным проектом Github в 2020 году, поставляется со встроенным компилятором Typescript.

В прошлом году я посоветовал нам следить за PureScript, учитывая интерес к статическим типам и функциональному программированию, который он вызывает. Однако в 2020 году популярность была не такой высокой: только 641 новая звезда на Github и процент упал на 3%. Глядя на огромный разрыв в использовании между TypeScript и его конкурентами, кажется, что языковая война окончена и продукт Microsoft победил. Любому новичку будет сложно привлечь наше внимание после долгих лет раздумий в сообществе и в атмосфере языковой перегрузки.

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

Фреймворки пользовательского интерфейса

Vue был самым популярным фреймворком 2019 года, который в то время был большой новостью и ясно давал понять: разработчикам он нравится. То же самое и в 2020 году. Однако рыночная доля React по-прежнему огромна, когда мы смотрим на загрузки NPM.

Есть еще два полезных показателя: теги в GitHub и рекламируемые вакансии. В настоящее время на GitHub более 80 тыс. Репозиториев с тегом React по сравнению с 25 тыс. Репозиториев с тегом Vue. Что касается рынка труда, то в мае прошлого года Career Karma сообщила о 10 005 вакансиях на Indeed.com для разработчиков React в США и только 1025 для Vue. React повсеместен и выдерживает жесткую конкуренцию.

Я не могу завершить этот раздел, не упомянув Svelte и Angular. Angular по-прежнему очень популярен - он набрал 13,3 тысячи новых звезд в прошлом году и получает почти 2,5 миллиона загрузок в неделю через NPM. Для некоторых это может стать неожиданностью, учитывая доминирование React, но эта статистика заслуживает признания. Svelte, по сравнению с ним, очень молод, но возглавляет диаграмму удовлетворенности в State of JS. Однако я ожидаю, что в 2021 году он принесет лишь скромные выгоды из-за крутой кривой обучения для разработчиков React и Vue.

Бэкэнд

Теперь это сложное пространство, где фреймворки для генерации статических сайтов соседствуют с фреймворками для производства API. Если мы немного разберемся и взглянем на только серверные фреймворки, мы увидим, что Express по-прежнему неплохо сидит с 51,5 тыс. Звезд. Тем не менее, в 2020 году Nest взорвался с ошеломляющими 10,3 тысячами новыми звездами, а их общее количество достигло 33,6 тысячи. Разработчики приняли его, потому что их привлекает его самоуверенный подход, который может ускорить разработку и упростить обслуживание. О, и я упоминал, что он использует TypeScript?

Глядя на распространение фреймворков с полным стеком, в этом пространстве идет очень важная битва за сердца и умы, потому что они оказывают огромное влияние на архитектуру, производительность и способы работы. Два фреймворка на основе React, NextJS и Gatsby, по-прежнему значительно более популярны, чем их аналоги на VueJS, с точки зрения использования, но это только подтверждает то, что мы уже знаем об экосистеме UI-фреймворка. Что действительно примечательно, так это то, насколько снизился рейтинг удовлетворенности Гэтсби. Неофициальные данные свидетельствуют о том, что у него есть сбивающий с толку DX, хотя в Интернете есть множество доказательств, опровергающих это. Поскольку NextJS разрабатывается Vercel и добавляет в его арсенал такие функции, как создание статических сайтов, я вижу, что в этом году он только набирает обороты.

Инструменты сборки

В этой области сейчас есть достойная внимания конкуренция. Несмотря на жалобы на DevX от Webpack, он долгое время безраздельно властвовал и до сих пор пользуется наибольшим спросом среди крупных компаний. В прошлом году мы видели, как Rome бросил вызов этому пространству, а в этом году esbuild, Snowpack и Vite поднялись в хит-парадах восходящих звезд. Задача Esbuild проста: ускорить сборку. Это явно очень ценно для многих инженерных команд и объясняет движение к этому.

В то время как звезды GitHub являются одним показателем, Snowpack возглавляет диаграмму Интерес в обзоре State of JS, но, что более важно, она находится на вершине диаграммы Удовлетворенность. Хотя использование может все еще быть довольно низким, я чувствую, что его время приближается. Популярность Snowpack и Vite является важным сигналом: нативные модули ES серьезно воспринимаются сообществом. Это огромная тема из-за ее влияния на процесс сборки, кеширование и симметрию модуля dev / prod.

Государственное управление

Какой UI-фреймворк был бы полным без сопутствующего менеджера состояний? Не говоря уже о спорах о сложности и проверке на будущее, эта область особенно интересна, потому что Redux бросают вызов с двух сторон: изнутри самого React и независимых новичков.

Я знаю по собственному опыту, насколько мощными могут быть хуки и контекстные API React, но у них есть свои ограничения. В любом случае, они, безусловно, пользуются большим успехом у разработчиков React, поскольку почти половина участников State of Front End заявляет, что они их используют.

Заключение

В прошлогодней статье я исследовал тему консолидации. После многих лет расхождения между шаблонами, фреймворками и библиотеками кажется, что мы ориентируемся на шаблоны и практики. Хотя я считаю, что эта тенденция сохранится и в 2020 году, очевидно, что популярность JavaScript привела к распространению инструментов на рынках, которые ранее были прерогативой других языков; иллюстрируется растущим числом инструментов E2E-тестирования и машинного обучения.

Ключевая тема, которая возникла из данных за 2020 год, заключается в том, что ландшафт JavaScript определяется крупными поставщиками программного обеспечения. TypeScript от Microsoft становится отраслевым стандартом, и у проектов, построенных на нем, больше шансов на успех, отличными примерами являются NestJS и NextJS (не путать).

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

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

Примечания

Эта статья была любезно просмотрена Джорджем Адамсоном и Джоан Паркс.