Как стать автором
Обновить

Как мы узнаём, какой язык программирования самый популярный

Время на прочтение6 мин
Количество просмотров10K

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


В декабре 2021 года Python остается одним из самых популярных языков программирования. Об этом мы узнаем из рейтингов IEEE Spectrum, TIOBE, PYPL. Однако рейтинги GitHub Octoverse и Stack Overflow Annual Developer Survey сообщают нам, что Python на 2-м месте, а GitHut, что лишь на 3-м. А самым популярным является JavaScript. Дело в том, что у разных рейтингов разные задачи и методики подсчета. А значит пора разобраться, как устроены эти рейтинги и для чего они нужны.


Место TIOBE IEEE Spec. PYPL GitHub Oc. Stack Overf. GitHut
1 Python Python Python JavaScript JavaScript JavaScript
2 C Java Java Python HTML / CSS Java
3 Java C JavaScript Java Python Python
4 C++ C++ C# TypeScript SQL CSS
5 C# JavaScript C / C++ C# Java PHP
6 Visual Basic (.Net) C# PHP PHP Node.js Ruby
7 JavaScript R R C++ TypeScript C++
8 Assembly Language Go Swift Swift C# C
9 SQL HTML Objective-C C Bash / Shell Shell
10 Swift Swift Matlab Ruby C++ C#

TIOBE


Если вы когда-нибудь слышали о том, что какой-то язык стал самым популярным, то скорее всего эта информация была основана как раз на рейтинге TIOBE. Как написано на странице рейтинга, для его подсчета учитывается количество квалифицированных специалистов, курсов и поставщиков, использующих данные языки. Также выявляется популярность в поисковых системах, таких как: Google, Bing, Yahoo, Wikipedia, Amazon, Youtube и Baidu. Этот рейтинг позволяет понять, соответствуют ли ваши навыки требуемым, и какой язык предпочесть для вашего нового проекта.


В статье “TIOBE Programming Community Index Definition” дается подробная методика для этого рейтинга. Деления по категориям областей применения в этом рейтинге нет. В рейтинг включаются только тьюринг-полные языки. Как следствие в рейтинге не увидим HTML, XML, CSS. Также у языка должна быть страница в Википедии, и на этой странице должно быть указано, что это язык программирования. Поэтому ASP, Excel и некоторые другие не были в него включены.


Само рейтинговое значение считается как среднее по всем поисковым системам нормализованных значений количеств упоминаний:


$(hits(PL,SE1)/hits(SE1) + ... + hits(PL,SEn)/hits(SEn))/n$


IEEE Spectrum


IEEE Spectrum имеет, пожалуй, одну из самых комплексных методик подсчёта, которая описана в статье “IEEE Top Programming Languages: Design, Methods, and Data Sources. Here are the metrics we use to build an overall ranking of programming language popularity”. Выбор языков для вычисления рейтинга начинается здесь с выявления языков с наибольшим числом поисковой выдачи Google. Отобранным языкам назначается одна или более категория в соответствии со сферой применения: для веб-, мобильных, корпоративных и настольных приложений, и для встраиваемых систем. В итоге отбирается 55 очень разных языков: здесь и распространённая Java, и старички Cobol с Fortran, и нишевый Haskell.


Дальше анализируются восемь источников данных. Из поисковика Google выясняется, сколько информационных ресурсов можно найти для каждого из языков в данный момент времени. Из Google Trends узнают, как часто ищут информацию о данном языке (также в данный момент времени). Из Twitter получают информацию об упоминаниях языка. На GitHub смотрят на количество новых репозиториев кода на каждом языке и сколько репозиториев было обновлено. Первое нам говорит о заинтересованности в языке, а второе — о сохранении интереса к нему. На Stack Overflow выявляется количество вопросов с тегом заданного языка. На Reddit считается количество упоминаний языка в размещенных ссылка и комментариях. Также определяется количество упоминаний языка на Hacker News. Все эти показатели берутся за прошедший год. Также выявляется текущий запрос на специалистов по языку на рынке труда на CareerBuilder и IEEE Job Site. Наконец, анализируется собственная цифровая библиотека IEEE Xplore Digital Library на упоминание языка за последние два года. Затем все эти показатели суммируются с некоторыми весами. Интересно, что можно задать свои веса и пересчитать с ними свой рейтинг.


Также можно смотреть популярность по категориям. Например, для Веб самой популярной тройкой будет: Python, Java и JavaScript; для корпоративных, настольных и научных приложений — Python, Java, C; для мобильных приложений — Java, C и C++; а для встраиваемых систем — Python, C, C++.


PYPL


Как гласит страница рейтинга PYPL (PopularitY of Programming Language), он основан на анализе поиска в Google учебных материалов по языку программирования. Для получения этих данных используется Google Trends. Это простой рейтинг, который может нам говорить о том, какие языки сейчас больше всего изучают, а значит заинтересованы в овладении ими. Этот рейтинг полезен новичкам в программировании, а также тем, кто решает сменить язык программирования. Деления по категориям здесь нет.


GitHub Octoverse


GitHub Octoverse интересен публикуемой на нём статистикой ежегодного опроса пользователей GitHub. В рейтинге языков программирования лишь десять позиций и приведены они в форме графика, начиная с 2014 года. В целом Github Octoverse напоминает таковой у Stack Overflow, о чём ниже.


Stack Overflow Annual Developer Survey


Как и GitHub Octoverse рейтинг от Stack Overflow Stack Overflow Annual Developer Survey вычисляется на основе опроса разработчиков. Так как в опросе фигурируют не просто языки программирования, а технологии разработки, то другой сообенностью рейтинга языков является включение в их состав, помимо языков программирования, также языков скриптов (Shell), запросов (SQL), разметки (HTML и CSS) и сред исполнения (Node.js).


GitHut


Рейтинг GitHut использует данные с сервера GH Archive, специально созданного для удобства анализа данных с GitHub. Методика подсчета описана на странице проекта. Интересен тем, что в него попадает то, что GitHub считает языком. Соответственно, здесь мы видим CSS, TeX. А так как GitHub это про открытое ПО, то предпочтения его разработчиков определяют то, что в рейтинге фигурируют CoffeeScript, Emacs Lisp и Vim Script.


GitHut 2.0


Рейтинг GitHut 2.0 также основан на данных GH Archive. Устройство рейтинга описано на его странице. Этот рейтинг, как и предыдущий, прекрасно показывает, как меняются предпочтения разработчиков, когда они разрабатывают открытый код: появляется такая <<экзотика>> как Nix, Elixir, некий DM.


Languish


Рейтинг Languish использует данные рейтинга GitHut 2.0. Здесь также можно обнаружить то, что в других рейтингах мы не увидим: Jupiter Notebooks, например.


Выводы


Мы выяснили, как работают рейтинги языков программирования, на каких данных они основаны и чем они различаются между собой. Эти различия определяют информативность рейтингов для той или иной цели: хотим ли мы выбрать язык для изучения программирования, или чтобы работу найти, а может для своего нового проекта. Нам также должно быть понятно, что нет универсального рейтинга, и нет самого популярного языка программирования в абсолютном смысле. И в этом отношении наверное самыми интересными рейтингами выглядят IEEE Spectrum как использующий самое большое число источников данных и позволяющий себя настраивать и выбирать категории языков, и рейтинг от Stack Overflow как основанный на информации, полученной от самих программистов. Рейтинги же основанные только на данных от GitHub имеют перекос в сторону открытого программного кода, где популярными могут быть другие языки, нежели используемые для закрытого кода.


Наконец, нужно понимать, что рейтинг это слепок текущего состояния, хоть и обусловленного предысторией. Но нам полезно также следить и за трендами, за тем, как меняется популярность того или иного языка. Справедливости ради стоит отметить, что многие из рассмотренных рейтингов также предоставляют информацию о трендах в языках программирования. А это позволяет нам понять, какие языки набирают популярность, какие её теряют, а какие сохраняют статус кво на протяжении длительного времени. По версии TIOBE язык Python является тем языком, популярность которого растет последние несколько лет, а рейтинг JavaScript стабильно не меняет из года в год.


Более полная сводная рейтинговая таблица


Место TIOBE IEEE Spec. PYPL GitHub Oc. Stack Overf. GitHut GitHut 2.0 Languish
1 Python Python Python JavaScript JavaScript JavaScript JavaScript JavaScript
2 C Java Java Python HTML / CSS Java Python Python
3 Java C JavaScript Java Python Python Java Java
4 C++ C++ C# TypeScript SQL CSS Go Go
5 C# JavaScript C / C++ C# Java PHP TypeScript C++
6 Visual Basic (.Net) C# PHP PHP Node.js Ruby C++ TypeScript
7 JavaScript R R C++ TypeScript C++ Ruby PHP
8 Assembly Language Go Swift Swift C# C PHP C
9 SQL HTML Objective-C C Bash / Shell Shell C# C#
10 Swift Swift Matlab Ruby C++ C# C Ruby
11 R Arduino TypeScript -- PHP Objective-C Shell Shell
12 PHP Matlab Go -- C R Nix HTML
13 Visual Basic (Classic) PHP Kotlin -- PowerShell VimL Scala Dart
14 Groovy Dart VBA -- Go Go Dart Swift
15 Ruby SQL Rust -- Kotlin Perl Swift Scala
16 Delphi / Object Pascal Ruby Ruby -- Rust CoffeeScript Rust CSS
17 Fortran Rust Ada -- Ruby TeX Kotlin Jupiter N.
18 Perl Assembly Scala -- Dart Swift Groovy Rust
19 Go Kotlin Dart -- Assembly Scala DM Nix
20 Matlab Julia Abap -- Swift Emacs Lisp Elixir Kotlin
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Доводилось ли вам опираться на рейтинги языков программирования при принятии тех или иных решений?
7.92% Бывало и даже помогло.8
3.96% Было дело, не помогло.4
6.93% Доводилось, но результат был разный.7
81.19% Нет.82
Проголосовал 101 пользователь. Воздержались 14 пользователей.
Теги:
Хабы:
Всего голосов 4: ↑2 и ↓20
Комментарии21

Публикации