- 20.06.2022
- 23 849
- 218
- 36
- Награды
- 10
- Пол
- Муж.
Репутация:
- Автор темы
- Администратор
- Модератор
- Команда форума
-
- #1
Дисклеймер
Мы будем опираться на рейтинги и отзывы разработчиков. Однако важно помнить, что в первую очередь языки необходимо выбирать под конкретные задачи. Например, для фронтенда пригодятся 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
основан на частоте упоминаний в поисковых системах. Аналитики берут для исследования данные из 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 развитая система департаментов и отделов. Так, отдел разработки интернет-проектов работает над сайтом и порталом документации. Здесь фронтендеры используют JavaScript, точнее его фреймворк Vue (Nuxt) и библиотеку React. В качестве основного фреймворка команда выбрала Vue(Nuxt) за его синтаксис и низкий порог вхождения. Однако была и другая причина. Он оказался более удобным для разработки сайта, на котором находится множество страниц с калькуляторами, и при этом позволял рендерить JavaScript на сервере.
Кроме JS фронтендеры работают с TypeScript, на нем держится основная бизнес-логика. Также приходится кодить на PHP для работы с WordPress — на этой CMS находится один из проектов компании, .
Бэкендеры из команды облачных баз данных для большинства задач используют 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.
«Нам важно в короткий срок перепрофилировать студентов, дать им актуальные и прикладные знания для быстрого трудоустройства. Поэтому наши программы, как для офлайн, так и онлайн формата, актуализируются и дополняются ежегодно», — генеральный директор «Эльбрус Буткемп» Георгий Бабаян.
Как видно, курсы отображают ту же картину, что мы видим в рейтингах. Можете опираться на программы таких школ, даже если вы планируете обучаться самостоятельно.
Топ-10 самых популярных языков программирования
1 место: Python
Язык Python активно используют в Data Science, машинном обучении и работе с ИИ, backend-разработке серверной части, GameDev, для автоматизации процессов, в частности, тестирования, а также задействуют при разработке десктопных и мобильных приложений.Преимущества | Нюансы |
---|---|
– высокоуровневый язык — простой синтаксис – Python — интерпретируемый язык — не нужно ждать, пока программа упакуется в исполняемый файл, как у С, С++ и других, что ускоряет разработку – кроссплатформенность — программы на Python запускаются на разных ОС – возможность быстрого прототипирования приложений – многообразие библиотек, документации и туториалов.. | – из-за интерпретируемости Python может быть медленнее других языков – отличается высоким потреблением памяти – динамическая типизация делает его менее эффективным для работы с большими объемами данных. |
2 место: C++
Это расширение языка C, которое включает ООП. C++ обеспечивает высокий уровень контроля над системными ресурсами и памятью. Его применяют в разработке видеоигр, компиляторов, высоконагруженных серверных приложений. Часто используют в системном программировании, при создании ОС и драйверов, для обработки фото, видео и звука, а также в финансовой сфере.Преимущества | Нюансы |
---|---|
– язык настолько эффективен с точки зрения использования ресурсов, что считается эталоном скорости работы, на который равняются другие ЯП – C ++ предлагает широкие возможности для оптимизации, благодаря чему можно создавать ПО с низким потреблением ресурсов – регулярно обновляется и дополняется. | – чтобы овладеть языком в совершенстве потребуются долгие годы, так как у C++ много тонкостей и не очевидных деталей – ошибки в готовом коде непросто выявить. |
3 место: Java
Java активно применяют в разработке встраиваемых систем, корпоративных, мобильных, трейдинговых, а также серверных приложений в сфере финансовых услуг, в web-разработке, для создания мобильных игр на платформе Android и в работе с Big Data.Преимущества | Нюансы |
---|---|
– высокоуровневый язык, больше похожий на человеческую речь – основан на принципах ООП – программы на Java также могут работать на разных ОС без необходимости изменения кода – большая библиотека с готовыми решениями для типичных задач. | – относительно низкая производительность по сравнению с другими ЯП – требует наличия виртуальной машины JVM для запуска программ – лицензионное соглашение подразумевает плату за использование определенных версий. |
4 место: C
C — компилируемый язык. Изначально он был создан для реализации операционной системы UNIX, но его по-прежнему широко используют в системном программировании, разработке ОС, ПО для микроконтроллеров, встроенных систем и драйверов устройств.Преимущества | Нюансы |
---|---|
– высокая производительность – возможность полного контроля над системой – эффективность и скорость выполнения – небольшой объем скомпилированных файлов. | – отсутствует поддержка ООП, работы со строками и многопоточности – из-за того, что язык низкоуровневый, для работы необходим большой опыт в программировании – могут возникнуть трудности при разработке больших проектов, так как у С нет встроенного сборщика мусора и разработчику придется вручную управлять памятью. |
5 место: C#
C# — язык от Microsoft, который изначально был создан, чтобы разрабатывать приложения для Windows. Его применяют для написания web-сервисов и программ, серверной логики сайтов, 3D-графики и VR, складских, логистических систем и приложений для автоматизации продаж, мобильных приложений, игр на базе Unity.Преимущества | Нюансы |
---|---|
– основан на принципах ООП – язык высокого уровня, напоминающий человеческий — чтобы его понимала машина, код нужно будет скомпилировать – кроссплатформенные среды выполнения и обширные ресурсы .NET framework – интегрированная среда разработки — Visual Studio – крупное сообщество и обширная документация. | – зависимость C# от платформы .Net может вызвать трудности для программистов IOS или Android — голый код на этом языке будет сложно использовать – несмотря на простоту в чтении, язык C# сложно освоить новичкам из-за большого количества библиотек и ресурсов для изучения. |
6 место: JavaScript
JavaScript — главная движущая сила интернета. Его используют для создания web-страниц, приложений, анимации и в серверной разработке. Кроме того, его активно применяют для создания игр, стриминговых сервисов и сайтов для совершения покупок.Преимущества | Нюансы |
---|---|
– большое сообщество разработчиков – позволяет создавать динамичные и современные web-интерфейсы – JavaScript легко изучить и использовать — у него простой синтаксис и объектно-ориентированная природа – разнообразная экосистема фреймворков, инструментов и библиотек – незаменим для frontend-разработки. | – JavaScript по-разному интерпретируется в разных браузерах, поэтому перед публикацией необходимо тестировать и запускать код на разных платформах – JavaScript медленнее, чем C++ или Java, за счет интерпретируемости — ПО на нем запускают с помощью другой программы. |
7 место: Visual Basic
8 место: Gо
Go или Golang — язык программирования с открытым исходным кодом, который был создан, чтобы решить трудности других языков при написании кода. Go — альтернатива Java и C++. Его применяют для разработки приложений реального времени: программ обмена мгновенными сообщениями и чатов, ПО для видеоконференций, онлайн-игр, систем со встроенным программным обеспечением и не только. С его помощью также развивают сети, создают инфраструктуру, в том числе облачную, и микросервисы.Преимущества | Нюансы |
---|---|
– простота и удобство использования – скорость выполнения — Golang напрямую компилирует код в машинный без использования интерпретатора – Golang хорошо масштабируется – с ним хорошо совместимы современные IDE. | – если в Python, чтобы выполнить задачу потребуется несколько строк, то с Go разработчику придется написать десятки строк – Go — молодой язык, у него небольшое сообщество по сравнению с другими ЯП и меньше учебных материалов и документации. |
9 место: Fortran
10 место: Delphi/Object Pascal
Последние темы в этом разделе:
- [Дмитрий Скоромнов] Основы системного администрирования (2024)
- [Анна Вичугова, Зоя Степчева] Проектирование сложных API: OpenAPI + AsyncAPI (2024)
- [Глеб Михайлов] [Stepik] SQL для анализа данных (2024)
- [Bogdan Stashchuk] [Udemy] Полный курс по MongoDB (2024)
- [Udemy] Полный учебный курс по Go. С Нуля до Героя (2019) [Engl]
- [Академия АйТи] Тестирование на проникновение и анализ безопасности. Базовый уровень (2024)
- [HTML Academy] Профессиональный онлайн-курс Vite (2024)
- [Дмитрий Чернов] Виртуализация Proxmox VE. Внедрение и эксплуатация. Расширенные возможности. Часть 2 (2024)
- [Udemy] [Рамзай Дупати] [ENG] Полный курс по сетевому взлому - от начинающего до продвинутого (2024)
- [infostart.ru] DevOps для 1С (2024)