Обложка статьи «Как дела у Go и так ли популярен Python, как кажется — тренды языков программирования»

Как дела у Go и так ли популярен Python, как кажется — тренды языков программирования

Выдержки из отчёта InfoQ за октябрь 2019

Адаптированный перевод статьи «Programming Languages InfoQ Trends Report - October 2019»

Ключевые моменты

InfoQ 2019 тенденции языков программирования

  • Появился Elixir — функциональный язык общего назначения с поддержкой многопоточности. Запускается на виртуальной машине Erlang. В текущем отчёте находится в категории инновационных.
  • Набирают популярность предметно-ориентированные языки, созданные для работы с инфраструктурой и облачными технологиями. Это такие инструменты, как Ballerina и Pulumi. Авторы отчёта также отметили язык Dark, который не был включён в тренды только потому, что находится на стадии беты. Rust перешёл из категории инновационных в категорию осваиваемых. Авторы InfoQ считают, что причина этому — инструменты для работы с инфраструктурой и манипуляций плоскостями данных, такие как Habitat и Linkerd 2.0. Facebook для разработки собственной криптовалюты использует именно этот язык.
  • Python продолжает набирать популярность, в основном благодаря тому, что его используют для анализа и обработки данных и обучения программированию.
  • Swift для iOS перешёл в категорию раннего большинства, вероятно, из-за популярности iOS в качестве среды для приложений. Kotlin показывает схожий прогресс.
  • В семействе .NET особый интерес вызывает .NET Core 3. Инструмент пока находится в категории инновационных, но имеет все шансы догнать .NET Core 2. А вот Visual Basic попал в категорию отстающих.

InfoQ 2019 .NET языки программирования

Мнения

Портал InfoQ опубликовал выдержки из обсуждений команды редакторов и специалистов, на основе которых и был сформирован октябрьский отчёт. Приводим их с сокращениями.

Абель Аврам

Абель Аврам, старший преподаватель кафедры информатики и автоматизации Политехнического университета Тимишоары

JetBrains опубликовала результаты исследования «Состояние экосистемы разработчиков 2019» (The State of Developer Ecosystem 2019), где по результатам опроса 7 000 разработчиков пришла к следующим выводам:

  • Java — самый популярный основной язык программирования;
  • JavaScript — наиболее часто применяемый язык;
  • Go — самый перспективный язык;
  • Python — самый изучаемый язык.

Go начал с доли в 8 % в 2017 году и в настоящее время достиг 18 %. Кроме того, больше всего разработчиков (13 %) указали Go в качестве языка, который хотели бы освоить.

StackOverflow отмечает, что в 2019 году Python обошёл Java по рейтингам и остаётся вторым самым любимым после Rust.

 

Артур Касалс

Артур Касалс, исследователь, работающий в области искусственного интеллекта и многоагентных систем

Хотя применение Rust всё ещё несколько ограничено и сам язык рассматривается больше как альтернатива C++, появление новых библиотек и использование этого языка крупными компаниями делают его потенциальным кандидатом в категорию осваиваемых языков.

Elixir набирает популярность на родине, в Бразилии. Его использует как минимум один крупный стартап, Movile.

 

Дилан Шиман

Дилан Шиман, генеральный директор SitePen и сооснователь Dojo

Go пока находится на стадии освоения. У языков жизненный цикл протекает куда медленнее, чем, например, у фреймворков, и Go ещё не достиг стадии повсеместного применения. Elixir и Elm, по моему мнению, также находятся на стадии освоения.

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

Также значительную популярность в последние годы набрали облачные IDE, CodeSandbox и StackBlitz. Они предоставляют широкий спектр возможностей как для браузерного редактирования, так и для интеграции с локальными инструментами разработки.

 

Чарльз Хамбл

Чарльз Хамбл, главный редактор InfoQ

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

Я всё больше слышу о Dark, хотя он всё ещё на стадии беты. В контексте ориентированных на инфраструктуру языков я нахожу это интересным.

Думаю, на .NET Core сосредоточены серьёзные усилия. Стоит перенести этот инструмент из инновационных в осваиваемые. Полагаю, при выходе .NET Core 3 стоит выделить его в отдельную ветвь и поместить в инновационные.

F# похоже повторяет судьбу Clojure для JVM. Выглядит довольно неплохо, но я не вижу серьёзного развития, как, впрочем, и упадка.

 

Вернер Шустер

Вернер Шустер, специалист по информационным технологиям из Wolfram

Думаю, Jython мёртв. Последний раз, когда я проверял сайт, он уже не обновлялся несколько лет, а в текущем состоянии он даже и рядом не стоял с Python 3.x.

Языки для инфраструктуры: похоже на новый тренд слияния некоторых новых языков и развёртывания.

  • Pulumi и подобные — Typescript;
  • Ballerina;
  • Unison Language — новый функциональный язык от разработчиков Scala/Haskell, но без монад. Пока ещё слишком рано его оценивать;
  • Dark Language — пока нет в публичном доступе.

Пока непонятно, к чему это может привести. Это слияние может оказаться просто неудачной веткой развития, а может стать первым шагом к новым фичам языка. Возможно, лет через 15 мы будем считать такой подход настолько же естественным, как использование подпрограмм.

Может быть, мы сейчас видим новое будущее wasm- программирования (браузер, сервер с WASI и тому подобное), а также новое возрождение нативных языков (serverless, с использованием виртуальных машин и контейнеров). Такой подход уменьшит привлекательность JVM/байткода и позволит всем просто использовать нативные версии языков (канонические версии, разрабатывавшиеся десятилетиями). Уточню — сказанное выше не касается нативных языков JVM, таких как Clojure, Scala, Kotlin и т.п.

 

Бен Эванс

Бен Эванс, ведущий инженер и специалист по технологии JVM в New Relic, Inc.

Похоже, большинство фанатов языка Elixir предпочитают его в основном из-за новизны и/или потому что у них так называемая «аллергия на Java» (обычно вызванная тем, что платформе уже больше 10 лет), но… Я не видел ничего на этом языке, что нельзя было довольно просто реализовать с помощью JVM (пусть даже немного больше повозившись) — при этом JVM гораздо лучше интегрирована с библиотеками.

 

Дастин Шульц

Дастин Шульц, ведущий программист, автор Pluralsight и популяризатор технологий

Ничего не имею против Python (мне даже нравится на нём писать), но я думаю, стоит отметить что, несмотря на популярность, его на самом деле редко используют в коммерческих целях. Я редко вижу большое, развёрнутое коммерческое приложение, написанное исключительно на Python. С него часто начинают, но потом переключаются на что-то более производительное.

 

Джонатан Аллен

Джонатан Аллен, ведущий разработчик в KPMG и ведущий редактор InfoQ по .NET

Если спросить у сообщества, у F# есть две проблемы:

  • слабая поддержка от Microsoft;
  • упор сделан на совместимость с C# в ущерб простоте использования;
  • он становится всё сложнее и сложнее, прямо как любят специалисты по информатике. Однако преподаватели F# сосредоточены на обучении людей, далёких от программирования и просто нуждающихся в скриптовом языке. Излишняя сложность затрудняет работу.

Также я думаю, что C# 8 быстро перейдёт в категорию осваиваемых. Люди просили обнуляемые ссылочные типы… Честно говоря, со времён .NET 1.

Не смешно? А здесь смешно: @ithumor