В прошлом декабре мы подбивали предварительные итоги года и выкатили рейтинг популярности языков программирования. Пришло время для обновлений! В Хабратопе-2021 рассказываем, как менялись позиции ЯП в рейтингах TIOBE, PyPL и Stack Overflow. А если хочется увидеть выжимку, сразу переходите в раздел итогов. Поехали!
Отдельно хочется напомнить, что все рейтинги субъективны (кроме нашего, конечно ;-) ). Можно примерно посчитать, сколько разработчиков пишут на конкретном языке или количество поисковых запросов, но именно вы делаете выбор: лаконичный Python, полный неопределённости Си, безопасный Rust или эзотерический Chicken. А мы начнём с самого известного индекса — TIOBE.
Индекс TIOBE
TIOBE считает упоминания на веб-страницах. В рейтинге учитывается количество работающих с языком специалистов, а ещё различные курсы, где языки можно изучить. На ноябрь 2021 года рейтинг выглядит так:
В октябре 2021 года впервые за всю историю Python вырвался в лидеры TIOBE.
Порог входа в этот язык ниже, чем у Java и C, и с каждым годом Python-программистов всё больше. Популярность языка растёт так быстро, что в TIOBE разразилась настоящая драма. Первое место Python обеспечено падением C, который пять лет назад уже опускался на 10,5% — с 17 до 6,5.
Python остаётся № 1, но его позиции не совсем уверенные: 11,77% у Python против 10,72% у Java и С. Вероятно, в 2022 году, в котором прогнозируют падение Java и С, лидерство Python станет неоспоримым.
Вторая причина взлёта Python — стремительное развитие Data Science.
R, нужный дата-сайентистам, удерживает позиции, но конкурировать с Python не может. Julia способна на это в теории, но язык ещё слишком слаб. Другие перспективные языки расположились так: Lua в TIOBE обгоняет Dart, Ada, Rust и даже Kotlin. На 12-м месте основного рейтинга расположился Groovy.
PyPL
Созданный Github рейтинг PyPL ориентируется не на страницы, а на поисковые запросы <language tutorial>. PyPL считает TIOBE «отстающим индикатором», о чём прямо заявляет на своей главной странице. И вот что мы видим по индексу от Github в ноябре 2021 года:
Первая десятка рейтинга — это 85% поисковых запросов на GitHub. Абсолютные лидеры топа — Python и Java: они сильно оторвались от ближайших конкурентов.
Первую позицию PyPL Python занял уже в 2018 году. Что не удивительно: представьте себе количество поисковых запросов спустя 6 лет после AlexNet, когда люди прочувствовали весь потенциал ИИ. Популярность Java тогда постепенно падала, зато Python рос огромными темпами.
В 2021-м Python сбавил обороты — последние полгода язык находится на одной отметке. При этом 30% всех запросов "<language> tutorial" 2021 года — это запросы о Python, а значит, язык активно изучают. Хотя взрывного роста популярности можно не ждать — с волнами ±2% развиваются классические языки.
Во второй десятке борьба куда острее. В прошлом году мы сделали ставку на Go, Rust, Ada, Lua и Dart — у них были все шансы на развитие. И сегодня Go удерживает позиции, а Rust укрепляется, хотя его неожиданно обогнал VBA. Развивая комьюнити, активно растут Ada и Dart. Из топ-20 вышел только Lua. Очень перспективными остаются Go, Ada и Dart, к ним можно добавить ABAP и Groovy:
В 2020 году у ABAP вышла стабильная версия, и он сразу взлетел на 21-е место.
Разработчики высоко оценили обновление Groovy — его всё чаще изучают как дополнение к Java.
Рейтинг StackOverflow
SO — это, по сути, огромная база вопросов и ответов по языкам и технологиям программирования: десятки гигабайт текста и повседневный рабочий инструмент тысяч программистов: для автоматического поиска ответа на портале разработано множество инструментов.
Языки по местам расставляли только пользователи SO, но рейтинг очень показателен. Респондентов спрашивали, какой язык или инструмент они использовали в работе или изучали за последний год, а также о планах на следующий год. Поэтому мы видим ситуацию и можем сделать небольшой прогноз.
Уже девятый год подряд первое место у JavaScript, хотя по TIOBE и PyPL до лидерства ему далеко. JS знают, изучают или используют в работе 68,62% респондентов.
В десятку вошли Node.js и TypeScript, которые расширяют JS. После массовых HTML и CSS идёт Python с 48,24% — у него третье место. А в конце топ-10 — C# и C++. Язык Си плавает около 12-го места.
Увидев статистику «любви и ненависти» к языкам, мы смеялись, ведь она точно отражает известную цитату создателя С++:
«Есть всего два типа языков: те, на которые жалуются, и те, которые никто не использует».
Голубая полоса на графике — любимый язык, фиолетовая — ужасающий. Сумма двух полос — это все респонденты, которые явно указали отношение к языку:
На вершине — языки, которые в общем рейтинге набрали меньше 1%. Clojure, Elixir, Julia, Dart, Swift, Go — все они выше Java, C и C++.
Язык Си ненавидят 60,44% пользователей SO. Но это скорее подтверждает, что программисты работают с языком или хотя бы знают о нём.
Из лидеров в общем рейтинге хорошие показатели только у Python — это 67,83%, С# — 61,96% и JavaScript — 61,51%.
Интересен вопрос о языках, которые пользователи SO собираются изучать в 2022 году. Python здесь — лидер с ощутимым отрывом. И это ещё раз подтверждает не только популярность, но и большой интерес разработчиков к языку (кстати, освоить язык можно здесь).
Теперь, когда мы увидели общую картину, посмотрим на цифры в России и ближнем зарубежье.
Популярность ЯП в России и не только
В 2021 году, по версии JB, самый популярный ЯП в России — JavaScript. Одним из основных или основным его назвали 28% российских программистов; за последний год с ним работали 56% участников опроса. JavaScript популярнее среди программистов Украины и Беларуси: основным его указали 38 и 36% опрошенных соответственно.
Интересна подборка ЯП, которые профессионалы хотят изучать в 2022 году. Наиболее популярными «завтрашними» языками стали быстро растущие Go, TypeScript, Kotlin, Rust и Python.
Теперь посмотрим на количество вакансий с упоминанием разных языков. Вот первая десятка Zarplan на сегодня:
SQL упоминается в два раза чаще JS, что вполне понятно — язык часто дополнительный. Знание SQL станет преимуществом на вакансиях C# или Java. Конечно, владения SQL требуют многие вакансии аналитиков данных, Data Scientist, Data Engineer, продуктовых и бизнес-аналитиков.
А ещё мы посмотрели вакансии на hh.ru. На 28 ноября в поиске по ключу «SQL» в России имелось 30410 вакансий. И вот первая десятка:
SQL — 30410 вакансий;
JavaScript — 17 626;
Python — 15 805;
Java — 12 334;
PHP — 7409;
C# — 7270;
C++ — 5976;
Go — 4856;
TypeScript — 4764;
Kotlin — 3239.
Она с небольшими отличиями повторяет статистику Zarplan. Разве что специалистов по Go на hh.ru требуется намного больше. Остальное — в пределах погрешности. В бизнесе больше всего требуются специалисты по JavaScript, Java и Python.
Итоги
Python — абсолютный лидер и укрепляет позиции.
C, C++ и C# ещё нас всех переживут. Классический Си уступает Python, но о падении популярности речи не идёт.
Обратите внимание на TypeScript, Go, Ada, Dart, ABAP. Их сообщество только формируется, но популярность растёт. Скоро они могут завоевать ощутимую долю рынка. Присмотритесь к SQL, который требуют во множестве компаний.
Java и JavaScript немного сдали позиции, но по-прежнему сильны и популярны.
Если в 2021 году вы решились стать специалистом в IT, выбирайте из этих языков — не ошибётесь. Какой бы язык вы ни выбрали: сложный C++, красивый C#, широкий JavaScript, необычный Go или выразительный Python, — вы сможете освоить их или прокачать на наших курсах. Для читателей Хабра — особые условия:
Другие профессии и курсы
Data Science и Machine Learning
Python, веб-разработка
Мобильная разработка
Java и C#
От основ — в глубину
А также
Комментарии (92)
DimaVadovov
02.12.2021 18:03-29Спасибо за интересную статью, полезная инфа
Rustified
02.12.2021 19:26-14И вот за что минусы - человек просто поблагодарил автора...
13_beta2
02.12.2021 20:01+23Скорее всего за несодержательный комментарий. "Спасибо" можно плюсом статье сказать
OZR
03.12.2021 17:01Мною не было поставлено ни одного плюса на хабре. Никогда, за всё время использования аккаунта не было возможности поставить плюс. Эта возможность принципиально отсутствует.
Т.е нет. Спасибо нельзя сказать плюсом. Принципиально нельзя. Вообще никак. Никаким способом, кроме как удалить нахрен аккаунт и создать новый с кристально чистой "хабракармой"
А "чернь", вроде меня не имеет права поставить даже 1 плюс раз в год, под полезную статью, потому иногда можно позволить себе написать несодержательный комментарий, со "спасибо" или "+1". Особенно под каким-либо другим комментарием, который не плюсуют, только потому что на это нет прав.
Dmitry3A
03.12.2021 18:30+3Вместо «спасибо» или "+1", напишите почему вы благодарны и хотите спасибо сказать, потратьте пару минут, может и плюсики тогда появятся.
PS. Свою негативную карму можете обнулить и начать с чистого листа.
Febian
02.12.2021 20:27+17Вероятнее всего за подозрение в умышленном сговоре с автором.
Dmitry3A
02.12.2021 21:24+18За то что хочет выползти из премодерации через «спасибки». Оно конечно понятно, но читать информационный шум не хочется (даже если и от чистого сердца сказано) и если подобное не минусовать, завтра тут будут десятки «вежливых» людей.
TrashboxBobylev
09.12.2021 07:49Такое вроде gatekeeping зовётся на цивилизованных сайтах.
Chamie
09.12.2021 15:00Нет, gatekeeping — это когда новичкам намеренно затрудняют их переход в «основной состав» просто потому, что они новички, т.е. когда к на действия реакция хуже, чем на такие же от «старожилов». А минусование бессмысленных комментариев (с целью или без цели заработать что-либо на этом) — это объективное действие, не связанное с личностью комментатора, только с самим комментарием.
forthuser
02.12.2021 18:31+2Есть ещё такой признанный рейтинг ieee.org/top-programming-languages/
и даже такой «экзотический» рейтинг Rosetta Code: Popular Programming Languages ????
P.S. К примеру 15 puzzle game in 3D на языке Phix в браузере.
harios
02.12.2021 18:31+15Нишу JS уже забили доверху вайтишниками, больше вайтишники не идут, потому что не могут найти работу себе, курсы перестали приносить доход. Следующим кандидатом на раздутие стал питон. Из каждого утюга орут про дата саааенс..но что это толком такое и чем будет человек заниматься никто не может объяснить. Делаем ставки господа, какой следующий язык с низким пороом вхождения будут убивать ради прибыли? SQL? PHP? Может Delphi по второму разу?
dimaaannn
02.12.2021 22:53+3Не знаю не знаю на счёт питона.
Как прикладной и скриптовый язык - он очень хорош. Но чтобы прям работать на нём - вакансий не особо много.
Neikist
03.12.2021 11:49Возможно dart. Мобилки довольно популярны вроде как среди вайти, а тут аж кроссплатформа модная/молодежная.
nikitaulshin
03.12.2021 13:08-1Пациент скорее мёртв, чем жив :)
Neikist
03.12.2021 14:39+1Да не сказал бы. В чате по флаттеру людей куда больше чем в чате по нативной андроид разработке.
Живость фреймворка сравнима с реакт нейтивом кмк, но в отличие от него флаттер хоть нормальный. Сам на нем пет проект пилю, хоть и нативный разработчик под андроид.nikitaulshin
03.12.2021 16:16Точно, флаттер у меня из головы вылетел напрочь :)
Rax12
06.12.2021 13:28Но ведь flutter может заменить убогий и тормознутый electron, разве нет?
Я помню как то пробовал запускать просто пустое окно на electron, и оно запускалось даже долго. В тоже время такое же окно на flutter, скомпилированое под Винду, запускается моментально.
Neikist
06.12.2021 13:53На винду прям удивляет, да. Недавно для одного подкаста на добровольных началах пилил программку пару-тройку вечеров, решил флаттер взять, ибо все равно собирался когда то попробовать. Не заморачивался с правильностью написания, ибо раньше только пару хелло ворлдов на нем пробовал написать, но скорость работы и запуска собранного проекта приятно удивила.
lookid
03.12.2021 17:12Потомучто нужны не вайтишники, а инженеры. А для этого учиться надо. Веб раньше тоже считался местом для слабоумных. Так что всё ок. Веб за 20 лет не изменился.
ptr128
03.12.2021 21:14+2Главный прикол в том, что наука о данных (data science), в первую очередь все же математическая наука, а не освоение готовых инструментов. При наличии фундаментальных знаний математической статистики и математического анализа (как без него понять идеи дробного интегрирования и применения рядов Тейлора?) - выбор инструмента, во многом, лишь дело вкуса.
Для обеспечения приемлемой производительности, все тяжеловесные функции поддержки необходимого математического аппарата раньше писались на Fortran (и до сих пор на нем остаются), сейчас на C/C++. А уже из какого конкретно языка вызывать эти функции на этапах прототипирования и промышленной эксплуатации - на мой взляд, совершенно монопенисуально. Просто стоит учитывать, что для прототипирования лучше скриптовый интерпретататор, а для продуктива - компилируемый высокоэффективный язык.
Тешить же себя мыслью, что для того, чтобы стать дата сайнтистом достаточно изучить Python и несколько наиболее распостраненных пакетов - значит вообще не понимать, что такое наука о данных.
Ryav
02.12.2021 20:02Разве есть вакансии с требованием одного только SQL?
VaalKIA
02.12.2021 22:41+2В теории — да, на практике, там всякие Analysis services, по 1С гораздо проще устроиться и больше вакансий, в российском рейтинге 1С вообще не фигурирует, что уже говорит о том, что доверять ему нельзя, а если нельзя — то это однозначный треш.
ptr128
02.12.2021 22:59+2SSAS - это все же MDX/DAX, а не SQL К тому же SQL - не язык программирования. Языки программирования - это PL/SQL, T-SQL, PL/pgsql.
Ну и вообще, смешивать в одну кучу T-SQL и PL/SQL я бы не стал. Специалистов, хорошо ориентирующихся в обоих я встречал очень редко.
ptr128
02.12.2021 23:06Да, но это, скорее DBA, чем разработка. Потому что разработка на том же T-SQL без умения писать SSIS обработчики или CLR на C# востребована не часто.
VanKrock
03.12.2021 08:08Да, но обычно это не вакансии разработчиков, тестировщикам и системным аналитикам требуется.
kuftachev
02.12.2021 20:15+12Если искать вакансии по Python, а не там где он упоминается где-то рядом с навыком мыть после себя чашки в офисе, то он явно проиграет Java, C#, не говоря уже про JavaScript.
А если ещё отделить вакансии по программированию, от вакансий где платят за математику, а Python только инструмент, то он вообще скатиться очень глубоко.
Хотя, как раз для того, чтобы подготовить данные, отправить во что-то написанное на С/С++ и потом забрать вывод, он проходит хорошо.
KoteMilote
02.12.2021 21:27+3Я всё никак не могу понять, как пишут бэк на Питоне? Это можно с ума сойти от динамической типизации.
Dmitry3A
02.12.2021 21:34+3PHP долго рулило, а там по сранению с питоном совсем по началу грустно было.
Хотя по идее, PHP по модному надо назвать fullstack. И фронт и энд в то время был в одном флаконе.Chamie
03.12.2021 18:24PHP по модному надо назвать fullstack. И фронт и энд в то время был в одном флаконе.
И фронт, и энд? В смысле, что «фронт» и «энд» в одном, а «ПХП», «бэк» и «энд» — в другом?Dmitry3A
03.12.2021 18:37+1ПХП был SSR и до определённого времени динамики на сайтах фактически не было, так что отдельного выделенного направления _фронтенд программистов_ не существовало, были верстальщики/дизайнеры.
Думаю что где-то с 2010 массово началось, когда гугл своим примером показал что «так можно было» ну и JS движки оптимизировали, раньше он был не очень производительным.
Alexsey
02.12.2021 22:49Насколько наслышан обмазываются всякими костылями, которые помогают с помощью IDE создать из питона псевдо-статический язык.
dimaaannn
02.12.2021 22:55-4Почему костылями то? Тайп хинтинг - очень полезная штука. И поставляется сразу из коробки.
Эдакий тайпскрипт БЕЗ костылей.
Dmitry3A
02.12.2021 22:57+13Всем бы такие костыли как у тайпскрипта
tzlom
03.12.2021 11:28-4Оба фигня.
Не, ну серьёзно, у обоих это только проверки на этапе "компиляции" а в рантайме все выключено. Как будто у всех 100% покрытие кода. Ну и питон сам вообще ничего не проверяет, и они это называют "из коробки"
Chamie
03.12.2021 18:27+4Не, ну серьёзно, у обоих это только проверки на этапе «компиляции» а в рантайме все выключено.
Подскажите, пожалуйста, о каких языках вы думаете, говоря о проверке типов в рантайме?tzlom
04.12.2021 22:27-2PHP например.
Да, там система типов пока не такая мощная, но она есть. Питон давно уже отказался от попыток сделать проверки типов внутри языка, а TS вообще не самостоятельный язык и прикручивать к нему проверку типов никто не будет.
То, что в них называется типизацией, по сути - контрактное программирование.Chamie
06.12.2021 13:23+3То, что в них называется типизацией, по сути — контрактное программирование.
По этой логике тогда ни один компилируемый в машинные коды язык не имеет типизации.
xael
03.12.2021 00:42+1Можно, но сложно. Обработка ошибок наше всё, плюс чуть больше чем ну ооочень много автотестов.
ptr128
03.12.2021 01:02+1Если такой ценой, то зачем? "Мыши плакали, кололись, но продолжали грызть кактус" (с)?
Нужели так сложно изучить несколько языков программирования и использовать наиболее подходящий в конкретной ситуации?
Ничего не имею против Python в целях прототипирования или написания скриптов в пределах пары экранов. Сам так делаю (хотя порой отдаю предпочтение Perl). Но это совершенно не отменяет использование высокопроизводительных компилируемых языков в остальных случаях.
xael
03.12.2021 01:13+4Да лично мне глубоко пофиг, на чем писать. Начальство как прикажет, так и будет. Хочет сразу в машинных кодах - сделаем, с вставками на брэйнфаке и документацией в Экселе. Начальство у нас умное, крупноголовое. Пусть за нас и думает. За их деньжищи - любой каприз. Но рабочий день у меня - ровно восемь часов, аккорды и авралы - исключены.
KvanTTT
03.12.2021 15:37Ничего не имею против Python в целях прототипирования
А зачем его использовать даже для прототипирования? В современных статически-типизированных языках (C#, Kotlin) кода будет не больше, зато не надо будет его потом переписывать.
KoteMilote
03.12.2021 18:18Не знаю за С# но Kotlin не так давно появился, что бы потеснить Питон, но думаю у Kotlin на это есть всё шансы. Android же у Java отжал.
KvanTTT
03.12.2021 19:59По моему опыту эти языки сильно похожи по возможностям и юзабилити. Но, конечно, у них тоже есть свои плюсы и минусы. Я люблю оба этих языка, над компилятором одного даже работаю :)
ogost
03.12.2021 04:24+1Берёте джанги/фласки или другие фреймворки на выбор и вперёд, в продакшн! На жаваскрипте ведь тоже пишут.
acces969
03.12.2021 15:00+1Половина ошибок в 1С - из за динамической типизации. Было бы больше, если бы метаданные программы, и не дай бог, платформу, можно было бы тоже переопределять и изменять. Я по сути из за динамической типизации и решил уйти из 1с в большие языки
hardtop
03.12.2021 22:45Поясните, а почему для бека Питон плох? Ну вот пришёл на вход POST запрос. Или JSON ... {id:2, name:'bob', age: 28} - Ну ведь в любом случае, либо есть модель для проверки, или try-catch.
Или давайте так, а что хорошо для бека. Только не Java и не Net?
Chuchelomedvedya
02.12.2021 21:51+2Ни разу не пожалел, что выбрал php. Популярность языка среди новичков падает, и востребованность рынка во мне растёт)
crea7or
03.12.2021 00:53+5чего его выбирать-то, на нём половина из списка языков сможет писать просто с докой с php.net.
skyeff
03.12.2021 12:52+7сможет писать просто с докой с php.net.
Ну да, а потом рассказывать: говно этот ваш пхп — html вперемешку с sql запросами к базе. На php можно создавать отличные поддерживаемые приложения с гексагональной архитектурой (спасибо активному внедрению строгой типизации), если конечно выкинуть книжку Котерова начала 2000-х, и взять что-нибудь посовременнее.
Djeux
03.12.2021 13:02+2Писать и писать хорошо, разные вещи. С одних языков проще, с других сложнее. Явист точно сможет сразу нормально писать, только многих вещей ему будет не хватать.
tzlom
04.12.2021 22:19+2Как будто у нормального разработчика на PHP будут проблемы с этой же половиной списка.
korsetlr473
02.12.2021 22:59+4вы в статье так и не определились
1 раз написали что Go это более низкоуровневый язык
2 раз написали что Go современный высокоуровневый
так какой он ?
QeqReh
03.12.2021 06:37Китай и Южная Корея активно пишут на Яве и игнорируют PHP и C#. Это очень интересный показатель.
des1roer
03.12.2021 09:16SQL как самостоятельный язык очень странно. Чаще всего он идет к бэкекнд (PHP, PYTHON, JAVA, e.t.c.) либо data-science (JUNIPER, PYTHON)
alkresin
03.12.2021 10:07-3А какая сейчас ниша у Java, где и что на ней реально пишут сейчас, помимо приложений для Андроид?
elektroschwein
03.12.2021 10:30+3Бэкенд в кровавом энтерпрайзе.
BlackSCORPION
03.12.2021 20:29Не только в ентерпрайзе, а бэкенд в целом. Еще в ембеддед, там где линукс есть, и в целом много разного написано на джава, например Apache Active MQ, Kafka, первое что в голову приходит.
forthuser
03.12.2021 10:56Имеются неплохие приложения сделанные на нём.
Как пример: yEd graph editor
P.S. Список их, уверен, намного шире одного приложения. :)
Neikist
03.12.2021 11:53+1Вот как раз для андроид уже почти не пишут. Ибо андроид застыл на старой версии языка. Котлин наше все. А вот бекенды на java — кмк более чем популярны.
vba
03.12.2021 12:08+1Очень перспективными остаются Go, Ada и Dart, к ним можно добавить ABAP и Groovy
Опа, нежданчик, видимо скилфакторы курс запилили по грувям, а на него никто не идет. Groovy занял свою мелкую нишу вот там и плещется уже лет так цать.
Меня так же удивляет полное отсутствие Scala во всех рейтингах.Yerin
09.12.2021 07:33У Scala порог вхождения высокий. Даже взять обучающие курсы, которых не так уж и много. Для совсем новичков почти по нулям (в отличие от ругаемого Python), в основном они для переходящих из Java. А вот смысл такого перехода может быть не так уж и очевиден.
avtozavodetz
03.12.2021 14:04В октябре 2021 года впервые за всю историю Python вырвался в лидеры TIOBE.
Почему впервые? Python был лидером TIOBE в 2018, 2010 и 2007 годах.
stranger777 Автор
03.12.2021 14:50Вы правы, но имеете в виду другое лидерство: в 2007, 2010, 2018 и 2020 Python был языком года, то есть его популярность росла быстрее популярности других языков, но Python ещё не был самым популярным.
avtozavodetz
03.12.2021 15:28+1Понял, спасибо! Вот эта картинка еще наглядно показывает, к какому лидерству пришел Python.
Free_ze
03.12.2021 21:10SQL упоминается в два раза чаще JS, что вполне понятно — язык часто дополнительный.
Да и сам JS зачастую — дополнительный язык для фулл-стекового веба.
Error1024
Хотите прогноз — благодаря, в том числе вашим, бесконечным вайтишным курсам и искусственной накачке рынка нас ждёт обрушение пузыря доткомов 2.0 в ближайшие 5 лет. «Спасибо».
13_beta2
Абап в контексте "сообщество формируется, популярность растёт" тоже умиляет.
boogiedimik
справедливости ради, хочется ответить: с условного курса до поиска работы доходит 5-10 процентов в лучшем случае, остальные отваливаются сильно раньше последней трети курсов. думаю, роль курсов в реальности несколько преувеличена, думаю те же, кто в 5-10 процентах, дошли бы до поиска работы сами/другим путем, потому что горят желанием/имеют способности/настырные
kovert99
>нас ждёт обрушение пузыря доткомов
Ждет, но вайтишные курсы тут не причем