Хотите начать программировать? Или, может быть, у вас уже есть опыт работы с одним языком, и вы думаете, какой язык выучить следующим? Возможно, вам просто любопытно, какие языки используются в наши дни.

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

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

Если вы хотите продолжить, код находится на github.

Ранжирование языков на основе использования в проектах

Для начала мне нужны были некоторые данные. К счастью, Stack Overflow опубликовали результаты опроса разработчиков здесь.

Один особенно интересный вопрос из опроса:

Над какими языками программирования, скриптов и разметки вы активно работали в прошлом году и над какими хотите поработать в следующем году?

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

Давайте посмотрим на гистограмму с ответами на этот вопрос.

Первое, что я замечаю, это то, что проценты в сумме превышают 100%. На это есть две причины:

  • Разработчик мог использовать несколько языков в одном проекте.
  • Разработчик участвовал в нескольких проектах, в которых использовались разные языки.

Второе наблюдение заключается в том, что веб-стек (JavaScript, HTML/CSS, SQL) полностью доминирует в отрасли, при этом JavaScript используется почти в 70% всех проектов. За ними следуют Python и Java с долей 40–45%. И все время внизу у нас Perl, Haskell и Julia работают не так хорошо.

Языковой рейтинг в зависимости от заработной платы

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

Ниже приведен график средней зарплаты разработчиков, использовавших язык X, и количество людей, использующих этот язык, увеличенное для отслеживания популярности языка.

Важно отметить, что на этом графике не учитывается количество языков, которые использовал разработчик. Это только средняя зарплата разработчиков, которые использовали язык X, без учета других языков, которые они использовали.

Из сюжета видно, что Джулия и Перл, которые были наименее популярными языками, лидируют в соревновании по зарплате. Так что у разработчиков, использующих Julia или Perl, в среднем очень высокие зарплаты. И веб-стек, который был действительно популярен, видимо, плохо вознаграждается. На последнем месте у нас PHP, который зарабатывал бы вам в 2 раза меньше, чем могла бы Юля.

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

Рейтинг языков на основе удовлетворенности

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

Это я занесу результаты в таблицу, потому что результаты очень близки.

╔═══════════════════════╦═══════╦═══════════╗
║                 Julia ║   328 ║ 68.750000 ║
╠═══════════════════════╬═══════╬═══════════╣
║                     R ║  2249 ║ 68.719431 ║
╠═══════════════════════╬═══════╬═══════════╣
║                  Ruby ║  3240 ║ 68.441358 ║
╠═══════════════════════╬═══════╬═══════════╣
║ Bash/Shell/PowerShell ║ 15146 ║ 68.092236 ║
╠═══════════════════════╬═══════╬═══════════╣
║               Haskell ║   728 ║ 68.028846 ║
╠═══════════════════════╬═══════╬═══════════╣
║                  Rust ║  2027 ║ 67.254563 ║
╠═══════════════════════╬═══════╬═══════════╣
║              Assembly ║  1929 ║ 67.210990 ║
╠═══════════════════════╬═══════╬═══════════╣
║                Python ║ 17569 ║ 67.209289 ║
╠═══════════════════════╬═══════╬═══════════╣
║                 Scala ║  1699 ║ 67.157151 ║
╠═══════════════════════╬═══════╬═══════════╣
║            TypeScript ║ 12232 ║ 67.129251 ║
╠═══════════════════════╬═══════╬═══════════╣
║                    Go ║  4040 ║ 66.769802 ║
╠═══════════════════════╬═══════╬═══════════╣
║           Objective-C ║  1891 ║ 66.552089 ║
╠═══════════════════════╬═══════╬═══════════╣
║                 Swift ║  2565 ║ 66.549708 ║
╠═══════════════════════╬═══════╬═══════════╣
║                   C++ ║  8409 ║ 66.402069 ║
╠═══════════════════════╬═══════╬═══════════╣
║                  Perl ║  1437 ║ 66.249130 ║
╠═══════════════════════╬═══════╬═══════════╣
║                     C ║  7403 ║ 66.199514 ║
╠═══════════════════════╬═══════╬═══════════╣
║                    C# ║ 13919 ║ 66.100295 ║
╠═══════════════════════╬═══════╬═══════════╣
║              HTML/CSS ║ 26487 ║ 66.042776 ║
╠═══════════════════════╬═══════╬═══════════╣
║                   SQL ║ 24363 ║ 65.981201 ║
╠═══════════════════════╬═══════╬═══════════╣
║            JavaScript ║ 29727 ║ 65.932486 ║
╠═══════════════════════╬═══════╬═══════════╣
║                Kotlin ║  3379 ║ 65.581533 ║
╠═══════════════════════╬═══════╬═══════════╣
║                  Java ║ 16086 ║ 65.008392 ║
╠═══════════════════════╬═══════╬═══════════╣
║                   VBA ║  2614 ║ 64.938791 ║
╠═══════════════════════╬═══════╬═══════════╣
║                   PHP ║ 10778 ║ 64.689646 ║
╠═══════════════════════╬═══════╬═══════════╣
║                  Dart ║  1506 ║ 64.160027 ║
╚═══════════════════════╩═══════╩═══════════╝

Я вижу ту же тенденцию, что и с зарплатой. Джулия, язык, который может принести тебе больше всего, неудивительно, что делает людей самыми счастливыми. JavaScript, HTML, SQL и PHP снова оказались внизу. Впрочем, здесь отличия не такие большие. Использование Julia приносит разработчикам в среднем всего на 3% больше удовлетворения, чем использование JavaScript, так что я бы не стал серьезно относиться к этой статистике.

Вывод

Мы рассмотрели опрос разработчиков Stack Overflow и попытались найти тенденции в использовании языков программирования в 2020 году.

  1. Многие люди разрабатывают веб-приложения. JavaScript популярен как никогда, и его сопровождают HTML, CSS и SQL. Python и Java — все в порядке.
  2. Заработная плата почти обратно пропорциональна популярности. Если вам нужна высокая зарплата, выберите более нишевый язык, например, Julia, Scala или Rust.
  3. Как правило, ваше удовлетворение от работы не будет сильно зависеть от вашего выбора языка, поэтому выбирайте то, что вам больше нравится.

Вас интересует код этого поста? Загляните на github.

Это был очень простой анализ состояния языков программирования в 2020 году, поэтому, если у вас есть лучшие критерии для сравнения языков, дайте мне знать!