Доклад языки программирования

Ключевые Выносы

  • Эликсир вошел в отчет о тенденциях на этапе внедрения новаторов. Это функциональный параллельный язык программирования общего назначения. Работающий на виртуальной машине Erlang.
  • Мы наблюдаем возросший интерес и инновации. Связанные с инфраструктурными или облачными языками, DSL и SDK. Такими как Ballerina и Pulumi.
  • Мы считаем. Что Rust перешла от фазы новатора к фазе раннего внедрения. Что в значительной степени обусловлено ее внедрением в инфраструктуру и сетевое пространство плоскости данных—например. Habitat и Linkerd 2.0.
  • Python продолжает набирать популярность. Во многом благодаря своей роли в науке о данных и преподавании.
  • Разработка Swift для iOS перешла на раннее большинство. В первую очередь из-за популярности iOS как мобильного приложения. Котлин, хотя и отслеживается отдельно в отчете JVM trend. Наблюдал подобное движение к раннему большинству в отношении разработки приложений для Android.
  • Для .NET мы видим большой интерес к .NET Core, и, поскольку .NET Core 3 только что прибыл, мы ожидаем, что это будет продолжаться.

Каковы тенденции развития языка программирования на 2019 год и далее? Этот отчет призван помочь техническим лидерам в принятии средне — и долгосрочных решений об инвестициях в технологии. А также помочь отдельным разработчикам определить популярные языки программирования и выбрать. Куда инвестировать свое драгоценное время и ресурсы с точки зрения того. Какие новые языки программирования следует изучать и какие навыки развивать.

В докладе содержится краткое изложение того. Как редакционная группа InfoQ в настоящее время видит внедрение технологий и новые тенденции в пространстве языков программирования. За исключением Java / JVM и JavaScript / Web-разработки, о которых сообщается отдельно. Это мнение, которое формируется из обширных внутренних обсуждений с нашими редакторами. Которые сами являются активными разработчиками программного обеспечения. Обзоров результатов внешнего публичного опроса. А также обзоров внутренних или частных результатов опроса и анализа. Выдержки из различных редакционных бесед можно найти ниже.

И InfoQ, и QCon фокусируются на темах, которые, по нашему мнению, относятся к стадиям новатора. Раннего усыновителя и раннего совершеннолетия. Мы пытаемся определить идеи, которые вписываются в то, что Джеффри Мур

назвал ранним рынком, где Мы также ищем идеи, которые, вероятно, Стоит отметить. Что в этом контексте точное положение технологии на кривой принятия может варьироваться. В качестве примера можно привести ржавчину на данный момент он может быть широко распространен среди компаний района залива Сан-Франциско. Но может быть менее широко распространен в других местах.

Заметные изменения с момента подготовки нашего внутреннего отчета о тенденциях программирования 2018 года включают добавление нескольких языков, которые. Хотя и популярны. Мы не отслеживали публично на кривой принятия. Таких как Python. Ruby и PHP. Хотя технологии и факторы, связанные с этими языками, обсуждались внутри компании. Теперь мы исправили их отсутствие на нашем графике тренда.

Языки программирования в движении: Elixir, Rust и Swift

Elixir — функциональный, параллельный. Универсальный язык программирования—вошел в отчет о тенденциях на этапе внедрения инноваций. Эликсир строится поверх Erlang (который мы поместили в категорию раннего усыновителя) и работает на виртуальной машине Erlang. Elixir и Erlang используют одни и те же абстракции для построения распределенных отказоустойчивых приложений.

Мы считаем. Что Rust перешел от новатора к раннему адоптеру. Во многом благодаря своему поглощению в инфраструктуре и сетевом пространстве данных — например, Habitat и Linkerd 2.0. Язык также становится естественным партнером для WebAssembly, что помогает повысить осведомленность. Кроме того, отметим, что Facebook решила реализовать свою криптовалюту Libra с помощью Rust.

Разработка Swift для iOS перешла на раннее большинство. В первую очередь из-за популярности iOS как мобильного приложения. Хотя мы не отслеживаем Kotlin в этой категории трендов, в отчете InfoQ Java и JVM trends отмечается рост популярности Kotlin. Поскольку теперь это язык по умолчанию для разработки приложений для Android.

Языки инфраструктуры: Балерина, Пулуми, Дарк

Мы видим повышенный интерес, связанный с инфраструктурой/облачными языками, DSL и SDK. Такими как Ballerina и Pulumi. Мы также отслеживаем Dark, который в настоящее время находится в закрытой бета-версии и поэтому еще не совсем попал на график. Эта категория технологий в настоящее время прочно закрепилась в фазе внедрения новаторов. Но мы внимательно следим за этим. Ив ноябре в QCon San Francisco появится трек. Посвященный

Вот как выглядел наш внутренний тематический график во второй половине 2018 года. Версия 2019 года находится в верхней части статьи.

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

.NET Q3 2019

Для .NET мы видим большой интерес к .NET Core, и с .NET Core 3 только что прибыл, мы ожидаем, что это будет продолжаться. Мы разделились .ЧИСТОЕ ядро в ветвь 2x и ветвь 3x на графике. Так как они находятся в разных точках с точки зрения принятия. Относительно.ЧИСТЫЕ языки, мы ожидаем, что C# 8 будет принят быстро. Мы продолжаем с интересом следить за F#, но считаем. Что сложность и отсутствие сильной поддержки со стороны Microsoft означают. Что он вряд ли получит более широкое распространение.

У нас есть ASP.NET Ядро в раннем совершеннолетии. На данный момент мы полагаем что большая часть новой веб работы делается на ASP.NET Ядро, но не обязательно .NET Core. Некоторые существующие приложения портируются, но большинство-нет. WCF по-прежнему очень важен на предприятии, но MS не поддерживает его должным образом в .NET Core. Мы перенесли Visual Basic на отстающих и на данный момент действительно рассматриваем его как язык для любителей.

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

Абель Аврам, доцент факультета вычислительной техники и автоматики Технического университета Тимишоары. Редактор InfoQ:

JetBrains опубликовала свой отчет The State of Developer Ecosystem 2019, опросив 7000 разработчиков и придя к следующим выводам:

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

  • Go — самый перспективный язык программирования
  • Python — самый изученный язык

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

StackOverflow сказал это о Python в этом году:

Артур Казальс, исследователь компьютерных наук. Работающий в области искусственного интеллекта / Мультиагентных систем:

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

Тем не менее. С увеличением числа доступных библиотек и более широким внедрением крупными игроками, я думаю. Что это хорошая ставка для

Эликсир, похоже. Набирает некоторый импульс. Особенно в Бразилии — есть тот факт. Что создатель языка-бразилец. И по крайней мере один из новых единорогов там (Movile) открыто использует его (наряду с другими трендовыми компаниями. Такими как Quero. В образовании).

В последнее время я видел некоторые разговоры об Эликсире — особенно после того. Как они пригласили кого-то из Quero в качестве участника дискуссии. Рассказав историю о том. Как они приняли Эликсир с самого начала и т. Д.

Есть также хороший пример использования от инженеров Discord. Которые недавно написали об использовании Rust и Elixir вместе для обеспечения поддержки бэкенда для 11 миллионов одновременных пользователей. Это отличный реальный сценарий, включающий в себя оба языка и широко используемое приложение. Что определенно добавляет им импульса.

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

Rust находится на ранней стадии принятия. И по моему опыту его принятие набирает большую часть из-за WebAssembly и. Возможно, Servo.

Хотя Go уже некоторое время был интересен. Я бы все же классифицировал его принятие как раннее усыновление.

Языки имеют гораздо более медленный жизненный цикл, чем, например, фреймворки, и я бы не сказал. Что Go уже достигла массового принятия. Точно так же Эликсир и Вяз будут оценены как ранние последователи.

На мой взгляд, пони-это язык. О котором я редко слышу упоминание. И в настоящее время он остается новатором.

Swift, вероятно, достиг раннего совершеннолетия из-за того. Что он является точкой входа по умолчанию для приложений iOS.

Для облачных IDE CodeSandbox и StackBlitz приобрели значительную популярность за последний год благодаря своему впечатляющему набору функций для редактирования в браузере. А также интеграции с локальными инструментами разработки.

После стагнации в течение нескольких лет Dart, похоже. Переживает возрождение в значительной степени из-за Flutter.

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

Я бы перевел Swift в ранний статус большинства — мне кажется. Что он продолжает набирать обороты, и я думаю. Судя по некоторым объявлениям на WWDC — заметно Swift UIKit — что мы вступаем в

Я думаю. Что мы также можем перенести серверную часть Swift на раннюю версию. Это анекдотично, но, разговаривая с некоторыми людьми, которые близки к нему , они говорят мне. Что он видит устойчивый рост. И есть много хороших вещей. Которые были вызваны открытым источником

swift-nio, что, в свою очередь, увеличило производительность нескольких серверных фреймворков. Которые перешли на него.

В прошлом году Rust определенно продемонстрировал рост. И я бы перевел его из новатора в ранний адепт. Они хорошо позиционируют его как партнера с Wasm, и это, как мне кажется, помогает.

Я не уверен насчет Go; он все еще растет, но мне кажется. Что он еще не совсем достиг точки массового усыновления; возможно, это спорно. Но я бы оставил его на раннем усыновителе.

Я немного больше слышу об Эликсире, но думаю. Что он все еще остается в

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

Я не думаю. Что Пони может продвинуться дальше Новатора; это позор. Мне нравится этот язык, хотя я нахожу систему типов довольно сложной, и я действительно думаю. Что это впечатляющая работа. Но сообщество для нее все еще очень мало. В этот момент я бы сбросил его с трекера.

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

Вернер Шустер, программист-сантехник в Вольфраме:

На Swift: это действительно ранние дни. Но Swift для TensorFlow (S4TF) может стать большой точкой продаж для Swift и потенциальным конкурентом Python (по крайней мере. В этой области).

Вот очень подробный и интересный документ о том, почему Swift, а не другие языки. За ним стоит Крис Латтнер. Который работает над этим сейчас в доме TensorFlow; и Крис занимается своими старыми трюками, создавая IRS повсюду (MLIR)

Имя S4TF довольно скучное и скрывает все интересные биты (AD и т. Д.).

На Python: Я немного заинтригован тем, куда идет Python; он явно извлек огромную пользу из того. Что был выбранным языком клея для многих библиотек data science/ML native—что-то. Что Ruby не понял десять лет назад. К его потере.

С другой стороны. Python был удивительно устойчив к любой модернизации своей среды выполнения (кто-нибудь помнит Unladen Swallow?) не говоря уже о десятилетиях проекта(ов) по де-гилингу переводчика (ни один из которых никуда не делся).

Я думаю. Что Джайтон тоже мертв. Последний раз, когда я проверял веб-сайт. Он не обновлялся в течение многих лет и нигде не находится рядом с Python 3.x.

Языки инфраструктуры: похоже. Появилась новая тенденция к развертыванию языков сопряжения (некоторые новые).

  • Pulumi & co — Typescript
  • Балерина
  • Unison Language — Новый функциональный язык, от ex-Scala/Haskell folks. Но красиво свободный от Монад; здесь еще очень рано
  • Темный язык — еще не публичный

Мне любопытно, куда все это пойдет; может быть. Чрезмерно связанная вспышка на сковороде или первый шаг к языковым функциям. Которые будут казаться незаменимыми через 15 лет (например. Когда подпрограммы стали языковыми функциями).

Мы потенциально смотрим на новое. Необремененное будущее Wasm (браузер и серверная сторона с WASI и т. Д.), А также на новообретенную оценку native (с виртуальными машинами, контейнерами, бессерверными). Которая снижает привлекательность JVM/байт-кода и позволяет всем просто использовать нативные версии языков (канонические версии. Которые разрабатывались десятилетиями). Чтобы быть ясным—ничто из того. Что я сказал выше, на самом деле не касается родных языков JVM. Таких как Clojure, Scala. Kotlin и т. Д.

Бен Эванс, главный инженер и архитектор JVM Technologies в New Relic, Inc.:

У нас есть небольшое количество вещества в Эликсире. Я не особенно фанат — это достаточно хороший язык. Но если вам не нужны реальные сильные стороны виртуальной машины BEAM (отказоустойчивость. Массово распределенные простые вещи). То он, похоже. Мало что добавляет.

Большинство поклонников языка, кажется, нравится. Потому что это Я не видел в нем ничего убедительного. Что не могло бы быть достаточно легко сделано в JVM tech (хотя и с потенциально немного более церемониальным) — и JVM имеет гораздо лучшую. Более широкую интеграцию с библиотеками.

Дастин Шульц: Ведущий инженер-программист, автор Pluralsight и технологический евангелист

В последние годы я наблюдаю довольно значительный рост популярности Python. Как уже говорили другие, я думаю. Что это во многом связано с наукой о данных. Обучением ит-школам/университетам и более легкими фреймворками. Такими как Flask (vs Django).

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

Чарльз Хамбл: Что касается базовой платформы, то она, по — видимому. Постепенно улучшалась примерно с 2012 года-я думаю. Что многие усилия были сосредоточены на .NET Core. Мне кажется. Что .NET Core перешел от новатора к раннему приверженцу. Интересно, стоит ли нам разделиться, когда?NET Core 3 приземляется и, возможно, .NET Core 3 возвращается в innovator, а .NET Core 2-в early adopter.

Точно так же я думаю. Что C#, вероятно, должен перейти к раннему большинству — честно говоря. Я не уверен. Почему это не так.

Я думаю. Что F# следует чему — то похожему на Clojure на JVM-это прекрасный язык, на мой взгляд. Но я не вижу большого признака его расширения за пределы его текущего размера. Точно так же я не вижу, чтобы использование сильно уменьшалось.

Джонатан Аллен, Архитектор программного обеспечения для KPMG и ведущий редактор .NET для InfoQ:

Разговаривая с сообществом, F# имеет две проблемы:

  • Он не имеет сильной поддержки со стороны Microsoft
  • Руководство ориентировано на погоню за совместимостью C# за счет простоты использования
  • Он продолжает расти все более и более сложным, что нравится компьютерщикам. Но, на самом деле, тренеры, обучающие F#, в основном ориентированы на непрограммистов. Которым нужен скриптовый язык. Таким образом, дополнительная сложность усложняет их работу.

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

Дополнительные общедоступные исследования и опросы, которые обсуждались, включали: Рейтинги языков программирования RedMonk: июнь 2019годаЛучшие языки программирования 2019года .

Дайте нам знать. Какой из языков программирования вы использовали в течение последних 12 месяцев или какие из них вы планируете использовать. Заполните анкету.

Об авторах:

Абель Аврам: с 2008 года участвует во многих редакционных мероприятиях InfoQ. Наслаждаясь написанием новостных репортажей на мобильные, HTML, .NET, облачные вычисления, EA и другие темы. Он является соавтором доменного дизайна. В прошлом он много лет работал инженером-программистом и руководителем проекта/команды по устаревшим системам, Java и .NET. Он начал свою карьеру в качестве доцента на факультете вычислительной техники и автоматики Технического университета Тимишоары, Румыния. Если вы заинтересованы в представлении новостей или образовательной статьи, пожалуйста. Свяжитесь с ним по адресу abel [at] infoq.com.

Артур Казальс-исследователь компьютерных наук. Работающий в области искусственного интеллекта и мультиагентных систем. Он занимается разработкой программного обеспечения уже более 20 лет. Причем на разных рынках и в разных отраслях. Артур также принимал на себя различные роли в прошлом: основатель стартапа, технический директор. Технический менеджер. Инженер-программист. Он держит в руках B.Sc степень в области компьютерной инженерии и степень MBA.

Dylan Schiemann, генеральный директор SitePen и соучредитель Dojo. Является установленным присутствием в сообществах JavaScript и open source. Под его руководством SitePen стал окончательным источником для корпоративных организаций. Которые сосредоточены на создании хорошо протестированных. Высокоэффективных и устойчивых веб-приложений. Нынешние инициативы Дилана включают в себя руководство разработкой по стажировке и современному додзе. Дилан был соучредителем Фонда Dojo Foundation до его слияния с Фондом jQuery Foundation. Чтобы позже сформировать Open JS Foundation. Дилан также помогает организовать серию встреч и конференций HalfStack и TSConf. Когда Дилан не занимается активным улучшением SitePen и не требует лучших инструментов для разработчиков. Он с удовольствием путешествует и делится своим опытом на конференциях по всему миру.

Чарльз Хамбл занял пост главного редактора журнала. InfoQ.com в марте 2014 года руководил созданием нашего контента, включая новости, статьи, книги. Видеопрезентации и интервью. До того как стать штатным сотрудником InfoQ. Чарльз руководил нашим охватом Java-контента и был техническим директором PRPi Consulting. Исследовательской фирмы renumeration research. Приобретенной PwC в июле 2012 года. В PRPi он нес полную ответственность за разработку всего программного обеспечения. Используемого внутри компании. Он уже около 20 лет работает в сфере корпоративного программного обеспечения в качестве разработчика. Архитектора и менеджера по разработке. В свободное время он пишет музыку как 1/3 лондонской эмбиентной техно-группы Twofish. Чей дебютный альбом вышел в феврале 2014 года после 14 лет возни с дорогими игрушками. И проводит как можно больше времени со своей женой и молодой семьей.

Вернер Шустер (Мерфи) пишет программное обеспечение и пишет о программном обеспечении. После дня пререканий с JavaScript он предпочитает Mathematica, Clojure & Co.

Бен Эванс-соучредитель jClarity, компании по оптимизации производительности JVM. Он является организатором LJC (лондонского JUG) и членом Исполнительного комитета JCP. Помогая определять стандарты для экосистемы Java. Бен-чемпион Java; 3-кратный спикер JavaOne Rockstar; автор книг Бен иногда доступен для выступлений. Преподавания. Письма и консультирования — пожалуйста. Свяжитесь с нами для получения более подробной информации.

Дастин Шульц-ведущий инженер-программист, автор Pluralsight и проповедник технологий в душе. Он имеет степень бакалавра и магистра в области компьютерных наук и занимается разработкой программного обеспечения более 15 лет. Дастин любит все технические вещи, и вы часто можете найти его в восторге от новейших технологий. Он также любит учиться и всегда хотел знать, как все работает, так много, что. Когда он был маленьким. Его мама купила ему книгу на тему Блоги Дастина Шульца здесь.

Джонатан Аллен начал работать над проектами MIS для медицинской клиники в конце 90-х годов. Постепенно переводя их из Access и Excel в корпоративное решение. Потратив пять лет на написание автоматизированных торговых систем для финансового сектора. Он стал консультантом по различным проектам. Включая пользовательский интерфейс для роботизированного склада. Средний уровень для программного обеспечения для исследований рака и потребности в больших данных крупной страховой компании по недвижимости. В свободное время он с удовольствием изучает и пишет о боевых искусствах 16 века. Блоги Джонатана Аллена здесь.