Пять ключевых трендов-2016 в программировании

27 декабря 2016, 15:07

Рост популярности JavaScript, BaaS, контейнеры и функциональное программирование: колумнист TechCrunch Мартин Пюер представил обзор ключевых трендов, влиявших на разработку в 2016 году.

Читать далее

Иллюстрация: agile actors

За плечами у Пюера — 15-летний опыт работы в Microsoft, а последние два года инженер занимается развитием онлайн-школы программирования Coding Dojo, в которой отвечает за учебные программы и технологию обучения.

Его анализ по итогам 2016 года основан на собственном январском прогнозе.

Рост последней версии JavaScript

Язык программирования JavaScript/ECMAScript 6, (известный также как ECMAScript 2015 или ES6) увидел свет в июне 2015, и уходящий год должен был стать для него временем всеобщей адаптации. Примерно так и произошло: все ключевые браузеры и Node.js (среда выполнения JavaScript с открытым кодом) более чем на 90% совместимы с ES6.

Всё большее количество проектов различной величины использует синтаксис ES6: от маленьких внутренних разработок до больших систем. В компаниях, которые не зависят от консервативных клиентов (например, Google и Airbnb), синтаксис ES6 находит отражение во внутренних стандартах разработки.

Некоторым разработчикам однако приходится поддерживать старые версии JavaScript для сохранения работоспособности ранее созданных систем. Возможности ES6 по-прежнему внедрены не во все доступные среды JavaScript. Например, хвостовая рекурсия пока что работает лишь в Safari 10 и iOS 10. Полная таблица совместимости находится здесь.

Иллюстрация: Medium

Бэкенд как услуга

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

Растёт и частота использования «композиции», когда итоговая система строится из нескольких более компактных элементов, которые зачастую представляют сторонние сервисы.

Простое управление образами и их внедрение

Такие сервисы, как Docker и Packer, действительно стали опорой многих команд разработки в 2016 году. Эти проекты позволяют инженерам быстро создавать и размножать образы машин («контейнеры»), в которых есть среда разработки, системные инструменты и нужные библиотеки.

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

За 2016 год работа с контейнерными системами стала неотъемлемой частью стандартного набора средств разработчика.

Фото: TechCrunch

Рост доверия к функциональным языкам программирования

Функциональные языки программирования наподобие Haskell, Clojure и Scala активно развивались на протяжении всего года. Их использование вызвано взрывным ростом числа используемых смартфонов и подключённых устройств, а также завышенными ожиданиями к скорости их работы со стороны пользователей.

По мере увеличения мощности компьютеров, смартфонов, планшетов и других гаджетов серверы становятся «бутылочным горлышком» на пути к росту производительности. Улучшение способности серверов выполнять параллельные задачи делает их более гибкими в работе с большими количествами подключённых устройств.

Модель функционального программирования упрощает параллельную работу различных элементов ПО на разных ядрах процессора или машинах, что даёт ему преимущество перед объектно-ориентированным подходом в многопоточных вычислениях. Например, в обработке веб-запросов.

Сдвиг в сторону материального дизайна

Google внедряет всё больше элементов материального дизайна: изменениям подверглись ChromeOS, Android, Chrome, Drive, Google Play Music, YouTube, AdSense и даже веб-поиск. Некоторые аспекты материального дизайна можно увидеть в Android-приложениях от Slack, Twitter, Spotify, Airbnb и Wikipedia, а также на сайтах Asana, Geekbench и других.

Однако стоит отметить, что другие платформы (пожалуй, за исключением Ubuntu) не стали активными адептами нового подхода Google и продолжили создавать дизайн собственного стиля.

Обсуждение