Для тех, кто тоже хочет стать айтишником, рассказываем, какие языки программирования популярны в 2024 году. Что выбирают разработчики и на чем пишут в топовых компаниях — разбираем в статье.
Дисклеймер
Мы будем опираться на рейтинги и отзывы разработчиков. Однако важно помнить, что в первую очередь языки необходимо выбирать под конкретные задачи. Например, для фронтенда пригодятся JavaScript и TypeScript. Для бэкенда необходимо знать PHP, Java, JavaScript, Go или С# — конкретный выбор зависит от специфики приложения и задач разработчика. А для анализа данных и работы с нейросетями понадобятся Python, Java, C или C#.
Также важно учесть, что в рейтингах упоминаются не только языки программирования. Например, можно встретить HTML и CSS.
Топ-10 языков программирования
Каждая компания или веб-сервис используют свою оценку рейтингов. Для объективности посмотрим ежегодные отчеты GitHub, Stack Overflow и TIOBE.
Рейтинги GitHub
Согласно данным ежегодного отчета по состоянию на конец 2023 года, разработчики отдают предпочтение следующим языкам:
Рейтинги рассчитываются по результатам исследования проектов в репозиториях на GitHub с открытым исходным кодом.
JavaScript уже более пяти лет — самый используемый язык на GitHub. А вот TypeScript впервые обогнал Java и вошел в топ-3. Этот язык стал базой для фронтенда — за счет строгой типизации и проверки типов он позволяет избежать ошибок во время разработки и избавляет от многих багов при деплое.
Сравнение языков в новых проектах показывает несколько иную картину. Здесь топ возглавляют 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, это самая высокая позиция в индексе, которую он когда-либо занимал.
На каких языках пишут разработчики крупных компаний
Результаты исследования частично отражают реальную картину. Если заглянуть в вакансии известных компаний или поговорить с руководителями команд, вновь увидим в числе самых используемых JavaScript (или его фреймворки), TypeScript, Python, Java, C++ и Go. Стек, разумеется, зависит от задач и используемого ПО — каждая команда пишет на чем-то своем и использует отдельный набор инструментов.
Вот что говорят разработчики из разных отделов и департаментов Selectel, Ozon, VK и Avito о своем стеке.
Selectel, команда DBaaS, отделы разработки интернет-проектов и развития SelectOS
Как и в любых крупных компаниях, в Selectel развитая система департаментов и отделов. Так, отдел разработки интернет-проектов работает над сайтом и порталом документации. Здесь фронтендеры используют JavaScript, точнее его фреймворк Vue (Nuxt) и библиотеку React.
В качестве основного фреймворка команда выбрала Vue(Nuxt) за его синтаксис и низкий порог вхождения. Однако была и другая причина. Он оказался более удобным для разработки сайта, на котором находится множество страниц с калькуляторами, и при этом позволял рендерить JavaScript на сервере.
Кроме JS фронтендеры работают с TypeScript, на нем держится основная бизнес-логика. Также приходится кодить на PHP для работы с WordPress — на этой CMS находится один из проектов компании, Академия Selectel.
Бэкендеры из команды облачных баз данных для большинства задач используют Python. На нем написаны API для управления услугами в панели управления. Также на этом языке разрабатывают внутренние сервисы для мониторинга, обслуживания и поддержки кластеров БД. Помимо Python бэкендеры работают с Go. Он необходим для поддержки Terraform и создания различных служебных программ, например экспортеров для Prometheus.
Отдел развития SelectOS работает с C/C++ для BIOS и BMC, при этом команда начинает присматриваться к Rust — привлекает безопасное управление памятью. Также для работы используют Node.js, на котором написан один из продуктов — мобильная ферма, но в будущем разработчики планируют перейти на Go из-за более оптимальной архитектуры для микросервисных систем.
Avito, команда мессенджера
По словам Алексея Никифора, Tech Unit Lead 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
О стеке VK рассказал Олег Мифле, 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.
Нам важно в короткий срок перепрофилировать студентов, дать им актуальные и прикладные знания для быстрого трудоустройства. Поэтому наши программы, как для офлайн, так и онлайн формата, актуализируются и дополняются ежегодно.
Как видно, курсы отображают ту же картину, что мы видим в рейтингах. Онлайн и офлайн-школы преподают те же языки, на которых пишут разработчики, поэтому можете опираться на их программы, даже если планируете обучаться самостоятельно.