Какие технологии программирования стоит освоить и тестировать в наступившем году, какие стандарты и инструменты приходят на смену старым? Как изменится ландшафт рынка в 2017 году из-за развития технологий, произошедшего в 2016-м? Вот первая семёрка главных тенденций.


Разработчикам нравятся контейнеры

Сервисы вроде Docker и Packer позволяют разработчикам оперативно создавать и дублировать софтверные контейнеры — с запуском, системными инструментами и библиотеками — в любую среду. Это ускоряет прототипирование проекта. Можно создавать сразу несколько версий будущего продукта и систему управлениями ими, а затем легко разворачивать нужную версию на множестве серверов. Использование контейнеров экономит время: выделять ресурсы сервера вручную сложнее и дольше.

Контейнеры становятся частью ключевого инструментария разработчика. Среди сервисов с растущей популярностью можно назвать Vagrant (для простой настройки среды разработки), Puppet, Chef и Ansible (для управления конфигурацией).

Из-за простоты использования контейнеров набирает обороты язык Go. Версия Go 1.0 появилась в марте 2012 года. Контейнеры Docker и Kubernetes вышли вслед за ней — в 2013 и 2014-м. Язык Go не был создан с расчётом на развитие инфраструктуры контейнеров, однако возможностей у него больше, чем у тех же Java и C++. К примеру, контейнеры делают изящным и простым использование Go для параллельных вычислений.


ИИ усиливает языки программирования

Искусственный интеллект всё больше влияет на программное обеспечение. Компьютерные алгоритмы, обработка естественного языка, автоматическое распознавание речи, машинное и глубинное обучение проникают во все сферы жизни.

В 2016 году Amazon создал домашнего помощника Alexa, управляемого голосовыми командами. Но на этом компания не остановилась и предложила использовать голосовой интерфейс другим компаниям. Технологию Amazon уже встроили в бытовую технику, роутеры и даже очистители воздуха.

Для создания ИИ используется множество фреймворков, например, TensorFlow, OpenAI и Apache Spark от Google. Появляются здесь и новые продукты, такие как Theano и Neon, разработанный компанией Nervana Systems, которую в прошлом году купил Intel.

Искусственный интеллект неминуемо влияет на ландшафт рынка разработки. Сейчас самое время учить Python, который в среде разработчиков уже получил звание языка программирования для ИИ. В тренде также R, Java и Scala.


Swift выходит за пределы экосистемы Apple

Apple сделала Swift доступным для открытого изучения и изменения в 2015 году. С этого момента язык стал хитом среди разработчиков под iOS и macOS. Он безопаснее своих конкурентов — Objective-C и C++. Насколько успешным окажется Swift в мире JavaScript-фреймворков и других языков, ещё только предстоит узнать. Но среди последователей экосистемы Apple его популярность только растёт, что говорит о его жизнеспособности в большом мире разработки.


Java 8 vs языки виртуальной машины Java (JVM)

Долгое время разработчики пользовались такими JVM-языками, как Scala и Clojure, из-за ограниченности Java рамками объектно-ориентированного программирования. На волне популярности Apache Spark на некоторое время вырос интерес разработчиков к Scala. Но теперь JVM-языки могут быть вытеснены Java 8. В новой версии языка есть главный компонент функционального программирования — лямбда-выражения, которые упрощают решение задач параллелизма. В 2017 году на ежегодном съезде OSCON практически не будут говорить о Scala и Clojure — не нашлось потенциальных спикеров, заинтересованных в теме.


Растёт влияние нового стандарта ECMAScript

Версия 6 встраиваемого языка JavaScript/ECMAScript или ES6 появилась еще в июне 2015-го. В 2016 году этот стандарт был окончательно принят (предыдущий существовал с 2009 года). Основные браузеры и Node.js — платформа JavaScript с открытым исходным кодом — на 90% совместимы с ES6. Сейчас синтаксис ECMAScript можно увидеть в разработке не только внутренних утилит и низкоуровневых систем, но и внешних систем, ориентированных на пользователя. ES6 появился во внутренних стайлгайдах таких компаний, как Airbnb и Google.

Часть платформ не отказывается от старой версии JavaScript из-за её повсеместности. Чтобы использовать возможности ES6 уже сейчас, есть транспайлеры, которые конвертируют код в более старый синтаксис. Конечно, старый JavaScript не исчезнет в одночасье, но стоит проверить, насколько ваша платформа совместима с новым стандартом.


Даст ист BaaS

Как и ожидалось, в 2016 году значительно выросла популярность практики «бэкэнд как сервис» (Backend as a Service или BaaS), когда повторяющиеся задачи вроде облачного хранения данных и настройки push-уведомлений передаются сторонним сервисам. Благодаря им разработчики могут сосредоточиться на профильных потребностях проекта. Фреймворки для фронтэнда затачиваются для более простой интеграции с бэкэнд-сервисом. Разработчики также используют технику композиции: создают бэкэнд как систему мелких приложений, каждое из которых легко заменить сторонним сервисом.


На этих языках скоро «заговорят»

В среде разработки появляются и новые языки, заточенные под потребности, которым не отвечают их предшественники. Небольшой обзор потенциально популярных языков и их возможностей:

  • Rust: скоростное системное программирование и достаточная безопасность;

  • Elixir: функциональный, динамичный и устойчивый к ошибкам при масштабировании;

  • Elm: удобный в использовании, функциональный язык для веб, более фановый в сравнении с JavaScript.

  • Kotlin: безопасный, со статической типизацией, единственный язык, совместимый и с Java, и с JVM;

  • Perl 6: выразительный язык с большим потенциалом развития.

Материал подготовлен на основе статей opensource.com и techcrunch.com.
Алина Драгун,

Автор #tceh