Наталья Кайда 22 ноября 2023

🏆 Самые популярные языки программирования 2023

Составляем сводный рейтинг и обсуждаем особенности, преимущества, недостатки и причины популярности каждого языка.
🏆 Самые популярные языки программирования 2023

Хочешь уверенно проходить IT-интервью?

Готовься к IT-собеседованиям уверенно с AI-тренажёром T1!

Мы понимаем, как сложно подготовиться: стресс, алгоритмы, вопросы, от которых голова идёт кругом. Но с AI тренажёром всё гораздо проще.

💡 Почему Т1 тренажёр — это мастхэв?

  • Получишь настоящую обратную связь: где затык, что подтянуть и как стать лучше
  • Научишься не только решать задачи, но и объяснять своё решение так, чтобы интервьюер сказал: "Вау!".
  • Освоишь все этапы собеседования, от вопросов по алгоритмам до диалога о твоих целях.

Зачем листать миллион туториалов? Просто зайди в Т1 тренажёр, потренируйся и уверенно удиви интервьюеров. Мы не обещаем лёгкой прогулки, но обещаем, что будешь готов!

Реклама. ООО «Смарт Гико», ИНН 7743264341. Erid 2VtzqwP8vqy


На чем основана популярность языков

Популярность ЯП зависит от нескольких факторов.

Практичность. Языки, которые эффективно решают какую-то важную задачу, быстро набирают популярность. Например, JavaScript стал самым популярным языком для веб-разработки, поскольку первым обеспечил создание интерактивных элементов на веб-страницах. Несмотря на все свои недостатки (частично исправленные в TypeScript), он продолжает оставаться самым простым решением для фронтенда, в то время как старые конкуренты типа ActionScript, Java Applets и VBScript канули в Лету, а новые вроде Dart и Elm еще не обзавелись достаточным числом поклонников.

Технологические тренды оказывают сильное влияние на популярность языков программирования. Вот несколько примеров:

  • Бурное развитие машинного обучения и искусственного интеллекта подстегнуло рост использования Python, который стал одним из основных языков ИИ-разработки благодаря богатому выбору библиотек ML/AI.
  • Развитие мобильных технологий и приложений вызвало взлет популярности Swift (для iOS) и Java/Kotlin (для Android).
  • Появление JS-фреймворков для фронтенд-разработки (React, Angular, Vue и т.д.) сделало знание JavaScript обязательным для веб-разработчиков. Даже бэкендерам теперь не обойтись без основ JavaScript.
  • Интернет вещей и встраиваемые системы стимулируют рост популярности языков Rust и С/С++.
  • Популярность облачных технологий способствует росту использования Python, JavaScript, Go и Java в бэкенд-разработке и DevOps.
  • Контейнеризация и оркестровка контейнеров (Docker, Kubernetes) требуют навыков использования Go.
  • Рост популярности FaaS дал толчок к использованию JavaScript и Python для бессерверной разработки.

Простота изучения. Одна из причин популярности Python – простой и гибкий синтаксис, похожий на исполняемый псевдокод, который не отпугивает начинающих и позволяет максимально быстро перейти к разработке реальных приложений.

Сообщество и поддержка. Языки, вокруг которых быстро сформировалось большое и активное сообщество разработчиков, остаются на пике популярности долгие годы. Большие сообщества генерируют огромный объем бесплатных учебных материалов, от статей и мини-проектов до видео-туториалов и курсов, и помогают быстро решить проблемы новичков. Вокруг Python образовалось очень активное и дружелюбное сообщество, благодаря которому любой новичок может без проблем найти ответы на вопросы и помощь в освоении языка.

Требования рынка труда. Языки, знание которых выше оплачивается, легко привлекают новых разработчиков. Например, Java и C++ сохраняют высокую популярность благодаря востребованности на рынке и высоким зарплатам разработчиков.

Поддержка и развитие. Языки, которые активно поддерживаются и развиваются, пользуются повышенным спросом. Например, Java постоянно обновляется и улучшается, это расширяет сферу использования языка. JavaScript, который долгое время был языком фронтенда, теперь (благодаря появлению платформы Node.js) можно использовать для разработки бэкенда и API. Microsoft активно развивает C# и .NET, регулярно выпуская обновления и добавляя новые возможности – это поддерживает интерес к языку.

Универсальность. Языки, которые можно использовать в различных областях, быстро расширяют свою аудиторию. Например, Python широко применяется в машинном обучении, инженерных и научных расчетах, анализе данных, серверной разработке и автоматизации процессов.

Совместимость с другими языками и технологиями. Языки, которые хорошо совместимы с другими языками и технологиями, становятся сверхпопулярными, потому что на их основе можно создавать комбинированные фреймворки. Например, JavaScript отлично дополняет HTML и CSS, и все самые популярные фреймворки для разработки фронтенда используют JS/HTML/CSS в различных пропорциях и комбинациях. Kotlin создан как язык, полностью совместимый с экосистемой Java. Это позволило ему быстро завоевать популярность среди Android-разработчиков.

Производительность и эффективность. Если язык способен взаимодействовать с железом на низком уровне, обеспечивая максимальную производительность – он будет популярным во все времена, даже если у него сложный синтаксис, отпугивающий простых смертных. C++ широко используется везде, где критически важна производительность – в играх, графике, встроенных системах.

Скорость разработки. Этот показатель обычно не совпадает со скоростью работы самого языка, однако во многих сферах производительность ЯП не так важна, как простота и скорость разработки. На PHP можно очень быстро создавать веб-приложения – это сделало его очень популярным в свое время, хотя сейчас он активно вытесняется другими языками, в первую очередь Python, работать с которым еще проще – и быстрее.

🐍 Библиотека питониста
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека питониста»
🐍🎓 Библиотека собеса по Python
Подтянуть свои знания по Python вы можете на нашем телеграм-канале «Библиотека собеса по Python»
🐍🧩 Библиотека задач по Python
Интересные задачи по Python для практики можно найти на нашем телеграм-канале «Библиотека задач по Python»

Пара слов о рейтингах

Единого, самого-самого объективного и беспристрастного рейтинга популярности языков программирования не существует. Авторитетные платформы составляют собственные рейтинги по определенным критериям – и, поскольку критерии разные, то и рейтинги заметно отличаются друг от друга:

  • В некоторых рейтингах присутствуют языки, которые не используются для коммерческой разработки (учебный Scratch).
  • Во многие рейтинги входят специфические языки (SQL для работы с базами данных, MATLAB для одноименного пакета, VBA для приложений Microsoft).
  • В большинстве рейтингов есть языки программных оболочек Shell/Bash, которые используются для узких целей.
  • В топы всегда попадают HTML и CSS – языки разметки.
  • В некоторых рейтингах встречаются морально устаревшие языки (Visual Basic, Delphi).

Словом, нет такого рейтинга, который устроил бы всех. Но чуть ниже мы попробуем его составить:).

Самые авторитетные и цитируемые рейтинги

Рейтинг PYPL учитывает количество поисковых запросов в Google:

Рейтинг PYPL
Рейтинг PYPL

Ежеквартальный GitHub Language Stats отражает количество пулл-реквестов:

GitHub Language Stats
GitHub Language Stats

TIOBE Index основан на анализе упоминаний языков в поисковых системах:

TIOBE Index
TIOBE Index

Ежегодный рейтинг IEEE Spectrum использует 11 метрик, включая популярность языка в поисковых запросах, число репозиториев, количество разработчиков, зарплаты специалистов, упоминания в вакансиях и учебных курсах, технологические тренды:

IEEE Spectrum
IEEE Spectrum

Рейтинг языков StackOverflow составлен по результатам опроса 87 585 разработчиков:

Рейтинг языков StackOverflow
Рейтинг языков StackOverflow

RedMonk использует данные анализа активности на GitHub и StackOverflow:

RedMonk
RedMonk

Сводный рейтинг

На основе самых цитируемых рейтингов можно составить сводный. Критерии будут такими:

  • Язык должен входить в каждый из 6 популярных рейтингов, упомянутых выше.
  • Позиция в сводном рейтинге определяется средней позицией языка во всех 6 списках.

Скрипт для вычисления сводного рейтинга:

Скрипт для вычисления сводного рейтинга
        list3 = ['Python', 'C', 'C++', 'Java', 'C#', 'JavaScript', 'PHP', 'Visual Basic', 'SQL', 'Assembly language', 'Scratch', 'Fortran', 'Go', 'MATLAB', 'Kotlin', 'Pascal', 'Swift', 'Ruby', 'R', 'Rust'] 
list4 = ['Python', 'Java', 'C++', 'C', 'JavaScript', 'C#', 'SQL', 'Go', 'TypeScript', 'HTML', 'R', 'Shell', 'PHP', 'Ruby', 'SAS', 'Swift', 'Dart', 'Rust', 'Kotlin', 'Matlab'] 
list5 = ['JavaScript', 'HTML/CSS', 'Python', 'SQL', 'TypeScript', 'Bash/Shell', 'Java', 'C#', 'C++', 'C', 'PHP', 'PowerShell', 'Go', 'Rust', 'Kotlin', 'Ruby', 'Lua', 'Dart', 'Assembly', 'Swift'] 
list6 = ['JavaScript', 'Python', 'Java', 'PHP', 'C#', 'CSS', 'TypeScript', 'C++', 'Ruby', 'C', 'Swift', 'Shell', 'R', 'Go', 'Scala', 'Objective-C', 'Kotlin', 'PowerShell', 'Rust', 'Dart']

common_languages = list(set(list1).intersection(list2, list3, list4, list5, list6))

avg_positions = {}
for language in common_languages:
  positions = [list1.index(language), list2.index(language), list3.index(language), list4.index(language), list5.index(language), list6.index(language)]
  avg_positions[language] = sum(positions) / len(positions)

sorted_languages = sorted(common_languages, key=avg_positions.get)
print(*sorted_languages)
    

Результат:

  1. Python
  2. JavaScript
  3. Java
  4. C#
  5. PHP
  6. Go
  7. Ruby
  8. Swift
  9. Kotlin
  10. Rust

А теперь можно обсудить особенности, сферы применения, плюсы и минусы победителей подробнее.

ТОП-10 самых популярных языков программирования 2023

1. Python

Язык программирования Python
Язык программирования Python

Python – высокоуровневый, интерпретируемый язык программирования общего назначения. У него простой и понятный синтаксис, к тому же он располагает обширной стандартной библиотекой. Это делает его идеальным для начинающих программистов. Python используется для разработки веб-приложений, машинного обучения, анализа данных и многого другого.

Достоинства:

  • Простой и понятный синтаксис.
  • Обширная стандартная библиотека.
  • Развитая экосистема.
  • Широчайший выбор фреймворков и библиотек для быстрой разработки всевозможных приложений.
  • Высокая скорость разработки.
  • Огромное количество учебных материалов.
  • Кроссплатформенность.

Недостатки:

  • Низкая производительность по сравнению с компилируемыми языками.
  • Конфликты табов и пробелов.
  • Динамическая типизация.

Сферы применения:

  • Веб-разработка.
  • Машинное обучение.
  • Сбор и анализ данных.
  • Автоматизация процессов.
  • Научные и инженерные вычисления.
  • Системное администрирование.
  • Быстрое прототипирование и создание MVP.

Телеграм-каналы:

2. JavaScript

Язык программирования JavaScript
Язык программирования JavaScript

JavaScript – один из наиболее популярных языков программирования в мире. Это основной язык интернета, изначально созданный для работы в браузере. Синтаксис JavaScript похож на С и Java, но при этом язык имеет собственные уникальные особенности.

JavaScript поддерживает объектно-ориентированное, императивное и функциональное программирование. Широко используется для создания интерактивных веб-страниц, веб-приложений, серверных приложений (с помощью Node.js), мобильных приложений (с помощью React Native) и многого другого.

Преимущества:

  • Универсальность. Используется для веб-разработки, серверного программирования, мобильной разработки, игр и многого другого.
  • Довольно простой синтаксис.
  • Одинаково работает во всех браузерах и на всех платформах.
  • Обширная экосистема фреймворков и библиотек.
  • Асинхронность и событийно-ориентированная модель.

Недостатки:

  • Слабая типизация, и как следствие – высокий риск ошибок.
  • Низкая производительность по сравнению с компилируемыми языками.
  • Не подходит для ресурсоемких приложений из-за особенностей управления памятью.
  • Потенциальные проблемы с безопасностью из-за динамической природы.

Сферы применения:

  • Веб-разработка.
  • Мобильная разработка с React Native.
  • Разработка браузерных игр и графики.
  • Интернет вещей и смарт-устройства.
  • Разработка децентрализованных приложений на блокчейне, создание смарт-контрактов.

Телеграм-канал:

3. Java

Язык программирования Java
Язык программирования Java

Java – кроссплатформенный, строго типизированный язык, хорошо подходящий для крупных проектов, где важна производительность и безопасность. Популярен в корпоративном секторе и финансово-банковской сфере.

Достоинства:

  • Кроссплатофрменность. Программы компилируются в байт-код, который работает на любой ОС с JVM.
  • Высокая производительность.
  • Надежность и безопасность.
  • Большое сообщество разработчиков и обширная экосистема библиотек.

Недостатки:

  • Нуждается в компиляции.
  • Многословный синтаксис, сложный для начинающих.
  • Потребляет много памяти во время выполнения из-за JVM.

Сферы применения:

  • Разработка крупных корпоративных систем и финансового ПО.
  • Мобильная разработка (Android).
  • Настольные приложения.
  • Встроенные и IoT системы.
  • Big Data и машинное обучение.
  • Бэкенд и серверные приложения.

Телеграм-каналы:

4. C#

Язык программирования C#
Язык программирования C#

C# – это язык программирования от компании Microsoft, предназначенный для разработки приложений на платформе .NET. Он обладает высокой производительностью, надежностью и безопасностью. C# используется для создания веб-приложений, игр, корпоративных систем и высоконагруженных платформ.

Преимущества:

  • Современный объектно-ориентированный язык с чистым и лаконичным синтаксисом.
  • Строгая статическая типизация обеспечивает высокую надежность кода.
  • Автоматическое управление памятью упрощает разработку.
  • Работает на множестве платформ благодаря .NET Framework и Mono.
  • Богатая библиотека классов в .NET Framework позволяет быстро создавать приложения.

Недостатки:

  • Требует наличия .NET фреймворка.
  • Меньшее сообщество разработчиков.
  • Менее гибок по сравнению с динамическими языками вроде Python.

Сферы применения:

  • Разработка настольных приложений под Windows.
  • Разработка мобильных приложений под Android и iOS.
  • Веб-разработка с использованием ASP.NET Framework.
  • Разработка игр на платформе Unity.
  • Программирование для встроенных и IoT устройств.

Телеграм-канал:

5. PHP

Язык программирования PHP
Язык программирования PHP

PHP – скриптовый язык программирования, созданный специально для веб-разработки.

Преимущества:

  • Невысокий порог входа. PHP относительно прост в изучении и использовании, это делает его доступным для начинающих разработчиков.
  • Большое сообщество.
  • Множество библиотек и фреймворков.
  • Поддерживается всеми хостинг-провайдерами,
  • Используется в самой популярной CMS – WordPress.

Недостатки:

  • Смешивание кода с HTML.
  • Сложности с безопасностью. Разработчикам необходимо уделять особое внимание вопросам безопасности и не смешивать код с запросами к базе данных.
  • Специфичный синтаксис с C-подобными конструкциями.
  • Не самая лучшая поддержка ООП по сравнению с другими языками.
  • Неэффективность при работе с большими объемами данных. Для повышения производительности необходимо использовать соответствующие методы оптимизации.

Телеграм-канал:

6. Go

Язык программирования Go
Язык программирования Go

Go (Golang) – статически типизированный, компилируемый язык программирования, разработанный в Google. Это относительно новый, но стремительно набирающий популярность язык. Он был создан для разработки высокопроизводительных, эффективных, масштабируемых и простых в поддержке приложений. Поддерживает многопоточность, имеет встроенный сборщик мусора и предоставляет полную поддержку Unicode. Хорошо подходит для сетевого программирования, облачных сервисов и задач, где важна высокая производительность.

Преимущества:

  • Высокая производительность.
  • Безопасность. Go имеет встроенные механизмы безопасности, которые помогают защитить приложения от атак.
  • Многопоточность. Go поддерживает многопоточность с помощью горутин и каналов, что упрощает написание кода для мощных приложений. Это делает Go подходящим для создания приложений с микросервисной архитектурой.
  • Быстрая компиляция и небольшой размер бинарников.
  • Поддержка кросс-компиляции.

Недостатки:

  • Относительная сложность для начинающих.
  • Меньшее количество библиотек по сравнению с Java или C#.
  • Отсутствие наследования в классическом понимании.

Сферы применения:

  • Веб-приложения и облачные сервисы.
  • Сетевое и системное программирование.
  • Микросервисы.
  • DevOps и системное администрирование.

Телеграм-каналы:

7. Ruby

Язык программирования Ruby
Язык программирования Ruby

Ruby – высокоуровневый, интерпретируемый объектно-ориентированный язык программирования, созданный для упрощения разработки и поддержки приложений.

Преимущества:

  • Лаконичный и легко читаемый синтаксис, похожий на Perl, обеспечивает высокую скорость разработки.
  • Мощный фреймворк Ruby on Rails, который использует ORM для взаимодействия с базами данных и упрощает процесс создания сложных веб-приложений.
  • Поддержка объектно-ориентированного и функционального программирования.
  • Активное и доброжелательное сообщество. Сообщество Ruby открыто для новичков, что облегчает изучение и использование языка.
  • Автоматическое управление памятью (сборка мусора).
  • Метапрограммирование. Ruby позволяет создавать и изменять классы и методы во время выполнения программы, что может быть полезно для создания расширяемых и адаптируемых приложений.

Недостатки:

  • Меньшая популярность по сравнению с языками вроде Java или Python.
  • Не такой широкий выбор библиотек и инструментов, как у Python или JavaScript.
  • Не самая высокая производительность, особенно при выполнении сложных операций и обработке больших объемов данных.

Сферы применения:

  • Веб-приложения.
  • Облачные сервисы.
  • Мобильная разработка для iOS и Android на фреймворке RubyMotion.

8. Swift

Язык программирования Swift
Язык программирования Swift

Swift – современный язык программирования, который сочетает в себе высокую производительность, безопасность, простоту и мощность. Создан для разработки приложений под iOS и macOS.

Преимущества:

  • Производительность. Swift работает быстрее, чем интерпретируемые языки типа JavaScript.
  • Безопасность. Использует статическую типизацию и имеет встроенную поддержку для управления памятью.
  • Простота изучения и использования. Swift имеет простой и понятный синтаксис, что делает его доступным для начинающих разработчиков.
  • Мощность и гибкость. Позволяет создавать сложные приложения с широкими функциональными возможностями. Имеет встроенную поддержку работы с сетями, базами данных и потоковой обработкой.

Недостатки:

  • Ограниченная область применения. Swift используется только в экосистеме Apple.
  • Недостаток поддержки. Это молодой язык, и новичкам может не хватать бесплатных учебных материалов, готовых проектов, обмена опытом.

Сферы применения:

  • Мобильные приложения для iPhone, iPad и Mac.
  • Десктопные приложения для macOS.
  • Игры для iOS и macOS.

Телеграм-канал:

9. Kotlin

Язык программирования Kotlin
Язык программирования Kotlin

Kotlin – статически типизированный, компилируемый, объектно-ориентированный язык программирования с поддержкой многопоточности. Создан как более современная и безопасная альтернатива Java. Широко применяется для разработки Android-приложений.

Преимущества:

  • Высокая производительность и безопасность, благодаря которым язык отлично подходит для серверной разработки.
  • Совместимость с Java. Kotlin полностью совместим с Java, что позволяет разработчикам легко переключаться между языками.
  • Синтаксис Kotlin отличается от Java большей компактностью и выразительностью.
  • Интеграция с Android. Kotlin полностью интегрирован с платформой Android, что упрощает разработку приложений для этой платформы.

Недостатки:

  • Более низкая скорость компиляции, чем у Java.
  • Пока еще малочисленное сообщество разработчиков.

Сферы применения:

  • Разработка Android-приложений. Kotlin является предпочтительным языком для разработки Android-приложений, поскольку он поддерживается Google и интегрирован в Android Studio.
  • Серверная разработка. Kotlin используется для разработки микросервисов и бэкенда, чаще всего на фреймворке Ktor.

Телеграм-канал:

10. Rust

Язык программирования Rust
Язык программирования Rust

Rust – высокопроизводительный, безопасный и мощный язык программирования, который подходит для разработки широкого спектра приложений. Сочетает в себе принципы системного программирования и высокоуровневых языков. Он может быть сложным для изучения и использования, но взамен предлагает множество преимуществ, которые полностью компенсируют усилия разработчика.

Преимущества:

  • Высокая производительность. Rust компилируется в машинный код. Сопоставим по производительности с C и C++, но при этом обладает большей безопасностью и гибкостью. Поддерживает многопоточность и асинхронное программирование.
  • Интеграция с менее производительными языками. Фреймворк PyO3 позволяет писать нативные модули Python на Rust, что многократно повышает производительность Python-приложений.
  • Безопасность. Rust предотвращает использование неинициализированной памяти и появление утечек памяти благодаря системе автоматического сбора мусора и управления ресурсами.
  • Мощность и гибкость. Rust позволяет создавать сложные приложения с широкими функциональными возможностями.

Недостатки:

  • Сложность. Rust может быть сложным для изучения и использования, особенно для разработчиков, которые привыкли к более простым языкам программирования вроде Python.
  • Небольшое (пока) сообщество. Новичкам сложнее найти поддержку опытных коллег, чем в сообществах более зрелых языков.

Сферы применения:

  • Системное программирование (драйверы устройств, операционные системы и микроконтроллеры).
  • Веб-серверы, микросервисы и облачные приложения.
  • Разработка игр.

А как вы подходили к выбору языка – обращали внимание на рейтинги популярности или следовали личным предпочтениям? Расскажите в комментариях!

Комментарии

ВАКАНСИИ

Добавить вакансию
Hotel Search Team Lead (Golang)
по итогам собеседования
Golang-разработчик
Пермь, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ