В удивительные времена живем: новые языки, технологии, инструменты и фреймворки появляются каждый день. Еще никогда технарям так весело не жилось. Однако в этом шуме легко потеряться. Постоянный колумнист TechCrunch, программист и ментор Мартин Пурьер выбрал пять глобальных трендов в программировании, которые, по его мнению, задают вектор развития всей индустрии. Последняя версия JavaScript Последняя версия ECMAScript (ES6), более широко известного как JavaScript, может сделать один из самых значимых прорывов в веб-девелопменте со времен предыдущей версии ES5, которая увидела свет в 2009 году. JavaScript — самый распространенный язык программирования в мире. Почти каждый компьютер или мобильное устройство с веб-браузером совместимы с JavaScript. Но с появлением ES6 и новых функций, которые он несет в себе, веб-разработка может сильно измениться. Среди них: блок-контекстные переменные, а также новые константы, стрелки, которые упрощают синтаксис, интерполяции строк, классы, модули и многое другое. Новая версия JavaScript быстро набирает популярность в топовых браузерах. В 13-й версии Microsoft Edge уже поддерживаются почти 80% ее функций. В этом году ES6 точно будет поддерживаться в Edge, Chrome, Firefox и пойдет дальше шагать по планете. Разработчики могут уже сегодня начать использовать большинство новых возможностей, которые предлагает ES6, через транспиллеры вроде Babel, чтобы компилировать код на ES6 в полностью совместимый со всеми браузерами ES5 JavaScript. Преобладание подхода «бэкэнд как сервис» (BaaS) В современной разработке продолжается тенденция отхода от огороженных, полностью самостоятельных приложений в сторону использования сторонних сервисов, чтобы обрабатывать большой кусок монотонных, но необходимых аспектов проекта. Например, облачных хранилищ, push-уведомлений и пользовательского администрирования. Backend as a Service (BaaS) — общая номенклатура таких утилит, а их популярность гарантировано возрастет, в частности, в корпоративном сегменте, где масштабируемость — огромное бремя для больших приложений. С BaaS, такими как Parse, инженерные и операционные команды могут сфокусироваться на конкурентоспособности компании, в то время как базовые функции и связанные с ними накладные расходы полностью обрабатываются на стороне. Простое управление и развертывание образов Хотя BaaS стал ответом на потребность девелоперов легко подключать облака к проектам или API социальных сетей, множество приложений до сих пор полагаются на локализированные стеки и хорошо подготовленные сервера. К сожалению, резервирование сервера по своей сути — сложный и времязатратный процесс. Такие сервисы, как Packer и Docker, позволяют инженерам быстро создавать машинные образы на существующих версиях операционных систем, библиотек, языков и фреймворков. Эти образы называются контейнерами. Они легко воспроизводятся и позволяют быстро расширить существующие сервисы или быстро создавать новые. Если ваша операционная команда еще не обсуждает эту тему, то самое время начать. Если обсуждает, а вы не прислушиваетесь, то зря. Усиление акцента на функциональные языки программирования Поскольку современным приложениям необходимы все большие пропускная способность, объемы хранилища данных и процессинг, становится понятно, что модель single-machine морально устаревает. Чтобы реально масштабировать систему, нужно параллелизировать ее настолько, насколько это возможно. А это приводит нас к функциональным языкам программирования вроде Haskell, Clojure, Scala и Erlang. Соответственно, растет спрос на программистов в данных средах. Императивное программирование в основном полагается на изменяемое состояние (изменение значения объекта в процессе выполнения), а функциональное программирование фокусируется на неизменном состоянии, в котором задекларированный объект сохраняет свое значение на протяжении всего процесса. Следовательно у функциональных языков есть важное преимущество перед императивными и объектно-ориентированными языками: они по своей сути предназначены для поддержки параллелизации и тяжелой конкурентности. Если вы четко знаете, что ваши данные не будут меняться в процессе выполнения программы, и что ваши функции транзитивны (неизменны), приложение может выиграть от облегченных функциональными языками масштабирования и распределенных вычислений. Объектно-ориентированное программирование в ближайшем будущем никуда не денется. Но в условиях, когда пользователи хотят более быстрых результатов поиска, а исследователи — более точных, функциональное программирование получит больше внимания, будучи самым очевидным решением. Движение в сторону Material Design и общности моделей Несмотря на то, что в последние годы балл правил плоский дизайн и минималистический подход к UI, в 2016 году фокус может сместиться в сторону material design. Apple — самые стойкие приверженцы плоского дизайна, которые вывели из моды объемные элементы интерфейса. Microsoft подхватил эстафету со своим Metro-дизайном в 2010 году. Но Google сделал по-своему и ушел в сторону «естественного дизайна». Градиент, тени и блики отсылают в эру функциональности старого-доброго объемного дизайна. Более светлый или темный тон элемента может свидетельствовать о том, кликабельный он или нет. По мере того, как material design обретает форму, мы ожидаем, что креативные дизайнеры будут все чаще обращаться к такому виду UI по мере дальнейшего перехода к отзывчивости. Веб-UI будет становиться все более однотипным, но это неплохо. Дизайнеры понимают, что наиболее типичные задачи, вроде входа в учетную запись или навигации по меню, должны выглядеть одинаково знакомо для всех сортов пользователей. Выводы Это будет волнительный год для веб-программирования, начиная с фундаментальных технологий и заканчивая пользовательским опытом. С выходом ECMAScript6 в июле 2015 года обновляется самый вездесущий язык. С BaaS нивелируется большой массив головной боли для девелоперов. Функциональные языки становятся мейнстримом, а material design постепенно унифицирует UI на всех типах устройств. Независимо от того, на какой позиции и в какой сфере вы работаете, подумайте, какие преимущества эти новинки могут дать именно вам. http://ain.ua/2016/01/15/626701