Анализ фреймворков JavaScript, основанный на пропорции новых вопросов, заданных о них на Stack Overflow, утверждает, что они разделяют модель быстрого роста популярности с последующим устойчивым снижением интереса.
Для сообщения в блоге, описывающего это как «жестокий жизненный цикл», Ян Аллен использовал инструмент Stack Overflow Trends и некоторые данные трафика Stack Overflow с выбором фреймворков пользовательского интерфейса.
Это не первый раз, когда фреймворки JavaScript подвергаются тщательному изучению. Когда в мае 2017 года дебютировал инструмент интерактивных трендов, Дэвид Робинсон использовал фреймворки JavaScript в приведенных им примерах. Его комментарий, сделанный тогда о подобном наборе технологий, был следующим:
Меньшие веб-фреймворки демонстрируют тяжелый жизненный цикл, когда некоторые из них демонстрируют быстрый рост, а затем спад в течение нескольких лет.
Поскольку вы не можете увидеть, что происходит, если вы составите диаграмму всех пакетов вместе, поскольку они занимают совершенно разные части диапазона шкалы, Аллен разделил их на две группы более крупных фреймворков (например, jQuery, Angular.js, Angular 2+ и React):
и более мелкие (например, Backbone, Knockout, Ember и Vue.js).
Комментируя этот график, Аллен пишет:
Похоже, что в использовании фреймворка JavaScript есть два основных этапа. Похоже, что по мере того, как фреймворк набирает популярность, наблюдается быстрый рост, а затем немного менее быстрый, но устойчивый спад, поскольку разработчики принимают новые технологии.
В поисках факторов, которые влияют на интерес разработчика к конкретной структуре, Аллен провел дополнительный анализ, разделив разработчиков на группы в зависимости от тега, который они чаще всего посещали, используя один год трафика Stack Overflow Traffic:
Стоит отметить шкалу по оси абсцисс — в каждом случае она увеличивается до 6%, а превышение 3% бывает довольно редко. Замечание о тесной связи Angular с TypeScript напоминает нам, что Angular (хотя и не AngularJS) написан на TypeScript.
Другие моменты, сделанные в сообщении в блоге:
Angular и React на сегодняшний день являются самыми популярными, независимо от используемой технологии. Логично, что они явные лидеры, поддерживаемые двумя крупнейшими и наиболее влиятельными компаниями в сфере технологий. Просто взглянув на эти две платформы, Angular более популярен среди разработчиков C #, Java и (в некоторой степени) PHP, тогда как React более популярен среди разработчиков Rails, Node.js и Python.
Если мы посмотрим на некоторые из менее популярных тегов, можно сделать несколько интересных наблюдений. Ember.js и Ruby on Rails имеют непропорционально сильные отношения по сравнению с другими технологиями. Этот брак мог быть связан с некоторыми философскими сходствами между двумя концепциями. Ember был создан Иегудой Кац, членом основной команды Ruby on Rails.
Неудивительно, что Knockout.js получает непропорционально больше трафика от разработчиков C #, скорее всего, поскольку Knockout также является технологией Microsoft.
PHP — тоже интересный случай. Он предназначен и в основном используется для веб-разработки, но разработчики PHP не обращаются к многим вопросам Angular или React (и не слишком много к фреймворкам JavaScript в целом), но посещают непропорционально большое количество вопросов Vue.js.
Сопоставив IP-адреса пользователей Stack Overflow в США с компаниями, Аллен сравнил трафик для React и Angular по отраслям. Опять же, процентные значения очень малы — 0,4% являются верхним значением по оси Y и 0,5% по оси X.
Размышляя о том, что СМИ и розничная торговля используют React и Angular соответственно больше, чем другие отрасли, Аллен предполагает:
«эти отрасли, как правило, тяготеют к новым технологиям, чтобы предоставить своим пользователям богатый опыт взаимодействия с клиентами, чтобы они могли взаимодействовать с контентом и улучшать процесс покупок в Интернете. Это контрастирует с академическим, государственным и медицинским секторами, которые, похоже, не нуждаются в них типы фреймворков. Это может быть связано с тем, что эти отрасли относительно больше озабочены управлением базами данных или анализом данных, чем интерфейсной веб-разработкой «.
Он также задает вопрос
Самым большим выбросом и загадкой является страховая отрасль. По сравнению с другими отраслями, страховые компании в целом, похоже, используют Angular с очень высокой скоростью, без особого использования React … если есть разработчики, которые работают в страховой компании и читают это, не стесняйтесь оставлять свои предположения в комментариях.
Ответ приходит от Рика Дейна, который написал:
проработав несколько лет в одной страховой компании, я предполагаю, что это связано с тем, что Angular — самая старая из фреймворков, а страховые компании, как правило, очень консервативны и используют более устаревшие технологии.
Комментарии также вызывают два основных критических замечания по поводу анализа в целом. Один из них заключается в том, что, работая в процентах от общего количества вопросов, заданных в Stack Overflow, совершенно не связанные технологии, которые появляются на сцене и вызывают новый поток вопросов, могут повлиять на очевидный интерес к обсуждаемой теме.
Другой недостаток — отождествление новых вопросов со степенью интереса к устоявшейся технологии. Комментарий Марти Маккивера указывает:
Как вы думаете, по прошествии 5 или 6 лет большинство хороших вопросов было задано о jQuery, и большинство хороших ответов получили достаточно голосов, а большинство повторяющихся «новых» вопросов исчезли? Новые вопросы не измеряют популярность или принятие, они измеряют двусмысленность, которая способствует новому и недокументированному.
Таким образом, резкое увеличение количества вопросов — например, тех, которые сейчас возникают в отношении Vue.js — связано с тем, что люди, которым это интересно, не могут найти то, что им нужно знать, в текущей документации и, следовательно, задают вопросы. После того, как все важные вопросы будут заданы и даны ответы, популярность Vue, похоже, снизится — хотя вместо этого он, возможно, просто достиг стабильной фазы.
Да, React и Angular в настоящее время привлекают наибольшее внимание как JavaScript-фреймворки, но когда разработчиков действительно спрашивают о выборе библиотеки JavaScript, фаворитом по-прежнему остается jQuery.