Высокие зарплаты, отсрочка от армии, ипотека с пониженной процентной ставкой — хорошие IT-специалисты востребованы на рынке и могут рассчитывать на льготы от государства. Для тех, кто тоже хочет стать айтишником, рассказываем, какие языки программирования популярны в 2024 году. Что выбирают разработчики и на чем пишут в топовых компаниях — разбираем в статье.
Дисклеймер
Мы будем опираться на рейтинги и отзывы разработчиков. Однако важно помнить, что в первую очередь языки необходимо выбирать под конкретные задачи. Например, для фронтенда пригодятся JavaScript и TypeScript. Для бэкенда необходимо знать PHP, Java, JavaScript, Go или С# — конкретный выбор зависит от специфики приложения и задач разработчика. А для анализа данных и работы с нейросетями пригодится Python, Java, C или C#.
Также важно учесть, что в рейтингах упоминаются не только языки программирования. Например, можно встретить HTML и CSS.
Топ-10 языков программирования
Каждая компания или веб-сервис используют свою оценку рейтингов. Для объективности посмотрим ежегодные отчеты GitHub, StackOverflow и TIOBE.
Рейтинги GitHub
Согласно данным ежегодного отчета по состоянию на конец 2023 года, разработчики отдают предпочтение следующим языкам:
Частота использования языков (в процентом соотношении).
Рейтинги рассчитываются по результатам исследования проектов в репозиториях на GitHub с открытым исходным кодом.
JavaScript уже более пяти лет — самый используемый язык на GitHub. А вот TypeScript впервые обогнал Java и вошел в топ-3. Этот язык стал базой для фронтенда — за счет строгой типизации и проверки типов он позволяет избежать ошибок во время разработки и избавляет от многих багов при деплое.
Динамика популярности языков с 2019 по 2023 год.
Сравнение языков в новых проектах показывает несколько иную картину. Здесь топ возглавляют Rust, Lua и TypeScript. Первый в этом рейтинге Rust — статически типизированный язык программирования. В нем типы переменных и выражений определяются и проверяются в момент компиляции, что повышает безопасность памяти и обнаружение ошибок. На втором месте Lua — относительно простой и расширяемый скриптовый язык. Как и Rust, он располагает безопасным окружением и автоматическим управлением памятью. TypeScript замыкает тройку — как и в общем рейтинге.
Рейтинги StackOverflow
StackOverflow использует другую механику для расчетов. Здесь в основе исследования лежат опросы: разработчики указывают языки, которые они использовали для проектов в текущем году и хотели бы использовать в будущем.
Если говорить о наиболее используемых языках, то в топе вновь JavaScript, Python и TypeScript. Если же сравнивать по критерию «желанности», то большинство разработчиков хотели бы писать проекты на Rust — 84%. На втором месте — Elixir с 73%, на третьем — TypeScript и Zig.
Синими точками показан процент разработчиков, которые уже используют язык. Красными — процент желающих использовать язык в будущем.
Рейтинги TIOBE
Индекс TIOBE основан на частоте упоминаний в поисковых системах. Аналитики берут для исследования данные из 25 поисковиков (и сервисов с поиском), среди которых Google и VK. При этом результаты выдачи Яндекса и Mail.ru не учитываются.
Согласно индексу TIOBE, в феврале 2024 года наиболее упоминаемыми языками стали Python, С и С++. Также в десятку вошел Go — язык от компании Google, это самая высокая позиция в индексе, которую он когда-либо занимал.
Популярный Rust в индексе занимает лишь 18 строку, а TypeScript — 39. Однако повторим, индекс показывает не самые используемые языки, а наиболее упоминаемые.
На каких языках пишут разработчики крупных компаний
Результаты исследования частично отражают реальную картину. Если заглянуть в вакансии известных компаний или поговорить с руководителями команд, вновь увидим в числе самых используемых JavaScript (или его фреймворки), TypeScript, Python, Java, C++ и Go. Стек, разумеется, зависит от задач и используемого ПО — каждая команда пишет на чем-то своем и использует отдельный набор инструментов.
Вот что говорят разработчики из разных отделов и департаментов Selectel, Ozon, VK, Avito о своем стеке.
Selectel, отдел разработки интернет-проектов и команда DBaaS
Как и в любых крупных компаниях, в Selectel развитая система департаментов и отделов. Так, отдел разработки интернет-проектов работает над сайтом selectel.ru и порталом документации. Здесь фронтендеры используют JavaScript, точнее его фреймворк Vue (Nuxt) и библиотеку React. В качестве основного фреймворка команда выбрала Vue(Nuxt) за его синтаксис и низкий порог вхождения. Однако была и другая причина. Он оказался более удобным для разработки сайта, на котором находится множество страниц с калькуляторами, и при этом позволял рендерить JavaScript на сервере.
Кроме JS фронтендеры работают с TypeScript, на нем держится основная бизнес-логика. Также приходится кодить на PHP для работы с WordPress — на этой CMS находится один из проектов компании, Академия Selectel.
Бэкендеры из команды облачных баз данных для большинства задач используют Python. На нем написаны API для управления услугами в панели управления. Также на этом языке разрабатывают внутренние сервисы для мониторинга, обслуживания и поддержки кластеров БД. Помимо Python бэкендеры работают с Go. Он необходим для поддержки Terraform и создания различных служебных программ, например экспортеров для Prometheus.
Разработчики из направления программно-аппаратных решений используют C/C++ для BIOS и BMC, при этом команда начинает присматриваться к Rust — привлекает безопасное управление памятью. Также для работы используют Node.js, на котором написан один из продуктов — мобильная ферма, но в будущем разработчики планируют перейти на Go из-за более оптимальной архитектуры для микросервисных систем.
Avito, команда мессенджера
По словам Алексея Никифора, тимлида команды мессенджера, бэкенд-разработчики работают с Go, так как этот язык идеально подходит для микросервисов. Фронтендеры используют TypeScript, для разработки на Андроид – Kotlin, а для IOS – Swift, так как эти языки уже практически стали стандартами индустрии на своих платформах.
«В личных проектах я использую еще и Python, это очень удобный язык для работы с данными. Наличие таких инструментов, как Pandas, NumPy и Matplotlib, делает его удобным для задач, когда из сырого массива данных нужно что-то понять или вычленить», — Алексей Никифоров.
Ozon, отдел разработки платформы A/B-тестов
Руководитель разработки платформы A/B-тестов Евгений Пак рассказал о стеке, принятом в своей команде. Так, разработка включает три направления задач, и для каждой приходится использовать свой стек.
Первое направление — скоростная отдача информации про A/B тесты, в которые попал пользователь при высокой частоте запросов (высоком RPS). Здесь разработчики сталкиваются с настоящим HighLoad и для решения данной задачи используют Golang. Этот язык выбрали за его высокую производительность, статическую типизацию, простоту кода и удобные инструменты для поддержки параллельных вычислений. К тому же Golang — один из основных языков программирования в компании.
Вторая группа задач связана со скоростным расчетом метрик всех экспериментов Ozon. Здесь приходится работать с Big Data: каждый день обрабатывать терабайты информации и успевать рассчитать данные к заданному времени. Основной язык программирования для данных целей — Python, он обеспечивает удобную интеграцию с Hadoop. Кроме того, Python используют аналитики всего Ozon.
И третье направление — методологические исследования по ускорению расчета, использованию различных стат критериев, решению проблем достоверности данных. Здесь приходится заниматься аналитическими задачами, и для этого вновь используют Python.
VK, VK Mini Apps
Олег Мифле, backend разработчик в VK, рассказал, что программисты в компании пишут на Kotlin, Swift, Go, Python и C/C++. Каждая команда использует свой язык. Например, разработчики, которые отвечают за платформу VK Mini Apps (мини-приложения), используют PHP для бэкенда и React для фронтенда.
PHP-код здесь транслируется в C++ через компилятор kphp, который разработан VK и доступен в open source. Это накладывает свои ограничения на разработку. Например, некоторые функции традиционного PHP становятся недоступны. Но в это же время дает свои преимущества: программисты получают «честную» асинхронность, которую активно применяют для ускорения запусков мини-приложений.
Каким языкам учат на курсах
Проверить актуальность языков можно и по учебным программам онлайн-школ, пусть это и не самый очевидный способ. Как правило такие организации следят за трендами и обучают студентов тому стеку, который прямо сейчас используется на рынке разработки.
В 2024 году EdTech представлен десятками компаний — от узкоспециализированных, вроде Хекслета, до крупных широкопрофильных онлайн-школ, например SkyPro. Большинство из них предлагает курсы для фронтендеров, на которых студенты изучают верстку и программируют на JS или одном из его фреймворков. Также популярны программы по Python, Java, Go, PHP, Ruby, и 1С.
Есть компании, которые обучают не только онлайн, но и офлайн, например «Эльбрус Буткемп». Здесь обучение ведут по двум направлениям: веб-разработка и Data Science. Разработчики изучают JavaScript, React, TypeScript, Node.js, а также различные инструменты и библиотеки. Студенты Data Science осваивают языки Python и SQL.
«Нам важно в короткий срок перепрофилировать студентов, дать им актуальные и прикладные знания для быстрого трудоустройства. Поэтому наши программы, как для офлайн, так и онлайн формата, актуализируются и дополняются ежегодно», — генеральный директор «Эльбрус Буткемп» Георгий Бабаян.
Как видно, курсы отображают ту же картину, что мы видим в рейтингах. Можете опираться на программы таких школ, даже если вы планируете обучаться самостоятельно.
А вы согласны с рейтингами? Поделитесь в комментариях своим мнением и расскажите, какой язык программирования вы используете.
Комментарии (6)
SWATOPLUS
20.03.2024 13:59JavaScript уже более пяти лет — самый используемый язык на GitHub. А вот TypeScript впервые обогнал Java и вошел в топ-3. Этот язык стал базой для фронтенда — за счет строгой типизации и проверки типов он позволяет избежать ошибок во время разработки и избавляет от многих багов при деплое.
В тайпскрипте нет строгой типизации, есть статическая.
В статье много воды и каши, она только запутает тех, кто задаётся этим вопросом.
Учить нужно то, что позволит решить поставленные задачи. Например что бы устроиться на работу нужно учить то, на что есть спрос у работодателей. А для саморазвития -- то что поможет расти карьерно или что можно применить в быту. Здесь анализа рынка труда или лайфхаков как решить бытовую проблему программированием мы не видим, только индексы без каких либо выводов. Ну и не понятно зачем вообще упоминать TIOBE.
Статья ради статьи.
serginho
20.03.2024 13:59+2В тайпскрипте нет строгой типизации, есть статическая.
Есть статическая/динамическая, и строгая/нестрогая. Вы путаете теплое с мягким. Строгая типизация в тайпскрипте есть.
kozlov_de
20.03.2024 13:59+2Про c# ничего не сказали
Хотя он на 2м месте по желанности. И в отличие от Раст распространен
domix32
20.03.2024 13:59TIOBE.
Это вот эти ребята, у которых Scratch в Top-10? Это вы конечно смело. А где он кстати?
Krey
20.03.2024 13:59Что там за мифические разработчики авито упомянаются? Никаких изменений в этом сервисе годами не видно, может у них релиз раз в 5 лет?
Alexandroppolus
Интересно, в этих графиках пользователи TypeScript - это подмножество пользователей JavaScript, или разные?