Исследование Stack Overflow: самые нелюбимые языки программирования

На так любимом многими разработчиками сайте Stack Overflow появилось интересное исследование. Какой язык программирования и технологию больше всего не любят, как это отражается на их популярности и что за этим стоит? Ответы на эти вопросы вы найдете в нашем материале. 

На сайте Stack Overflow в разделе «Работа» каждый пользователь может создать «Историю разработчика», чтобы продемонстрировать окружающим свои достижения и, вполне возможно, продвинуться по карьерной лестнице. При этом в качестве одной из доступных опций выступает возможность отметить тегами языки программирования, с которыми пользователь хотел бы работать, а с какими — нет. 

Благодаря подобной опции изучается мнение огромного количества разработчиков. Популярность языка можно измерить самыми разными способами: ранее редакция официального блога stackoverflow.blog использовали в качестве основного критерия количество просмотров статьи или вопроса, которые были посвящены какому-либо из языков программирования. Но подобным образом крайне сложно отметить, какой же язык является наименее любимым. 

 

 

Языки программирования

Итак, каким же образом мы будем определять, какой язык любимый, а какой нет? Все просто: возьмем определенный отрезок времени и посмотрим, как часто за это время выбранный язык был отмечен тегом «Disliked» и «Liked». То есть 50% будут означать, что ровно половине участников данный язык нравится, и ровно половине не нравится. А 1% будет означать, что на одного человека, не выражающего симпатию определенному языку, приходится 99 человек, которым этот язык нравится (для подобных расчетов мы пользовались эмпирическим Байесовским методом, который позволяет рассчитать доверительный интервал с вероятностью 95%).

Начнем со списка тех языков программирования, которые имеют как минимум 2000 упоминаний в «Историях разработчика».

Согласно данной статистике, наименее любимыми языками (причем с большим отрывом) являются Perl, Delphi и VBA. За ними идут PHP, Objective-C, CoffeeScript и Ruby. Наша команда порадовалась, узнав, что R занимает последнее место в этом списке, а, значит, количество людей, отметивших его как «Любимый», максимально превысило количество тех, кто не хотел бы с ним работать.

Если вы хорошо осведомлены, какие языки сейчас популярны, а какие теряют свои позиции, то наверняка заметили, что наименее нелюбимые языки чаще всего являются быстро набирающими популярность. R, Python, TypeScript, Go и Rust — это как раз те языки, которые в рамках сайта становятся все более популярными. И наоборот: языки, занимающие верхние строчки таблицы — Perl, Objective-C and Ruby — стремительно теряют свой авторитет.

Также мы попытались вывести общую статистику на основании того, как часто используется язык и сколько человек выразили желание работать с ним (отметив тегом «Like»). Статистика взята на основе выборки стран с высоким уровнем дохода, таких как Америка, Великобритания, Германия и Канада.

Как правило, существует обратная связь между тем, насколько широко используется язык, и тем, насколько часто ему ставят «Disliked». Почти все языки, которые в большинстве «Историй» были отмечены как «Нелюбимый», согласно статистике Stack Overflow, теряют свою популярность (кроме VBA, который более-менее находится в позиции равновесия). В то время как те языки, которые реже всего отмечали тегом «Disliked» (а именно R, Rust, TypeScript и Kotlin), как раз и составляют группу самых быстро набирающих популярность. TypeScript и Kotlin набирают популярность настолько быстрыми темпами, что мы решили их и вовсе убрать с графика.

На фоне данных закономерностей достаточно ярко выделяется функциональный язык Clojure. Его почти не отмечали тегом «Disliked», но на данный момент он один из наименее актуальных языков, хотя терять популярность начал лишь год назад или около того (согласно статистике посещаемости контекстных вопросов нашего сайта). Другим исключением из правил является MATLAB — данный язык продолжает терять актуальность, хотя совсем немного людей выразили к нему свою нелюбовь. Вполне возможно, что это связано с областью действия: почти у каждого разработчика существует сложившееся мнение насчет широко распространенных и используемых PHP, C# и Ruby, в то время как у людей, не связанных со сферой анализа данных, мнение касательно MATLAB сложиться просто не может. Вполне возможно, что подобное действует в отношении языка R, и поэтому его так редко отметили тегом «Disliked».

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

 

Наиболее и наименее актуальные технологии

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

В список самых нелюбимых вошли некоторые из технологий Microsoft, в частности Internet Explorer и Visual Basic. Да и Microsoft вместе с тегом «Disliked» употреблялось достаточно часто. Apple хоть и входит в этот список, но занимает нейтральную позицию в середине. Одну из лидирующих позиций занимает Flash, вместе с «более старыми» языками COBOL, Fortran и Pascal.  

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

Кроме того, мы решили сделать расширенный график с так называемыми «универсалиями» — технологиями, которые почти не отмечались в качестве нелюбимых. На этот раз список выбранных технологий был ограничен лишь упомянутыми как минимум 10 000 раз.

У многих разработчиков может вызвать недоумение Git, но тут скорее дело в том, что его просто редко указывают в резюме. Как видим, R также входит в список. Машинное обучение отметили в качестве любимого около 23 тысяч человек — это значит, что данная технология крайне редко отмечалась как нелюбимая. Такие теги как Python-3.X, CSS3 и HTML5 могут всего лишь означать, что разработчики крайне редко указывают, какая именно версия им не нравится. И, конечно же, jQuery, как и всегда, пользуется популярностью на сайте Stack Overflow.

 

Экосистема тегов

Все вышеназванные теги можно совместить в одну экосистему, представив их в виде некоего подобия простейшей нейронной сети. В качестве связующих нейронов представим языки программирования и технологии, при этом каждый «нейрон» будет раскрашен в соответствии с тем, насколько часто его отмечали тегом «Disliked». Синий цвет означает минимальное упоминание в негативном контексте, оранжевый цвет — максимально критичное количество отметок с тегом «Disliked».

Совместив результаты, собранные из «Историй разработчика», можно увидеть, какие технологии и языки в своей подсистеме являются наиболее и наименее актуальными. Так, в подсистеме Microsoft к опасно-оранжевому цвету стремятся C# и .NET, огромная связка PHP с WordPress и Drupal горит слабо-оранжевым, а в сфере мобильной разработки особенно выделяется Objective-C. В кластере операционных систем (в правом нижнем углу) можно заметить, что OSX и в особенности Windows раскрашены в крайне заметный оранжевый, в то время как Linux, Ubuntu и Unix могут похвастаться спокойным синим цветом.

 

Основные соперники

Если человек крайне часто отмечает какой-либо язык или технологию как любимую, есть ли связь между тем, какой язык или технологию он при этом будет считать нелюбимой?

Подобную закономерность можно проследить, используя фи коэффициент:

Представленные в виде графика результаты скорее подчеркивают некоторое «противостояние» в экосистеме программного обеспечения: Linux и OSX против Windows, Git против SVN, Vim против Emacs, R против SAS. Вряд ли можно сказать, что многие из этих соперников представляют «противоположные» технологии — они скорее отражают различные подходы к решению одной и той же проблемы.

Кроме того, многие из них показывают переход от популярной ранее технологии к более современной: так Git заменил собой SVN, JSON заменил XML, а C# заменил собой VB. В таком случае подобное «противостояние» становится обоснованным: крайне логичным является решение разработчика отметить устаревшие технологии тегом «Disliked» и указать в своем резюме, что он бы предпочел работать с современными технологиями.

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя saipr

Обидно, но я не увидел упоминания tcl и тем более tcl/tk.