Подводим итоги 2022 года в рейтингах языков программирования — от IEEE и TIOBE до не столь известных, например RedMonk и GitHut. Цифры, подробности, наблюдения и, конечно, раскрытие сути разнообразных топов ждут под катом.
Читайте этот материал, если хотите понять, на какие языки программирования стоит обратить внимание, чтобы не отстать от IT-сферы. Вот рейтинги статьи в этом году:
- LinkedIn;
- TIOBE;
- RedMonk;
- The State of Open Source;
- GitHut 2.0;
- IEEE;
- Популярность ЯП в России;
- Краткие итоги.
Начнём с ориентированного на карьеру LinkedIn, где в январе вышла статья с такой инфографикой о количестве вакансий в Европе и США, размещённых на In:
В топе — ожидаемо распространённые и зрелые языки. Любопытно, что в США больше востребован специфический С++, а не широкий кросс-платформенный C#. Хорошо видно, что кроме массовых и относительно простых по-прежнему популярны далёкие от хайпа Ruby и Perl.
Перейдём к другой стороне востребованности — простой популярности языков в сети. Она не отражает всей картины объективно, но может послужить ориентиром: в августе 2022 Python достиг самой высокой популярности по версии TIOBE за всё время существования этого индекса.
TIOBE
Суть рейтинга TIOBE — расчёт количества упоминаний языка в вебе. Это может показаться сомнительным. Однако высочайшая популярность по TIOBE за пару десятков лет существования рейтинга — это хороший показатель.
И вот следствие популярности — многие работодатели слышали о Python и хотят идти в ногу со временем. Другие уже перешли на этот язык — поняли, что у него большие перспективы. Третьи просто хотят получить готовую работу и знают о большой скорости работы с этим языком. И вот что мы видим:
Именно Python претендует на звание популярнейшего языка за весь год, а не только самого перспективного по росту популярности.
От LinkedIn и TIOBE перейдём к иным цифрам.
RedMonk
RedMonk — это рейтинг популярности ЯП по сводным данным Github и StackOverflow, выбранных из-за размера и открытости данных. Авторы говорят о своём рейтинге как о ценном потому, что он позволяет делать прогнозы.
Для начала — графики по этим данным за 10 лет:
Python показывает медленный, но устойчивый рост с 2016 года. Самый достойный его конкурент — TypeScript, сочетающий гибкость JS и строгость типизированных языков. Внимания стоит и Kotlin, ведь этот язык разрабатывается в JetBrains — мировом лидере в разработке IDE. Эти люди хорошо знают, каким должен быть удобный язык.
Добавим, что, согласно The State of Open Source, Kotlin для мобильной разработки сегодня применяется чаще, чем раньше. И на графике выше мы видим подтверждение этому. А ещё напомним: приложения Android запускаются на Win 11. Вы можете сказать, что Microsoft уходит из России, но в страну приходит Linux. К тому же работать можно не только из любой точки мира, но и на (почти) любую точку мира. Например, в сфере мобильной разработки.
Вернёмся к топам. Вот диаграммы популярности от RedMonk на первый и третий кварталы 2022 года:
Лидеры рейтинга:
1. JavaScript.
2. Python.
3. Java.
4. PHP.
5. C#.
Почему первая тройка — снова JS, Python и Java? Это языки с огромным числом пакетов и инструментов, а каждый пакет любого языка — это, по сути, маленький язык, написанный с помощью языка большого. И со всем этим нужно разбираться. Вопросы возникнут неизбежно, и не всё решает документация.
- JavaScript и его де-факто стандартный менеджер зависимостей npm достигли 1 000 000 пакетов ещё в июне 2019 года. Такое количество (вкупе с возможностью быстро освоить язык на уровне новичка) порождает огромное число вопросов на Stack Overflow. А если хочется выстроить разработку на JS аккуратно и автоматизировать её процессы, для начала создайте новый пакет.
- Python и стандартный pip — это 418 722 пакета. Немного, но учитывайте выразительность Python и философию, суть которой — писать краткий, ёмкий код, решающий одну задачу одним способом.
- Java — это более 30 000 000 пакетов в репозитории Maven — менеджере пакетов Java.
Изучить все эти языки, причём не только в теории, но и на практических задачах, вы сможете на наших курсах:
Лидерство этих языков на Github и на SO вполне понятно. А вот неожиданности: выходит, F# и Fortran, Erlang и Clojure — не такие редкие, как может показаться, а слухи о смерти непопулярности PHP сильно преувеличены. Более того, именно в этом году зарплаты PHP-разработчиков резко выросли. Смотрите исследование SuperJob, в четырёх категориях квалификации — от джуниора до опытного старшего специалиста:
PHP перестал быть языком хайпа, но его востребованности это не повредило. Первые строчки занимает CSS — вездесущий язык фронтенда: в иных топах CSS, особенно как отдельный язык, встречается нечасто.
Обратите внимание, насколько за полгода сместился HCL — язык конфигурирования Hashicorp. Этот язык, по данным The State of Open Source (годовом отчёте об Open Source и языках программирования от Github), в 2022-м оказался самым быстрорастущим на Github. Процитируем репозиторий новичка топов:
HCL — это набор инструментов для написания структурированных языков конфигурации, удобных и человеку, и машине, и в смысле командной строки. Предназначенный для общего применения, прежде всего он направлен на инструменты DevOps, серверы и т. д.
Итак, HCL — это язык, чтобы писать языки конфигурирования. Его основа — лаконичный, удобный для IT-инфраструктуры Go.
Между тем в The State of Open Source отмечают, что с 2021 года Go, которому уже 10 лет, чаще стали применять в обычной разработке. Динамика применения Go на Github принесла ему 5-е место за год. И вот вся картина роста распространения языков на Github за 2022 год. Этот топ указывает на самые перспективные языки GitHub.
Ниже остановимся на The State of Open Source подробнее:
The State of Open Source
Обратите внимание на места с 7-го по 5-е: рост от Makefile до Go указывает на важность практик DevOps (инфраструктуры как кода) в разработке. Стать специалистом-практиком в DevOps вы сможете на нашем курсе.
А что же с Python? Взрыв на Github подходит к концу — язык обретает стабильность. И смотрите: последние 4 языка идут очень близко друг к другу, а потому падению Python не стоит придавать большого значения.
И ещё одно представление этих данных, об использовании языков на Github за последние 8 лет:
Ruby — язык с весьма специфичным синтаксисом — просто рухнул, а TypeScript, который обогатил JS типами, — взлетел. И стабильно растёт типизированный динамически Python с подсказками типов из модуля typing. Спасибо, Гвидо! А если вы не хотите выбирать между Python и TS, то вам подходит курс по FullStack-разработке на Python, где вас на практике научат создавать сайты и приложения с нуля.
GitHut 2.0
GitHut 2.0 — это ещё одно представление данных Github, оно показывает число:
- пул-реквестов;
- выполнений команды git push, зафиксированных на сервере;
- проблем и вопросов репозитория;
- людей, которые добавили репозиторий в избранное.
Пул-реквесты
Взрыв JS позади, а C++ набирает обороты, видимо, благодаря упрощениям в новых стандартах.
Пуши
Пуши — это отправка кода на сервера, как она есть, именно вашего кода, а не того, что вы предлагаете в запросах на слияние вашего и чужого кода. Здесь хорошо видно, что люди поверили в Python: намного чаще стали вкладываться в чужой код.
Звёзды
А выше видим относительно равномерный рост интереса к Python. Звёзды на Github — способ выразить своё отношение к коду и/или добавить его в избранное, отметить для своих целей и т. д.
Вопросы и проблемы
Падение числа проблем и вопросов JS, вероятно, связано со снижением его популярности вообще. Python продолжает уверенно лидировать. С ним чаще работают — и проблем возникает больше.
От разнообразных данных с Github перейдём к ещё более взвешенному рейтингу.
IEEE Spectrum
IEEE Spectrum — логичное завершение Хабратопа — 2022. Этот рейтинг учитывает Google, StackOverflow, Github, группы сайтов IEEE, а кроме того, посвящённые карьере ресурсы, например CareerBuilder и, более того, Twitter и Reddit.
Twitter — хорошее место, чтобы получать информационный срез о развитии IT-технологий, а Reddit — чтобы рассказать о проекте и поговорить с его целевой аудиторией неформально. Поэтому учитывать их имеет смысл. Смотрим на годовой топ IEEE:
Python и здесь в лидерах. Хорошо видно, что С, по крайней мере с момента выпуска последнего стандарта, поймал восходящий поток. Редко упоминаемый SAS выше, чем Kotlin. И это — напоминание, что область анализа данных шире и богаче, чем самый разнообразный хайп вокруг неё.
Данные — это и есть информация, с которой и работают информационные технологии. Поэтому в практичных топах верхние строчки занимает SQL — язык структурированных запросов к серверам баз данных. Ниже — рейтинг IEEE по вакансиям:
А ещё — исследование портала Statista об использовании языков программирования за весь год, в котором принимали участие более 70 000 разработчиков. SQL, как и в рейтинге IEEE, — в лидерах:
Надо сказать, что право SQL называться полноценным языком программирования (тьюринг-полнота языка) доказано не так давно. Поэтому часто в рейтингах ЯП SQL просто нет. Но именно этот язык — ключ к данным, с которыми работают программы. SQL преподают на всех наших флагманских курсах эксперты из индустрии: они знают, что владеть им важно, какой бы язык вы ни выбрали основным.
Помните, что никакие рейтинги не бывают идеально точными, они не могут спрогнозировать будущее на несколько лет вперёд. И даже искусственный интеллект не расскажет вам о том, какой язык будет востребован через 5 лет.
Поэтому выбирайте язык по душе, писать на котором будет интересно. Погрузиться в тему и попрактиковаться на реальных задачах помогут наши курсы. Вот что мы можем предложить читателям Хабра:
Популярность ЯП в России
Данные портала Zarplan показывают, что в топе востребованности у работодателей (после самого первого SQL) по порядку — Python, JavaScript и Java:
Если говорить о популярности, то участники недавнего опроса на All Cups от группы VK в июле 2022 года назвали самые востребованные языки. Это:
- Java (33%);
- Python (21%);
- С++ (16%).
При этом каждый четвёртый участник опроса начинал с Python, но 42% опрошенных рекомендуют начинать с Java. Почему? Возможно, это связано со спецификой аудитории All Cups, ведь часто участники опросов — состоявшиеся профессионалы и успели оценить преимущества строгой типизации и зрелую экосистему Java. Так или иначе, общая картина в России в целом совпадает с мировой.
Краткие итоги
Лидеры почти всех упомянутых топов — Python, JavaScript и Java. У первых двух — простота, низкий порог входа и широта применения. Python сегодня применим для интернета вещей, а JS продолжает держаться благодаря серверному Node.js и разнообразию технологий фронтенда. Строгий и многословный Java живёт благодаря универсальности и зрелости экосистемы. Всё это логично.
Сегодня в топах удивляют HCL, Go и языки для терминала — развитие инфраструктуры в IT. По сути, DevOps — это разработка для разработки, и, если вы хотите идти в ногу со временем, вкладываться в экономику, в информационных технологиях решать проблемы скорости — добро пожаловать в DevOps.
А если хотите обрести крепкую опору под ногами — обратите внимание на Data-профессии, связанные с топовым среди навыков SQL:
Новогодняя акция — скидки до 50% по промокоду HABR:
Data Science и Machine Learning
- Профессия Data Scientist
- Профессия Data Analyst
- Курс «Математика для Data Science»
- Курс «Математика и Machine Learning для Data Science»
- Курс по Data Engineering
- Курс «Machine Learning и Deep Learning»
- Курс по Machine Learning
Python, веб-разработка
- Профессия Fullstack-разработчик на Python
- Курс «Python для веб-разработки»
- Профессия Frontend-разработчик
- Профессия Веб-разработчик
Мобильная разработка
Java и C#
- Профессия Java-разработчик
- Профессия QA-инженер на JAVA
- Профессия C#-разработчик
- Профессия Разработчик игр на Unity
От основ — в глубину
А также
Комментарии (13)
Landgraph
04.12.2022 07:16-2Вот всегда было интересно. Как вы/они разделяете C и C++?
Мне уже занадоело смотреть на C++ код типа:
class UberCppClass { public: int megafunction(); uint magicfunction(); }
Зато класс, зато проект у нас на C++…
RC_Cat
04.12.2022 10:45int megafunction(const auto& megaArray){ for(const auto& value : megaArray){ value... } }
А megafunction не так выглядит?
Landgraph
04.12.2022 17:56оооо, любители пихать auto везде - для них прямо отдельный котёл в аду стоит. Особенно доставляют auto вкупе с функциями на десять экранов и великолепно именованными переменными и функциями типа auto o = getObviousValue(), угадайте что возвращающее... Баловство детей, которые не знали ничего кроме IDE.
Вы ещё шаблоны вспомните. типа template <class T> T mathop(T a, T b) { return a + b; } при единственном упоминании во всём коде, желательно в виде auto c = mathop(2, 3). Ну чтобы точно тот, кто будет читать этот код - сошёл с ума, пытаясь понять что хотел сказать автор...
В общем не об этом был мой вопрос.
ReadOnlySadUser
04.12.2022 22:47Я тоже долго не любил auto :)
А потом я попробовал Haskell и теперь тоже нравится везде пихать auto, хотя моя бы воля, я бы как-нибудь и без него обошёлся)
Landgraph
05.12.2022 07:01Я не против auto как языковой конструкции, я против превращения кода (изначально строго типизированного языка) в подобие скриптового с типизацией в рантайме. Осталось auto заменить на $ перед переменной и, считай, php получился.
Но боль даже не в этом. Язык-то остался строго типизированным. Т.е. auto это не, например, variant с кучей преобразований на лету. Бездумное использование auto тупо затрудняет чтение кода без IDE с IntelliSense, как минимум, и знания всей архитектуры проекта, как максимум (чтобы на лету понимать что нам даёт на выходе тот или иной вызов или атрибут, либо быстро найти место объявления).
ReadOnlySadUser
05.12.2022 07:44Строго типизированный != нужно указывать тип. Haskell строго типизированный язык, точно "строже" С++ (уж не знаю насколько корректно так говорить), но при этом писать типы нужно оч редко.
Конечно С++ не Haskell, но пока код относительно высокоуровневыйии не надо ковырять байтики, не писать тип бывает лучше, чем его писать.
Landgraph
05.12.2022 08:40Коллега, Вы меня извините, но, при всём уважении, ваше заявление попахивает джаваскрптингом в ругательном смысле :)
Я, к сожалению не писал ничего на хаскеле, но скажите о каком размере исходного кода мы говорим? Сотни тысяч строк? Миллионы? И я говорю про один « продукт». Скажем, отдельно взятый драйвер, например. Так вот я про проекты от 100к строк. В софтинке из трёх сорцов по 200 строк и двух заголовков - хоть на голове стойте.
Это как обсуждать, например, необходимость использования сокращений (омг, имхо, лол, …), основываясь на переписке в аське, а не трудах Толстого, Достоевского и других классиков литературы. Сейчас ещё немного и мне придётся объединить комменты и развить мысль в отдельной статье. О трёх актах.
ReadOnlySadUser
05.12.2022 08:47Всё, что могу ответить - просто попробуйте Haskell :)
Остальное - очень долгая дискуссия, которую я вести не хочу. Большая часть из неё будет пересказом Core Guidelines, ведь там вполне себе нормально описано, когда auto хорошо, а когда плохо. И я по большей части согласен с Core Guidelines)
Landgraph
05.12.2022 09:47Возвращаясь к теме статьи - основываясь на данных выше, по востребованности языка - необходимость использовать хаскел уменьшается ежегодно. Так что и вероятность его попробовать стремится к нулю :)
Даже те же плюсЫ, с осуждаемыми плюшечками и фенечками, которые так любят дети, скорее набирают/сохраняют популярность.
Landgraph
05.12.2022 09:57Коллеги меня увели куда-то в дебри малозначительных особенностей синтаксиса. Мой посыл-вопрос был в теме статьи - а не кажется ли вам, коллеги, что если не разделять, на мой взгляд, искусственно С и С++, то результаты будут не в пользу других популярных языков?
С тем же успехом можно тот же питон делить на 2 и 3 версию (которую, возможно, ещё на минорные), пхп чуть ли не на до 4, 4-5, 7, 8, молчу уже про минорные версии. Ява и яваскрипт тоже не отстают с версионированием.
Expurple
05.12.2022 12:44Любопытно, что в США больше востребован специфический С++, а не широкий кросс-платформенный C#.
С++ не кроссплатформенный? А на чём, по-вашему, рантайм для C# написан?
YuriPanchul
Ну хорошо, хоть Verilog, SystemVerilog и VHDL в каких-то рейтингах появились. Хоть они и языки программирования только в одном из аспектов.