В 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.