Как стать автором
Обновить
537.42
Сбер
Технологии, меняющие мир

Популярные языки программирования: что учить?

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

Задавшись таким вопросом, новички гуглят рейтинги популярности языков. Кажется логичным, однако большинство исследований о популярности того или иного языка строятся на основе выдачи поисковиков, соцсетей, сайтов с вакансиями и крупных сообществ разработчиков. То есть туда попадает и Google Search, и Twitter, и Reddit — довольно «грязная» выборка.

Чтобы увидеть реальную картину, стоит подумать: почему тот или иной язык внезапно набирает популярность? Иногда причина частого упоминания в интернете не имеет отношения к востребованности языка. Так, например, в ежегодном рейтинге языков программирования Института инженеров электротехники и электроники (IEEE) за 2020 год язык COBOL неожиданно занял 7-е место по популярности в Twitter. А произошло это потому, что в апреле 2020 года в самый разгар пандемии COBOL часто мелькал в новостях Twitter, когда губернатор Нью-Джерси Фил Мёрфи объявил, что штат отчаянно нуждается в добровольцах, обладающих навыками работы с COBOL. Это объявление вызвало много удивления. Оказалось, что американская система страхования была перегружена из-за всплеска заявок на пособие по безработице, что привело к задержке в обработке дел, так как было недостаточно программистов, знакомых с языком из эпохи динозавров. Это и стало причиной частого упоминания, но сам язык не стал популярнее среди разработчиков.

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

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

Тенденции среди топовых языков программирования

Уже упомянутый Институт инженеров электротехники и электроники снова напарсил в 2021 году показатели из восьми источников (CareerBuilder, GitHub, Google, Hacker News, IEEE, Reddit, Stack Overflow и Twitter) и собрал рейтинг из 55 языков. Тройка лидеров с прошлого года здесь не изменилась: это Python, Java и C. При этом С# опустился с 6-й строчки на 23-ю, а вот Ruby поднялся с 19-й на 11-ю.

Топ языков программирования 2021 по версии IEEE
Топ языков программирования 2021 по версии IEEE

В свою очередь Stack Overflow не парсил Google, а опросил разработчиков о том, какие языки они используют или/и хотят использовать. У них самый популярный — JavaScript. Что, в общем-то, тенденция уже лет десять.

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

А вот компания Emsi Burning Glass собирает и анализирует только объявления о вакансиях. Результаты исследования, опубликованные в конце прошлого года, показали наиболее востребованные в 2021 году языки программирования с точки зрения работодателей США. Неожиданно обнаружилось доминирование языка SQL над сверхпопулярными и широко используемыми Python, Java и JavaScript. Исследователи объясняют, почему так много компаний требуют от айтишников знания SQL, тем, что он является основой работы с данными (SQL используют для управления реляционными базами данных и запросами к ним).

Примечательно, что калифорнийский университет Беркли опубликовал в конце 2020-го заметку «11 самых востребованных языков программирования в 2022 году», где спрогнозировал популярность языков, проанализировав тенденции 2020 и 2019 годов. В университете использовали особенный подход: «Мы обнаружили, что Rust, Python и Typescript возглавляли список самых популярных языков Stack Overflow в 2019 и 2020 годах с небольшими перестановками. Точно так же Python, JavaScript и Go оба года лидировали в тройке самых разыскиваемых списков Stack. Учитывая их распространённость в умах разработчиков, шансы на увеличение популярности этих пяти языков высоки, и поэтому их стоит включить в наш список. Однако место, которое мы определили для каждого языка, зависело от других факторов. Например, поскольку Python постоянно занимает пятёрку лучших в списках наиболее часто используемых, любимых и требуемых в Stack Overflow, мы решили поставить его выше, чем Rust, который, хотя и вышел на первую позицию в списке самых популярных в Stack Overflow, занимает 19-е место в списке общеупотребительных языков организации».

RedMonk, известная на ИТ-рынке аналитическая компания, анализирует языковые рейтинги из GitHub и Stack Overflow. В прошлом году она выложила отчёт, в котором показала, что вторым по популярности после JavaScript стал Python. Рост его популярности связывают с пластичностью применения: Python используется в огромном количестве областей и способен справляться с различными задачами, включая набирающее популярность машинное обучение (мы считаем, что причина возросшей популярности Python именно в его использовании в ML). Языки C# и C++ в 2020-м шли только после PHP, занявшего 4-е место рейтинга. Go и Kotlin попали во вторую десятку. В позапрошлом и прошлом годах заголовки Cnews пестрили Python, предрекая его безоговорочное лидерство. Пока, наконец, в октябре 2021 он не выдал эмоциональную заметку с заголовком «У языков программирования революция. Сменился самый популярный язык в мире».

Ежемесячный индекс Tiobe сообщил в январе 2022: «Python получил престижную награду TIOBE Programming Language of the Year. Поздравляем! Это уже второй раз подряд. Награда присуждается языку программирования, получившему наибольший прирост рейтингов за один год. C# был на пути к тому, чтобы впервые в истории получить титул, но Python превзошёл C# в прошлом месяце». Но ведь они тоже анализируют поисковую выдачу Google.

Индекс Tiobe январь 2022
Индекс Tiobe январь 2022

Компания CodingNomads составила свой рейтинг на основе объявлений о вакансиях и заработной платы из LinkedIn в США и Европе. У неё тоже Python выбился вперёд.

Рейтинг CodingNomads
Рейтинг CodingNomads

Так что же учить?

Получается, что радикальных изменений в топе языков в принципе нет. Да, Python сегодня лидирует, чего не было много лет, но революцией это назвать сложно — он ведь и был в топах, а не ворвался внезапно в чарты и сразу всех покорил. Давайте тогда посмотрим на самые популярные сегодня языки программирования чуть пристальней. Должны же мы знать, что советовать детям друзей, когда на вопрос при встрече «кем хочешь работать?» они отвечают «программистом». В каждом популярном языке мы укажем: его описание, назначение, особенности, порог вхождения (необходимое количество усилий для освоения языка до такого уровня, чтобы найти работу) и мнения программистов о его популярности. Это языки: Python, Java, JavaScript, C, C++, C#, SQL/NoSQL. Мы считаем, что желательно выучить основы программирования на большинстве из них, чтобы не остаться за бортом современных требований работодателей. А дальше то, какой язык будет изучаться углублённо, будет зависеть от практики в конкретных проектах. В конце статьи — бонус с информацией по зарплатам за владение популярными языками программирования.

Python

Высокоуровневый интерпретируемый язык с динамической строгой типизацией. Это мультипарадигмальный язык, который поддерживает императивное, процедурное, структурное, объектно-ориентированное (прототипное), функциональное программирование и метапрограммирование. Причём считается, что реализация поддержки объектно-ориентированного программирования в Python — одна из самых понятных, благодаря чему (в том числе) Python довольно прост для начинающих программистов.

Назначение

Это язык программирования поистине общего назначения. Он работает с xml/html-файлами, http-запросами, изображениями, аудио- и видеофайлами, FTP. На нём можно создавать GUI (графический интерфейс), веб-сценарии бэкенд веб-сервисов, писать программы для робототехники и программировать математические и научные вычисления. Сегодня его активно используют в data science, машинном обучении, анализе данных.

Порог вхождения

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

Особенности

Главная особенность Python — это то, что разработка на нём идёт быстрее, чем на других языках. Собственно, он изначально задумывался как язык, помогающий повысить производительность разработчика, читаемость и качество кода. Его отличает лаконичный синтаксис, встроенная поддержка Unicode в строках, кроссплатформенность, поддержка модульности и выделение блоков кода пробельными отступами.

Мнения программистов о популярности

Популярность Python в последнее время объясняют широким изучением этого языка, распространённостью преподавания, а также тем, что студенты ищут ответы на одни и те же вопросы. Одной из причин называют тот факт, что на Python работают в области машинного обучения, которое показывает беспрецедентные темпы развития из-за прогресса ИИ. Также причинами называют рост доступности железа, на котором может работать Python, и то, что язык прекрасно вступает в контакт с мелкими утилитами.

Java

Строго типизированный объектно-ориентированный язык прикладного программирования (со статической типизацией). Ядро языка — библиотеки и классы.

Назначение

Общего назначения. Чаще всего разработка приложений и веб-разработка в области электронной коммерции, финансов. Сегодня Java — стандарт в разработке под Android и в сфере корпоративных приложений, в основном back-end.

Порог вхождения

Умеренно низкий, во многом благодаря JavaRush — интерактивному обучающему курсу. Тем не менее надо обладать базовым пониманием классов, фреймворков, пакетов и объектов.

Особенности

Программы на Java транслируются в байт-код Java, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байт-код и передающей инструкции оборудованию как интерпретатор. Достоинством подобного способа выполнения программ является полная независимость байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого есть соответствующая виртуальная машина. Другая особенность — гибкая система безопасности. Язык относительно медленный во время выполнения. Довольно сложно читать код.

Мнения программистов о популярности

Причинами популярности считают универсальность, кроссплатформенность, простоту использования и способность обрабатывать огромные объёмы данных. Это делает его идеальным языком для финансового сектора, банковского дела, фондового рынка. Java может эффективно работать в любой ОС, независимо от того, какая использовалась для написания исходного кода. Таким образом, он идеально подходит для написания приложений не только для смартфонов и компьютеров, но и для удалённых процессоров, датчиков и множества потребительских товаров (аппаратная совместимость). 

JavaScript

JS — мультипарадигменный язык, который поддерживает объектно-ориентированное (прототипное), обобщённое, функциональное, императивное, аспектно-ориентированное и событийно-ориентированное программирование. Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, функции как объекты первого класса.

Назначение

Уже долгие годы JavaScript — основной язык веб-разработки (frontend), для которой он и предназначен. Также его поле — это разработка игр, мобильных приложений и создание веб-серверов. Он часто применяется при разработке решений для blockchain, работе со смарт-контрактами в Ethereum. Чаще всего JavaScript используют как язык сценариев в браузерах для того, чтобы придать веб-страницам интерактивности, добавить интересные всплывающие эффекты, маленькие развлекательные игры.

Порог вхождения

Относительно высокий, поскольку для того, чтобы начать карьеру Frontend-разработчика, надо выучить не только JavaScript, но и его фреймворки — Angular JS, React, Node.js и другие. Кроме того, необходимо разобраться в HTML и CSS.

Особенности

Используется как встраиваемый язык для программного доступа к объектам приложений.

Мнения программистов о популярности

Именно JS делает сайты «живыми», нескучными, интерактивными. Можно начать писать в JavaScript прямо из браузера (любого), не настраивая среду разработки. 

C

С — стандартизированный процедурный компилированный язык общего назначения со статической типизацией. Даёт программисту возможность осуществлять непосредственный доступ к ячейкам памяти и регистрам компьютера, требуя при этом знания особенностей функционирования ЭВМ. Лаконичный, с богатым набором операторов.

Назначение

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

Порог вхождения

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

Особенности

Язык программирования С, как и С++ — это хорошее решение для разработчиков виртуальных игр. На Си можно создавать приложения, используя 3D-движок Unity, но в современной веб-разработке этот язык не используется. Язык Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для других языков, с которыми работают современные разработчики (C++, C#, Java и Objective-C). Также он завоевал популярность у программистов благодаря сочетанию возможностей языков высокого и низкого уровней.

Мнения программистов о популярности

С и С++ носят репутацию языков, которые помогут разработчику «выжать все соки» из железа. На C можно написать программу любого уровня сложности.

C++

Назначение

Широкая сфера применения: микроконтроллеры, IoT (интернет вещей), десктопные и мобильные приложения, кроссплатформенные приложения, веб, геймдев, системы прогнозирования, моделирования, обработки статистики. 

Порог вхождения

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

Особенности

Синтаксис довольно сложный для восприятия. Разработка на нём занимает значительное время, но даёт большие возможности. C++ используют для требовательных к быстродействию программ. Например, на нём написаны продукты Adobe.

Мнения программистов о популярности

Это прародитель всех объектно-ориентированных языков программирования, на его основе написано много известных приложений. Такие мастодонты не уходят из лидеров веками. С++ считают самым мощным языком программирования универсального назначения.

C#

С Sharp — объектно-ориентированный язык прикладного программирования со статической типизацией. Выпущен Microsoft и сегодня считается популярным усовершенствованием языка C++.

Назначение

Десктопные программы, бэкенд мобильных и веб-приложений, геймдев (игры на движке Unity), VR.

Порог вхождения

Средний. Умеренная сложность изучения. Гораздо проще освоить, зная синтаксис С/С++.

Особенности

Это главный язык платформы .NET.

Мнения программистов

Некоторые считают, что C# идеально подходит для создания мобильных приложений и игр. Другие уверены, что он будет использоваться и развиваться, пока есть пользователи Windows и существует сам Microsoft.

SQL/NoSQL

SQL (Structured query language) — это предметно-ориентированный язык структурированных запросов для управления реляционными БД, где данные хранятся в таблицах. Этот информационно-логический язык относится к декларативным языкам программирования. NoSQL или нереляционный SQL был создан для улучшения масштабируемости SQL. Базы данных NoSQL не используют таблицы.

Назначение

Управление базами данных, отчёты о продажах, управление бизнесом. SQL может находить и извлекать данные из реляционной БД, а также обновлять, добавлять или удалять записи. Базы данных NoSQL используются для хранения данных в иерархической сети или поддержки крупномасштабных облачных приложений.

Порог вхождения

Низкий. Изучение SQL идёт быстро, а синтаксис запросов прост и понятен.

Особенности

При всех своих изменениях SQL остаётся единственным механизмом связи между прикладным ПО и базой данных.

Мнения программистов о популярности

SQL считают стандартом обращения к базам данных. В последнее время популярность SQL/NoSQL возрастает из-за роста объёмов данных и, соответственно, необходимости быстро работать с базами данных.

Напоследок посмотрим годовые зарплаты по языкам программирования в США и Европе

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

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
А тех, кто дочитал, поздравляем с Международным днём родного языка! Ведь для программистов эти языки, порой, как родные :-) Давайте соберём свою статистику — на чём пишете?
27.94% Python95
20.59% Java70
26.47% JavaScript90
23.24% C/C++79
24.41% C#83
19.12% SQL/NoSQL65
15% Свой вариант в комментариях51
Проголосовали 340 пользователей. Воздержались 54 пользователя.
Теги:
Хабы:
Всего голосов 11: ↑5 и ↓6+1
Комментарии45

Информация

Сайт
www.sber.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия