Добро пожаловать в пятый выпуск JavaScript Rising Stars, ежегодного обзора тенденций в мире JavaScript!

В 2020 году смысл проекта не изменился: изучение наиболее успешных проектов путём сравнения количества звёзд на GitHub за последние 12 месяцев.


В представленных ниже графиках сравнивается количество звёзд на GitHub за последние 12 месяцев. Мы проанализировали проекты, участвующие в Best of JS, отобранного списка лучших веб-проектов. Нажмите на проект, чтобы узнать подробнее про него.

Содержание

  1. Самые популярные проекты
    DenoVue.jsReactPlaywrightVS CodeesbuildVue Element AdmineDEX-UINext.jsTailwind CSS
  2. Фронтенд-фреймворки
    Vue.jsReactAngularSvelteAlpine.js
  3. Фреймворки Node.js
    Next.jsStrapiNestNuxtBlitz
  4. Экосистема React
    Next.jsReact QueryRecoilAnt DesignReact Hook Form
  5. Экосистема Vue
    Vue Element AdminViteNuxtElement Plusvue-next
  6. Экосистема Angular
    ngx-adminMaterial Design for AngularScullyAngular CLING-ZORRO
  7. Инструменты сборки
    esbuildRomeViteSnowpackWebpack
  8. CSS-фреймворки
    Tailwind CSSBootstrapBulmanew.cssHalfmoon
  9. CSS в JavaScript
    Styled ComponentsTwinEmotionLinariaTheme UI
  10. Тестирование
    PlaywrightStorybookPuppeteerCypressHeadless Recorder
  11. Мобильная разработка
    React NativeExpoQuasarIonicSonar
  12. Разновидности/компиляторы JS
    TypeScriptswcBabelReasonFlow
  13. Управление состоянием
    RecoilXStateImmerZustandRedux
  14. GraphQL
    GatsbyHasura GraphQL EngineRedwoodPrismaApollo client
  15. Обучающие ресурсы
    JS Algorithms & Data StructuresNode.js Best PracticesYou Don't Know JSClean Code30 seconds of code
  16. Заключение

Самые популярные проекты

1
Deno

Deno

A secure JavaScript and TypeScript runtime
+30.2k☆

Trends in 2020

2.8k
1.5k
1.0k
1.3k
13.7k
3.0k
1.3k
897
836
742
912
1.2k
Я
Ф
М
А
М
И
И
А
С
О
Н
Д

GitHub data

Создан
2018-05
Total stars
71.1k☆

Links

GitHub
denoland/deno
Сайт проекта
deno.land
Best of JS
bestofjs.org/projects/deno
2
Vue.js

Vue.js

A progressive, incrementally-adoptable framework for building UI on the web
+22.5k☆
3
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+19.8k☆
4
Playwright

Playwright

Node.js library to automate Chromium, Firefox and WebKit with a single API
+19.7k☆
5
VS Code

VS Code

Visual Studio Code
+19.1k☆
6
esbuild

esbuild

An extremely fast JavaScript bundler and minifier
+16.6k☆
7
Vue Element Admin

Vue Element Admin

A magical vue admin
+16.0k☆
8
eDEX-UI

eDEX-UI

A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.
+15.7k☆
9
Next.js

Next.js

The React Framework
+15.5k☆
10
Tailwind CSS

Tailwind CSS

A utility-first CSS framework for rapid UI development.
+15.5k☆

По многим причинам 2020 год был очень необычным. Самое примечательное, что впервые за пять лет абсолютным победителем Rising Stars стал не Vue.js, а Deno... очень неожиданно!

Deno — среда выполнения JavaScript-кода от создателя Node.js Райана Дала.

Её часто считают продолжением Node.js, и опираясь на его 10-летний опыт работы в новой среде были исправлены многие недостатки и недоработки существующей платформы.

Среди отличительных особенностей можно отметить следующее:

  • Встроенный по умолчанию компилятор TypeScript (хотя ничего не мешает писать код на обычном JavaScript);
  • Отсутствие какого-либо централизованного менеджера пакетов, поэтому JavaScript-зависимость может быть загружена с любого URL-адреса;
  • Из коробки есть решения многих распространённых задач, которые в Node.js обычно потребовали бы установки сторонних пакетов;
  • Deno в максимальной степени ориентируется на стандарты веба (например, Fetch API);
  • Файлы импортируются при помощи ECMAScript-модулей;
  • Имеется собственный исполнитель тестов и отладчик.

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

Успешное развитие Deno говорит о двух довольно больших тенденциях:

  • Заметное увеличение использования TypeScript как во фронтенде, так и в целом на стороне клиента;
  • Всплеск количества динамически импортируемых ES6-модулей через такие инструменты как Snowpack (см. раздел «Инструменты сборки»).

Фронтенд-фреймворки

1
Vue.js

Vue.js

A progressive, incrementally-adoptable framework for building UI on the web
+22.5k☆
2
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+19.8k☆
3
Angular

Angular

One framework. Mobile & desktop.
+13.3k☆
4
Svelte

Svelte

Cybernetically enhanced web apps
+12.0k☆
5
Alpine.js

Alpine.js

A rugged, minimal framework for composing JavaScript behavior in your markup.
+11.5k☆

Vue.js и React продолжают противостоять друг другу, находясь на вершине категории фронтенд-фреймворков.

За ними на третьей позиции теперь следует Angular, который поменялся местами с Svelte, занимавшего эту строчку рейтинга в 2019 году.

А пятерку лидеров замыкает совсем молодой проект Alpine.js — минималистичный реактивный фреймворк для браузера от автора Laravel LiveWire.

Он вдохновлён концепциями Vue.js и Angular, поскольку в нём есть и пользовательские HTML-директивы, и двусторонняя привязка...

Его довольно легко начать использовать, вставив старый-добрый тег <script> на HTML-страницу. Не нужно использовать инструменты для сборки, всё делается прямо из HTML-разметки, поэтому данный фреймворк может стать отличным решением для быстрого улучшения существующей веб-страницы без необходимости добавления полноценного фреймворка.

Из-за своей простоты и лёгкости для придания интерактивности веб-страницам, новенький инструмент хорошо интегрируется с современными фреймворками, например, с Elixir Phoenix. Уже есть даже специальный стек PETAL, который включает в себя как Alpine.js, так и Tailwind CSS.

Фреймворки Node.js

1
Next.js

Next.js

The React Framework
+15.5k☆
2
Strapi

Strapi

Open source Node.js Headless CMS to easily build customisable APIs
+11.8k☆
3
Nest

Nest

A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8)
+10.3k☆
4
Nuxt

Nuxt

The Intuitive Vue Framework
+8.2k☆
5
Blitz

Blitz

️The Fullstack React Framework — built on Next.js
+6.0k☆

Категорию фреймворков Node.js возглавляют два разных типа проектов.

С одной стороны, существуют фулстек-фреймворки Next.js и Nuxt, которые навязывают технологию, на которой должно разрабатываться приложение, поскольку на серверной части они используют React и Vue.js.

А с другой стороны, у нас есть более классические решения, работающие только на сервере, к ним, например, относится Nest (лидер в прошлом году) или Fastify.

Как и в 2018 году, в категории фреймворков ведущее место занимает Next.js. В самом начале он был известен как инструмент для рендеринга React-приложений на сервере. Сейчас это известнейший фреймворк для создания фулстек-приложений с использованием React.

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

Что касается фулстек-фреймворков, то мы видим два новых претендента — Blitz и Redwood, которые призваны создать разработчикам максимальное удобство для разработки полноценных веб-приложений.

Интересно наблюдать, как появившийся 11 лет назад фреймворк Express до сих пор актуален в JavaScript.

Экосистема React

1
Next.js

Next.js

The React Framework
+15.5k☆
2
React Query

React Query

Hooks for fetching, caching and updating asynchronous data in React
+13.6k☆
3
Recoil

Recoil

An experimental state management library for React apps
+11.1k☆
4
Ant Design

Ant Design

A UI Design Language and React UI library
+10.9k☆
5
React Hook Form

React Hook Form

React Hooks for forms validation (Web + React Native)
+10.8k☆

Приглашённый автор: Ли Робинсон (Lee Robinson)

Ли Робинсон — разработчик, писатель и архитектор в Vercel.

Guest Writer leerob

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

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

Next.js стал самым популярным инструментом для разработки React-приложений. Его гибридный подход станет первым применением анонсированных серверных React-компонентов.

Укрепилась поддержка библиотек React Query, Recoil и React Hook Form, которые сконцентрировались вокруг использования хуков. Каждый из этих пакетов упрощает разработку приложений на React. В сочетании с отлично проработанными библиотеками компонентов, сейчас у React-разработчиков гораздо больше инструментов, чем когда-либо было раньше.

Экосистема Vue

1
Vue Element Admin

Vue Element Admin

A magical vue admin
+16.0k☆
2
Vite

Vite

Next generation frontend tooling. It's fast!
+14.1k☆
3
Nuxt

Nuxt

The Intuitive Vue Framework
+8.2k☆
4
Element Plus

Element Plus

A Vue.js 3.0 UI Library made by Element team
+7.3k☆
5
vue-next

vue-next

Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
+5.9k☆

Самой важной новостью в сообществе Vue.js является выпуск третьей версии фреймворка.

В этом крупном обновлении появился новый Composition API, который должен устранить известные ограничения второй версии Vue.js:

  • внутри компонентов было сложно разбить код по логическим частям;
  • теперь стало легче повторно использовать код в разных компонентах (во Vue 2 примеси, фабрика примесей и cлоты с ограниченной областью видимости не были удачным решением для этого);
  • более улучшенная и активная поддержка TypeScript.

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

Кроме этого, в 2020 году был представлен новый инструмент сборки под названием Vite, работающий на ES-модулях. Это самый быстрый способ работать с приложениями на Vue.js из командной строки.

Экосистема Angular

1
ngx-admin

ngx-admin

Customizable admin dashboard template based on Angular 10+
+2.5k☆
2
Material Design for Angular

Material Design for Angular

Component infrastructure and Material Design components for Angular
+1.5k☆
3
Scully

Scully

The Static Site Generator for Angular apps
+1.4k☆
4
Angular CLI

Angular CLI

CLI tool for Angular
+1.3k☆
5
NG-ZORRO

NG-ZORRO

Angular UI Component Library based on Ant Design
+1.2k☆

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

Речь идёт про Scully, статического генератора сайтов, который выводит Angular в мир Jamstack. Проект запустился в декабре 2019 года и имеет отличную документацию, которая поможет вам в освоении этого инструмента.

В 2020 году было три крупных релиза Angular.

Выпущенная в феврале девятая версия завершила переход на компилятор Ivy, в результате чего удалось уменьшить размер бандлов и сделать множество других улучшений сборки. Позже появились две других версии: 10 и 11.

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

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

1
esbuild

esbuild

An extremely fast JavaScript bundler and minifier
+16.6k☆
2
Rome

Rome

The Rome Toolchain. A linter, compiler, bundler, and more for JavaScript, TypeScript, HTML, Markdown, and CSS.
+14.2k☆
3
Vite

Vite

Next generation frontend tooling. It's fast!
+14.1k☆
4
Snowpack

Snowpack

WASM-powered frontend build tool. Fast, lightweight, unbundled ESM.
+10.1k☆
5
Webpack

Webpack

A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.
+4.5k☆

Приглашённый автор: Себастьян Лорбер (Sébastien Lorber)

Себастьян один из первых, кто начал использовать React, сейчас он работает над опенсорс-проектом Docusaurus от Facebook.

Guest Writer slorber

2020 был отличным годом для инструментов сборки: мы увидели много новых трендов.

Snowpack и Vite сделали ставку на ES-модули: на этапе разработки они не упаковывают код в бандлы, поэтому имеют чрезвычайно быструю скорость работы, однако при создании продакшен-сборок по-прежнему собирают код воедино (до тех пор, пока поддержка модулей в браузерах не увеличится).

Чтобы быть максимально эффективными и производительными, swc и esbuild используют преимущества Rust и Go; оба, кстати, поддерживают TypeScript.

Webpack часто называют очень сложным, и похоже, что такие более простые альтернативы как Parcel и Rollup достаточно выросли для использования в реальных проектах. Webpack по-прежнему остаётся стандартным инструментом сборки, который вместе с новым слоем кеширования может значительно улучшить производительность компоновки.

Монорепозитории становятся мейнстримом: для работы с ними активно применяются Yarn и Lerna, к которым присоединился ещё npm (с выходом седьмой версии).

Самые интересные лично для меня инструменты в 2021 году — Rome, Toast, Turborepo.

Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

Заключение

Для JavaScript это был очередной замечательный год, который принёс несколько новых лидеров в различных категориях, отслеживаемых Best of JS.

Бэкенд-разработчики могут пощупать Deno и сразу же начать использовать TypeScript, не беспокоясь о каких-либо зависимостях.

А у фронтенд-разработчиков появились более быстрые и простые инструменты сборки, например, esbuild, Snowpack и Vite.

Если продолжать тему инструментов, с седьмой версии NPM стало возможным использовать механизм workspaces, который позволяет работать с несколькими пакетами в одном репозитории, раньше нечто подобное было одним из весомых преимуществ его конкурента Yarn.

Стилизация фронтенда идёт по неизменному пути, вместе с инструментами типа Tailwind CSS ещё больше упрощая работу и формируя экосистему на этой простой концепции.

Чего ожидать в 2021 году?

Любопытно узнать, куда приведут нас серверные React-компоненты.

Теперь, когда Себастьян Маккензи (Sebastian McKenzie) работает только над Rome, насколько далеко он зайдёт в попытке унифицировать инструментарий JavaScript. Станет ли его детище единственным инструментом для компиляции, тестирования, проверки кода и многого чего другого?

Мы будем пристально следить за фулстек-фреймворком Redwood, который хорошо интегрирован с GraphQL и вообще предоставляет уникальный способ получения данных, который они сами называют «cells».

Настоятельно рекомендуем ознакомиться с результатами потрясающего опроса State of JS, особенно если вам нужен другой взгляд на тренды, полученный от реальных разработчиков.

Спасибо, что были с нами, и до встречи в следующем году!

Russian version

Alexey Pyltsyn

Maintainer of Russian docs on PHP, React, Kubernetes and much more

Authors

Available Translations

English

日本語

Español

中文

한국어