Что нужно знать о рейтингах языков программирования

Apr 24, 2019
Blog

Все мы периодически сталкиваемся с так называемыми рейтингами языков программирования; часть из них правдива, другая — выглядит весьма подозрительно. Больше всего смущения вызывает тот факт, что рейтинги эти разнятся от ресурса к ресурсу: половина говорит, что топ-1 язык — Java, другие — Python. На самом деле вопрос лишь в том, что и как считать, ведь именно от методологии подсчета рейтинга и зависит конечный результат.

Сейчас различными ресурсами используется три основных метода составления рейтингов ЯП. Это, в первую очередь, статистика GitHub по количеству пулл-реквестов, репозиториев и коммитов, после идет анализ запросов в Google на предмет поиска учебной литературы, а также анализ существующих веб-страниц, посвященных тому или иному языку. Как показывают составленные рейтинги, выборка получается всегда разная, и окончательно объективным нельзя назвать ни один из результатов. Но давайте для начала посмотрим, как эти методы выглядят.

Статистика GitHub

Наиболее релевантной в отражении текущей ситуации на рынке труда является выборка по активности пользователей GitHub. К сожалению, большинство маркетологов, журналистов и HR не совсем корректно ее интерпретируют: вырывая красивый график с octoverse.github, они не дают правильного информационного сопровождения к нему, называя демонстрируемые данные «текущей популярностью языка на рынке». Кстати, вот этот самый график:

Какой вывод делают HR и маркетологи? Правильно! JavaScript, Java и Python — это самые востребованные с 2014 года языки программирования. То есть, зная один из них, вы всегда сможете найти работу. К сожалению, это типичная подгонка удобного вывода под имеющиеся вводные данные. Что на самом деле иллюстрирует этот график GitHub? Он показывает, что на ресурсе больше всего активности проходит именно в репозиториях и ветках на JavaScript, Java и Python. Это достаточно распространенные языки программирования, вы на самом деле сможете найти работу, но востребованность на рынке никак не зависит от количества «носителей» языка программирования. Ведь тогда проще всего было бы найти хорошо оплачиваемую работу с HTML за плечами. Или Turbo Pascal.

О чем на самом деле говорит этот рейтинг? Косвенно — о востребованности всех представленных ЯП. Топ-3 рейтинга говорит же еще и об относительно низком пороге вхождения в языки, так как освоить их смогло большое количество людей. Еще на графике можно увидеть, как менялась «мода» разработки: некогда сверхпопулярный Ruby с 2015 года пошел на дно, и его популярность продолжает падать.

Рейтинги на базе PYPL

PYPL — это индекс популярности на базе анализа данных Google Trends, который отражает интенсивность поиска учебной литературы и статей по конкретному языку программирования. Чем больше запросов в поисковых системах — тем выше язык программирования в рейтинге PYPL.

Конкретно эта система подсчета отличается от ранее описанной статистики GitHub тем, что она обновляется динамически и постоянно показывает тренд за последние 365 дней с момента обращения. Таким образом, PYPL демонстрирует, какой язык за последний год люди изучали в сети активнее всего в надежде получить работу. Также он отражает, что прямо сейчас приходится осваивать действующим девелоперам. Сам индекс изменяется в режиме реального времени.

Как можно увидеть, тут картина немного другая, нежели в рейтинге GitHub. Первая тройка языков, конечно, все та же, но порядок совершенно иной, плюс в списке появился R, Objective-C, который выпал из топ-10 GitHub еще в 2015 году, и даже Swift с Matlab.

Любопытно и то, что PYPL показывает параметр Share — долю языка относительно общего числа запросов. То есть, у нас вроде и есть топ-10, но по факту больше половины запросов приходится на все те же Java, JavaScript и Python, после чего идут бессмертные C#, PHP и C++. Доли же, например, Swift и Matlab в районе 2-2,5% уже оказывают влияние на грани погрешности, пусть они и входят в топ-10. Еще PYPL позволяет посмотреть популярность различных IDE и ODE в поисковой выдаче, что также достаточно интересно.

Индекс TIOBE

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

Согласно TIOBE, JavaScript уехал на седьмую позицию, PHP на девятую, а вперед выбились языки семейства C. Но наиболее дико в этом рейтинге выглядит Visual Basic .NET на пятой, ассемблер на десятой и Delphi/Object Pascal на пятнадцатой строчках рейтинга.

Признайтесь, когда вы в последний раз видели разработчика, основным языком в стеке которого был чистый ассемблер или Delphi? Точнее, когда вы в последний раз видели Delphi-разработчика за пределами университетских кафедр и покрытых мхом НИИ?

На более низких строчках рейтинга TIOBE всплывают такие раритеты как COBOL и Fortran (24-я и 25-я строчки рейтинга). А вот TypeScript, который занимает, на секунду, седьмое по популярности место на GitHub, согласно TIOBE разместился лишь на 44-й позиции с долей в 0,196%. Кстати, примерно там же «живут» весьма специфичные, но достаточно распространенные Haskell, Erlang, Lua, Kotlin, Bash. Во всяком случае, более распространенные, чем Delphi/Object Pascal.

Итог

Так что же нужно знать о «рейтингах языков программирования»? Ни один из методов подсчета не дает идеально точных данных, но статистика GitHub и индекс PYPL может предоставить более-менее приемлемую картину трендов за последний год среди сообщества. Индекс же TIOBE вовсе несостоятелен и его можно смело игнорировать, так как вместо релевантных данных он просто показывает какую-то активность в сети, причем в весьма смазанном виде.

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

Предыдущая статьяСледующая статья