Мы широко разделяем языки в этих рейтингах на пять категорий:
-
Главное направление: языки, присутствие которых и приблизительное положение в рейтинге не вызывает удивления, и мы ожидаем, что это произойдет в обозримом будущем.
-
Восходящие: языки, которые, по нашему мнению, имеют быстро растущие сообщества пользователей, со связанным гулом волнения. Популярность растущего языка, скорее всего, будет недавней, и ожидается, что она будет расти либо напрямую, либо косвенно за счет влияния на основные языки.
-
Заходящие: языки, которые все еще активно используются, в том числе для новых проектов, но которые, по нашему мнению, находятся в упадке, например потому что они менее широко используются, чем обычные языки, но им не хватает ажиотажа вокруг растущих языков.
-
Старые: языки, которые широко используются для поддержки устаревших систем и в которых, как мы ожидаем, разрабатывается очень мало нового кода.
-
Проблемно-ориентированные: языки, которые являются ключевыми для важных областей применения, но которые обычно не используются для разработки программного обеспечения общего назначения.
Это разделение на категории между ними искажено нашими личными предубеждениями, взглядами и опытом; Без сомнения, наши ставки на повышение и снижение будут противоречивыми.
Основной поток. Твердо входя в десятку из всех трех рейтингов, широко распространено мнение, что основные императивные и объектно-ориентированные языки - C, C++, C# и Java - являются мейнстримом. К ним относятся языки, используемые для реализации большей части системной инфраструктуры (C/C++), большой массив корпоративных приложений (Java/C#), большинство настольных компьютерных игр (C++) и большинство приложений для Android (Java).
Все эти языки статически типизированы. Мы также рассматриваем JavaScript, Python и Ruby - все с динамической типизацией - в качестве основного направления. JavaScript занимает первое место в рейтинге RedMonk, Python входит в первую пятерку всех рейтингов, а Ruby - в первую десятку всех, кроме рейтинга TIOBE, где он находится на 11-м месте.
Рост. Мы ощущаем большое волнение вокруг функциональных языков программирования и языков с первоклассными функциями функционального программирования, поэтому мы считаем, что Haskell, Clojure и Scala растут. Эти три языка представлены в нижней половине диаграммы RedMonk, но не отображаются в списке TIOBE. Один из авторов вспоминает, что в 2000 году его преподавали на Хаскелле как студенту, и в этот момент, как казалось, было мало общих ожиданий того, что язык, хотя и явно важный и влиятельный, станет ближе к мейнстриму; Ситуация очень изменилась 17 лет спустя. Мы также видим влияние Haskell и функционального программирования на новые языки, такие как Elm. Elm написан на Haskell и имеет синтаксис, похожий на Haskell, но компилируется в HTML, CSS и JavaScript для браузера, что делает его кандидатом на широкий круг задач веб-программирования.
Очевидно, что Swift становится популярным языком для разработки под iOS, отчасти как замена Objective-C. На синтаксис Swift явно влияют такие языки, как Ruby, хотя Swift имеет статическую типизацию. Поскольку Swift теперь имеет открытый исходный код, мы видим, что сообщество вокруг него растет и помогает улучшить его инструментальную экосистему.
За исключением Swift, который пользуется хорошей поддержкой в Xcode Apple, когда сравнивают инструментальную поддержку для этих растущих языков с поддержкой для языков, которые мы классифицируем как основные, контраст разителен. Если эти языки продолжат развиваться, мы ожидаем и надеемся, что вокруг них появится более совершенный инструментарий.
Некоторые языки, которые не занимают этих рейтингов, но которые мы рассматриваем как растущие, включают: Rust, который, безусловно, вызвал много академических волнений в связи с его системой типов; F# (хорошо поддерживается Visual Studio), которая, как и Scala, является мультипарадигмой с мощной функциональной поддержкой программирования; и Kotlin, который, будучи собранным вместе со своей IDE, мог бы избежать риска нехватки инструментов для нового языка. Еще один язык с синтаксисом, на который влияет Ruby - это Elixir, который нацелен на виртуальную машину Erlang и продвигает актерскую модель параллелизма.
Закат. Похоже, что в нишах, занимаемых Objective-C, PHP и Perl, постепенно доминируют Swift, JavaScript и Python/Ruby, поэтому мы рассматриваем эти языки как убывающие. Точно так же у нас сложилось впечатление, что Visual Basic - это ухудшающийся язык, его ниши, вероятно, заняты C#.
Наследие. Мы связываем присутствие Object Pascal (и его диалект Delphi) в первой десятке рейтинга TIOBE со значительным объемом такого кода, поддерживаемого в устаревшем программном обеспечении, и предполагаем, что этот язык редко используется для новых проектов.
Предметно-ориентированность. Отрадно видеть Scratch, образовательный язык, упомянутый в списке TIOBE; мы классифицируем это как предметно-ориентированный, так как его цель - учить программированию, а не производственные задачи.
Среди языков, используемых людьми, которые часто не считают себя программистами, R и MATLAB, вероятно, являются наиболее широко используемыми приложениями, включая науку о данных и машинное обучение. Мы также классифицируем язык запросов на диалекте PL/SQL как предметно-ориентированный.
У нас нет ощущения того, растет ли Go - занимает лидирующие 20 место в рейтинге RedMonk и TIOBE - или падает. У нас сложилось впечатление, что он играет полезную роль в реализации серверного программного обеспечения, ниши, которую он может продолжать занимать, не становясь мейнстримом. То же самое можно сказать о нескольких языках, не перечисленных в Таблице 1: Erlang, который занимает важную нишу распределенных систем, за которую его широко уважают; Фортран, часто язык, который предпочитают ученые; VHDL и Verilog в разработке процессоров; и, например, OpenCL и CUDA в мире параллельного программирования.
Из остальных языков, перечисленных в Таблице 1, CSS не является полноценным языком программирования, а «Shell» и «Assembly language» охватывают множество языков сценариев оболочки и ассемблера для разных платформ, которые мы не пытаемся классифицировать. (Кроме того, мы сомневаемся относительно высокого ранга «ассемблера» в рейтинге TIOBE.)
Перевод: Д.Ю.Караваев. 14.11.2019
Опубликовано: 2019.11.25, последняя правка: 2019.11.25 21:58
Добавить свой отзыв
Написать автору можно на электронную почту
mail(аt)compiler.su