Сегодня журнал IEEE Spectrum, выпускаемый известной международной организацией IEEE, опубликовал шестой ежегодный рейтинг языков программирования. Как утверждает издание, они провели некоторые изменения во внутренней логике ранжирования языков, учитывая, как и общее количество проектов, так и узкую специализацию и популярность в своей области применения.
Данный подход позволяет обойти два фундаментальных препятствия на пути любых попыток определить популярность языков программирования: во-первых, никто не может на самом деле посмотреть через плечо каждого программиста по всему миру, когда они садятся за работу, и во-вторых, язык, являющийся краеугольным камнем одной области программирования, может быть совершенно неуместен в другой. Spectrum в своём рейтинге использует 11 метрик и данные из 8 источников. Затем издание применяет для обработки полученных результатов ряд весовых коэффициентов, которые оптимизированы, например, и для тех читателей, кто ищет новую работу, или для тех, кто хочет погрузиться в сторонний проект с открытым исходным кодом. Иначе говоря, коэффициенты созданы с учетом типичного читателя журнала Spectrum, и потому данный рейтинг несколько отличается от его аналогов, поэтому давайте посмотрим, что у них получилось.
Хотя изменения в весовых коэффициентах означают, что мы должны быть осторожны при непосредственном сравнении рейтингов этого года с прошлогодними, общая картина не подверглась значительным изменениям: Python уверенно лидирует. Его популярность в немалой степени обусловлена огромным количеством доступных специализированных библиотек, особенно в области искусственного интеллекта и машинного обучения, например, Keras, которая является одним из наиболее мощных решений для глубокого обучения, предоставляя интерфейсы для TensorFlow, CNTK и Theano. Что интересно, глубокое обучение — не единственная область, где Python установил своё превосходство, которого нельзя было предсказать на момент, когда язык был впервые выпущен в 1991 году. Резкое увеличение вычислительной мощности микроконтроллеров привело к тому, что встроенные версии Python, такие как CircuitPython и MicroPython, также становятся всё более популярными среди производителей.
Далее в рейтинге идут Java, C и C++, группа языков, члены которой давно боролись друг с другом и с Python за первое место, хотя с новыми скорректированными коэффициентами расстояние между этими соперниками увеличилось, например, C++ набрал на целых 12,5 балла меньше, чем Python по 100 бальной шкале. Хрустящий цифрами язык R завершает пятерку лучших. Несмотря на то, что он является гораздо более специализированным языком, чем другие, он сохраняет свою популярность в последние годы благодаря тому, что мир испытывает постоянно растущую необходимость в обработке больших наборов данных, а R чувствует себя в таких задачах просто замечательно.
Ещё ниже в рейтинге расположился Matlab — проприетарный язык, разработанный MathWorks и предназначенный для сложных научных вычислений. Его появление в рейтинге может быть для некоторых сюрпризом, но оно просто отражает выдающуюся роль данного языка в аппаратной инженерии, особенно для тех, кто заинтересован в запуске различных симуляций или создании систем управления с помощью графического пакета MathWorks Simulink.
Ниже первого десятка в рейтинге расположились Arduino под номером 11 и HTML/CSS под номером 12. В предыдущие годы некоторые читатели Spectrum жаловались, что ни один из них не должен появляться в списке языков программирования. В случае с Arduino аргумент состоит в том, что такого языка просто не существует, что на самом деле это семейство аппаратных платформ, на которых работает специальный язык, который должен называться Wiring (а иногда C или C++). Здесь в Spectrum руководствуются простым прагматизмом: сталкиваясь с вопросом программирования устройств на Arduino, подавляющее большинство разработчиков отправляют в Google такие запросы, как «Arduino Code for…», а не, например, «Wiring Code for…». Выбирая имя де-факто, в издании решили избегать сбрасывания со счёта популярности тех или иных платформ и программ, написанных для Arduino и подобных микроконтроллеров.
Точно такого же подхода Spectrum придерживаются касаемо HTML с возражениями о том, что это не настоящий язык программирования, так как он не имеет ветвлений или циклических конструкций. Но, учитывая огромную популярность HTML и CSS среди разработчиков, и тот факт, что они применяются в миллиардах программных продуктов, издание считает, что любые академические аргументы о полноте по Тьюрингу и т. д. не имеют тут никакого значения. Язык разметки остается языком.
Наконец, некоторые старые и многими давно забытые языки программирования всё ещё живы и даже продолжают развиваться. В частности, несмотря на то, что ему более 60 лет, Fortran всё ещё занимает 38-е место, вероятно, из-за огромного количества оставшихся в наследство материалов и способности до сих пор быть чрезвычайно удобным языком для научных вычислений. Последний стандарт Fortran был выпущен достаточно недавно, в конце 2018 года, и включает в себя улучшения в совместимости с C и поддержке сложных параллельных вычислений.