Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

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

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

22К открытий22К показов

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

Как дела у Go и так ли популярен Python, как кажется — тренды языков программирования 1
  • Появился 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 попал в категорию отстающих.
Как дела у Go и так ли популярен Python, как кажется — тренды языков программирования 2

Мнения

Портал 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.

 

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

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

 

Не думаю, что Pony продвинулся дальше категории инновационных, как это ни печально. Мне нравится этот язык, несмотря на то, что я нахожу его систему типов довольно сложной. И я думаю, над ним проделана впечатляющая работа, однако вокруг языка пока сформировалось слишком маленькое сообщество.Я всё больше слышу о Dark, хотя он всё ещё на стадии беты. В контексте ориентированных на инфраструктуру языков я нахожу это интересным.Думаю, на .NET Core сосредоточены серьёзные усилия. Стоит перенести этот инструмент из инновационных в осваиваемые. Полагаю, при выходе .NET Core 3 стоит выделить его в отдельную ветвь и поместить в инновационные.F# похоже повторяет судьбу Clojure для JVM. Выглядит довольно неплохо, но я не вижу серьёзного развития, как, впрочем, и упадка.

 

Думаю, Jython мёртв. Последний раз, когда я проверял сайт, он уже не обновлялся несколько лет, а в текущем состоянии он даже и рядом не стоял с Python 3.x.Языки для инфраструктуры: похоже на новый тренд слияния некоторых новых языков и развёртывания.Pulumi и подобные — Typescript;Ballerina;Unison Language — новый функциональный язык от разработчиков Scala/Haskell, но без монад. Пока ещё слишком рано его оценивать;Dark Language — пока нет в публичном доступе.Пока непонятно, к чему это может привести. Это слияние может оказаться просто неудачной веткой развития, а может стать первым шагом к новым фичам языка. Возможно, лет через 15 мы будем считать такой подход настолько же естественным, как использование подпрограмм.Может быть, мы сейчас видим новое будущее wasm- программирования (браузер, сервер с WASI и тому подобное), а также новое возрождение нативных языков (serverless, с использованием виртуальных машин и контейнеров). Такой подход уменьшит привлекательность JVM/байткода и позволит всем просто использовать нативные версии языков (канонические версии, разрабатывавшиеся десятилетиями). Уточню — сказанное выше не касается нативных языков JVM, таких как Clojure, Scala, Kotlin и т.п.

 

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

 

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

 

Если спросить у сообщества, у F# есть две проблемы:слабая поддержка от Microsoft;упор сделан на совместимость с C# в ущерб простоте использования;он становится всё сложнее и сложнее, прямо как любят специалисты по информатике. Однако преподаватели F# сосредоточены на обучении людей, далёких от программирования и просто нуждающихся в скриптовом языке. Излишняя сложность затрудняет работу.Также я думаю, что C# 8 быстро перейдёт в категорию осваиваемых. Люди просили обнуляемые ссылочные типы… Честно говоря, со времён .NET 1.
Следите за новыми постами
Следите за новыми постами по любимым темам
22К открытий22К показов