Перейти к основному содержимому

О проекте

В 2021 году опрос "State of JS" проводился с 13 января по 2 февраля 2022, в нём приняло участие 16,085 человек. Этим опросом руковожу я, Саша Грейф (Sacha Greif), при помощи команды опенсорс-разработчиков и консультантов. Логотип и футболка опроса в этом году были разработаны Кристофером Кирк-Нильсеном (Christopher Kirk-Nielsen).

Цели опроса

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

Создание опроса

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

Аудитория опроса

Опрос проводился открыто в онлайн-режиме, поэтому не было какого-либо отбора или фильтрации респондентов. В большинстве своём в текущем опросе поучаствовали люди, которые проходили опрос в предыдыщих годах (они были оповещены о новом опросе через список рассылки) и посетители социальных сетей. Обратите внимание, что фреймворки, библиотеки, инструменты могли побуждать своих пользователей поучаствовать в опросе, так что некоторые из них воспользовались этой возможностью и опубликовали баннеры, твиты и т.д. Подробная разбивка, откуда пришли участники опроса, приведена в диаграмме "Источники".

Репрезентативность и инклюзивность

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

Чтобы повысить эффективность опроса мы следуем следующим стратегиям:

  • Информационное продвижение: мы всегда стараемся обращаться к различным организациям (как представляющим BIPOC- и LGBTQ-разработчиков, так и онлайн-платформы для обучения), чтобы попытаться разнообразить нашу собственную аудиторию.

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

  • Снижение барьеров: если опрос слишком длинный, не очень хорошо разработан, медленно загружается, проводится только на английском языке и т.п., — то в совокупности всё это может оттолкнуть значительное количество людей. Устранение этих проблем поможет снизить порог входа, сделав более разнообразной аудиторию опроса.

    Финансирование проекта

    Финансирование проекта осуществляется из разных источников:

  • Продажа футболок.

  • Спонсорство графиков: участники сообщества могут помочь финансово опросу в обмен на то, что их имя будет фигурировать в результатах опроса.

  • Рекламные ссылки: ссылки на рекомендуемые ресурсы внизу каждой страницы предоставлены нашим партнером Frontend Masters.

  • Разовые партнёры: в этом году команда Google Chrome выделила небольшой бюджет, который позволил нанять консультанта по доступности для работы над опросами по CSS и JS.

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

Технический стек

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

  • Коллекция данных: кастомное приложение Vulcan.js.
  • Хранение/обработка данных: MongoDB и MongoDB Aggregations.
  • Data API: API-сервер GraphQL на Node.js.
  • Сайт с результатами: React-приложение на основе Gatsby.
  • Визуализации данных: библиотека с React-компонентами Nivo.
  • Шрифт: IBM Plex Mono и Bebas Neue.