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

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

Тренды и не очень

Модно: препроцессоры | Вчерашний день: полный стек на одном языке

Еще совсем недавно считалось, что разработка нового языка программирования означает реализацию всех деталей, необходимых для превращения исходного кода в биты информации, растворяющиеся в кремниевой микросхеме. Потом кто-то догадался, как комбинировать новые разработки с уже имеющимися. Сейчас все делается рациональнее: достаточно написать препроцессор, «переводящий» код на какой-то старый язык, обладающий богатым набором библиотек и API.

Ребята, которым нравилась динамическая типизация, создали Groovy - упрощенную версию Java, не обремененную излишне строгой пунктуацией. Те, кто хотел поправить JavaScript, написали CoffeeScript - еще один язык-препроцессор, позволяющий писать код без обременительной пунктуации. На JVM (виртуальной машине Java) работают уже десятки языков вроде Clojure и Scala, но JVM служит для них общим знаменателем. Действительно, зачем изобретать колесо?

Модно: фреймворки JavaScript вида MV* | Вчерашний день: файлы JavaScript

Давным-давно все учились писать на JavaScript, чтобы вывести окно с предупреждением либо чтобы убедиться, что во введенном адресе электронной почты действительно присутствует символ @. В настоящее время HTML-приложения с применением AJAX настолько развились, что практически никто уже не пишет такой код с нуля. Проще задействовать многофункциональный фреймворк, а затем написать немного склеивающего кода для реализации бизнес-логики. В настоящее время существуют десятки таких фреймворков, вот некоторые из них: Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS. Все они отлично обрабатывают события и контент для ваших веб-приложений и сайтов.

Модно: CSS-фреймворки | Вчерашний день: Традиционные каскадные таблицы стилей

Раньше, если требовалось приукрасить веб-страницу, нужно было открыть CSS-файл и добавить в него новую команду, например, font-style:italic. Но современные веб-страницы стали такими затейливыми, что уже практически невозможно обойтись столь простыми командами. Малейшая коррекция цвета - и код отбивается от рук.

Вот где можно положиться на CSS-фреймворки наподобие SASS и его аналога Compass. Они способствуют созданию литературного (грамотного), стабильного кода и предоставляют такие программные конструкции, как действительные переменные, вложенные блоки и примеси. Возможно, все эти концепции не кажутся такими уж новаторскими на уровне программирования, однако на уровне проектирования сделан огромный шаг вперед.

Модно: SVG + JavaScript на холсте | Вчерашний день: Flash

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

В настоящее время практически то же самое уже можно делать на уровне JavaScript. Производители браузеров и разработчики приветствуют конец Flash. Новые форматы, в частности SVG (масштабируемая векторная графика), обеспечивают более качественную интеграцию с уровнем DOM (объектной моделью документа). SVG и HTML образуют один огромный набор тегов, поэтому веб-разработчикам очень удобно иметь с ними дело. Кроме того, уже есть крупные API, предлагающие широкие возможности рисования на холсте (объект Canvas). Зачастую при этом даже задействуется видеокарта. Обобщив все эти возможности, сложно даже представить, зачем еще нужен Flash.

Модно: Почти большие данные (анализ без Hadoop) | Вчерашний день: Большие данные (Hadoop)

Многие проблемы не столь масштабны, чтобы применять для работы над ними причудливые решения из области больших данных. Действительно, крупные компании, например, Google и Yahoo, отслеживают весь браузерный трафик, объемы обрабатываемых ими данных измеряются в йоттабайтах. Но большинство компаний обходятся такими объемами данных, которые умещаются в оперативной памяти обычного ПК. 16 ГБ RAM достаточно для обработки миллиардов событий всего в нескольких байтах. Большинство алгоритмов не требуют считывания данных в память, поскольку потоковая подача информации с твердотельного диска идет как по маслу.

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

Модно: Игровые фреймворки | Вчерашний день: нативная разработка игр

В свое время вся игровая индустрия работала по принципу: нанимаем кучу разработчиков, которые пишут на C весь код с нуля. Да, игра будет стоить миллионы, но зато выйдет шикарной. В настоящее время написание заказного кода для игр уже стало непозволительной роскошью. Большинство разработчиков игр за последние годы стали скромнее и научились программировать при помощи библиотек, например, Unity, Corona или LibGDX. Теперь на C приходится писать разве что инструкции для работы с библиотеками.

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

Модно: Одностраничные веб-приложения | Вчерашний день: сайты

Помните времена, когда все URL указывали на веб-страницы, заполненные статическим текстом и картинками? Как же просто и скучно выложить в Сеть информацию, распределить ее по отдельным страницам и назвать все это - «сайт»!

Новые веб-приложения - это, фактически, клиентские интерфейсы огромных баз данных, ломящихся от информации. Когда веб-приложению требуется информация, оно берет ее из базы данных и заливает в локальную «форму». Не приходится заниматься разметкой этих данных при помощи всяческих ухищрений, которые использовались при создании веб-страниц. Уровень данных совершенно не связан с уровнями представления и форматирования. Здесь следует учитывать еще один важный фактор: расцвет мобильной вычислительной техники. Если цельная веб-страница, отвечающая принципам адаптивного дизайна, работает как приложение, то с ней можно работать, минуя чрезмерно сложные рынки приложений.

Модно: Мобильные веб-приложения | Вчерашний день: Нативные мобильные приложения

Допустим, у вас есть отличная идея, связанная с мобильным контентом. Можно взяться за работу и написать отдельные версии программы для iOS, Android, Windows Phone и пр. Для каждого из таких проектов требуется отдельная команда, владеющая нужным языком программирования. Затем программа попадет на рынок приложений той или иной платформы, где у вас состригут некоторую долю прибыли, прежде чем программа окажется на пользовательских устройствах.

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

Модно: Android | Вчерашний день: iOS

iPhone и iPad пользуются устойчивой популярностью у определенного класса пользователей, которым нравятся шикарные и изысканные интерфейсы этих устройств. Однако голые цифры продаж все явственнее свидетельствуют в пользу Android. Возможно, причина этого тривиальна: цена. Устройства iOS, мягко говоря, не дешевы, а в мире Android царит активная конкуренция. Благодаря этому некоторые планшеты с Android стоят впятеро дешевле iPad. Соблазн сэкономить всегда велик.

Еще один важный фактор - эффект свободного ПО. На рынке могут конкурировать все желающие, так и происходит. Есть большие планшеты с Android, есть и маленькие. Есть фотоаппараты и даже холодильники с Android. Google занимается инновациями всласть. Если у них появляется идея - они ее воплощают.

Модно: GPU | Вчерашний день: CPU

Когда программы были простыми, а инструкции выстраивались, в основном, линейно, все компьютеры работали с CPU, передавая такому процессору все сложные вычисления. Современные игры содержат массу сложных графических процедур, которые могут выполняться параллельно, и видеокарта порой со всем этим не справляется. Сегодня можно потратить на видеокарту и $500-600, а для некоторых крутых игр требуется даже не одна видеокарта. За такую цену вполне можно приобрести два не слишком мощных ПК.

Уже не только геймеры хвастаются своими GPU-картами. Ученые-информатики в настоящее время преобразуют многие параллельные приложения таким образом, что на GPU они работают в сотни раз быстрее.

Модно: GitHub | Вчерашний день: резюме

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

Вот почему участие в разработке свободного ПО становится все более важным фактором при поиске работы. Весьма сложно предъявить кому-либо проприетарный код, а вот свободный код можно распространять как угодно.

Модно: аренда | Вчерашний день: покупка

Когда Amazon открыл продажу компьютеров и прочей электроники в Черную пятницу, компания позабыла возвестить о появлении своих облаков. Конечно, не все сразу.

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

Модно: веб-интерфейсы | Вчерашний день: IDE

Давным-давно приходилось работать с компилятором в командной строке. Потом кто-то догадался объединить компилятор с текстовым редактором и другими инструментами, и получилась IDE (интегрированная среда разработки). Теперь же наступает новая эра, когда браузерные инструменты приходят на смену IDE. Такие инструменты позволяют редактировать код иногда даже в работающей системе.

Если вы не знаете, как работает сервис WordPress, расскажем: на сайте используется встроенный редактор, позволяющий вам изменять код здесь и сейчас. Microsoft Azure позволяет писать склеивающий код JavaScript прямо на портале. Эти системы не могут похвастаться превосходными отладочными системами, да и редактирование боевого кода - стремная идея, но тенденция определенно является перспективной.

Модно: Node.js | Вчерашний день: JavaEE, Ruby on Rails, PHP

Многопоточная модель программирования оказалась благодатной почвой для развития серверного программирования. Дурацкие циклы, затратные вычисления, непредсказуемый и неэффективный код - чтобы добиться нужной производительности, операционной системе приходилось переключаться с одного потока на другой.

Но вот появился Node.js со своей моделью программирования на основе обратных вызовов. Оказалось, что на этом «игрушечном языке» код работает быстрее, чем кто-либо мог вообразить. Вдруг стало очевидно, какие издержки связаны с созданием новых потоков, и Node.js стал широко известен. Если программисты начинают отлынивать от работы, с Node.js также возникают проблемы, но дополнительные требования к ответственности - только к лучшему. Когда очевидны ограничения, связанные с ресурсами, программисты обычно пишут более быстрый код.

Кроме того, в мире Node.js удалось добиться гармонии между браузером и сервером. Один и тот же код работает и там, и там, разработчикам проще переключаться между фичами и дублировать функционал.

«В 2018 году профессиональный рост очень важен для каждого разработчика. Нужно ли в таком случае заняться изучением JavaScript (JS)? Этот язык программирования используется для создания интерактивных и функциональных веб-приложений, которые не просто наполнены однообразными страницами. Примерно 94,5% всех сайтов сети Интернет используют его. JavaScript также применяется для сценариев на стороне клиента, которые незаметно для пользователя интегрируются в HTML, и для кода на стороне сервера с помощью кросс-платформенного механизма выполнения Node.js» — пишут Hyperiondev.

Популярность JavaScript в 2018 году

Такое положение вещей подтверждает PYPL (индекс популярности языков программирования), который отслеживает, насколько часто в поисковой системе Google ищут обучающие курсы по определенным направлениям. Согласно данным, полученным в марте 2018 года, JavaScript поднялся на 3 позицию в этом рейтинге. Индекс PYPL помогает определиться, какой язык программирования начать изучать или использовать в новом проекте. Вот пять наиболее популярных языков по этому критерию:

Нужны ли еще какие-нибудь доводы, чтобы понять важность изучения JavaScript? Исследование о состоянии различных направлений программирования, в рамках которого анализируется деятельность более 21 700 разработчиков из 169 стран, установило, что JavaScript является наиболее популярным языком программирования. Его применяют в своей работе более 9,7 миллионов программистов. Это на 2,4 миллиона больше, чем язык, занявший второе место в рейтинге.

Почему JavaScript настолько популярный язык программирования?

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

Зарплата JavaScript разработчиков в 2018 году

Спрос на JavaScript разработчиков в 2018 году

Одним из способов подсчета спроса на разработчиков является анализ объявлений о приеме на работу. Сообщество Coding Dojo изучило 7 наиболее популярных вакансий на сайте Indeed.com. JavaScript в этом аспекте находится на третьем месте. Стоит отметить, что количество вакансий с 2017 года сократилось на 2000.

В 2018 году JavaScript продолжит пользоваться спросом среди разработчиков по причине своего широкого применения и хорошего уровня зарплат. Также JavaScript является удобным и простым языком для тех, кто хочет начать свою карьеру в сфере IT технологий.

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

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

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

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

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

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

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

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

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

Искусственный интеллект неминуемо влияет на ландшафт рынка разработки. Сейчас , который в среде разработчиков уже получил звание языка программирования для ИИ. В тренде также 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-уведомлений передаются

Среди программистов конкуренция будет только расти. Кажется, что современные дети рождаются с уже «прошитыми» знаниями! Поэтому расслабляться некогда. Чтобы понять, какие языки программирования будут в топе, нужно знать задачи, которые встанут перед программистами в обозримом будущем.

Самые жаркие направления, в которых ожидается прорыв в ближайшее десятилетие:

  1. Увеличение объема передаваемых данных и моделей для их обработки. Появление новых оптических и квантовых компьютеров с расширенными возможностями.
  2. Развитие человеко-машинных интерфейсов и технологии искусственного интеллекта. Всё более востребованы будут семантические системы, работающие с речью и языками (перевод, поиск в интернете, общение человек-компьютер и др.) А также распространение ПО, на которое может влиять обычный пользователь.
  3. Развитие нейроинтерфейсов, в т.ч. «управление мыслью», разными объектами, передача ощущений и переживаний на расстоянии.

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

Перспективные языки программирования с 2016 по 2025 год

Язык программирования ​​​​​​​Зачем он нужен?
R С его помощью можно обрабатывать большие объёмы данных, производить расчёты и создавать графические модели.
Erlang Основное преимущество - параллельность. Если вам необходимо обслуживать миллионы пользователей, Erlang незаменим.
Go РазработкаGoogle, имеющая множество возможностей и преимуществ. Правда, сегодня не все программисты разделяют уверенность в его перспективности, но время покажет.
Swift ДетищеApple. Как они сами говорят о нём: «это первый мощный язык программирования, такой же понятный и увлекательный, как скриптовый язык». В первую очередь предназначен для разработчиков iOS и OS X.

Самые востребованные языки программирования 2016

Язык программирования ​​​​​​​Какие задачи он помогает решать?
SQL По праву занимает первую строку хит-парада. Само название « SQL» расшифровывается, как « язык структурированных запросов». А запросы, как вы понимаете, есть везде.
Java За двадцать лет существования, Java « просочился повсюду». Удалите его со своего компьютера или мобильного устройства и вас ждёт коллапс.
JavaScript Как и Java используется повсеместно и встроен во все основные браузеры. JavaScript нужен для создания интерактива, поэтому спрос на JavaScript-разработчиков только растёт.
C# (C Sharp) Разработка компании Microsoft. Простой, безопасный и объектно-ориентированный. C# относится к семейству языков с C-подобным синтаксисом и близок к C++ и Java.
C++ Используется для разработки программного обеспечения и является одним из самых популярных языков программирования. Нужен для создания операционных систем, драйверов, прикладных программ, высокопроизводительных серверов, игр и многого другого.
Python На Python можно написать что угодно: приложения, игры, комплексные системы расчёта, скрипты по автоматизации и еще много всего! А простота кода облегчает дальнейшее сопровождение программ. Поэтому владение этим ЯП существенно облегчает жизнь программиста и делает его более конкурентоспособным.
PHP Обладает возможностями сложных скриптовых языков, но в то же время удивительно простой и легкий в изучении и применении. Хорош как для начинающих, так и для опытных программистов.
Ruby on Rails Ruby позаимствовал все лучшее из других языков программирования, а фреймворк Ruby on Rails сделал его ещё круче. Будьте осторожны: говорят, он вызывает привыкание!
iOS/Swift А вот и будущее аккуратно просачивается в список лидеров сегодняшнего дня. Помните, мы уже говорили про Swift, как про язык следующего десятилетия?

Какие направления будут популярны в будущем?

Александр Пряхин (руководитель отдела веб-разработки) отметил, что рынок программирования в 2026 будет определен следующими факторами:

  • «Интернетом вещей». Кофемашиной с WiFi уже никого не удивишь. Т.е. будут развиваться микрокомпьютеры и языки программирования под них.
  • Уменьшение времени ожидания для пользователя. Скорости жизни растут. И пользователю нужно сделать заказ прямо сейчас, а перевод денег на карту должен быть простым и производиться в одно нажатие. Скорости работы определяются как «железом», так и программным обеспечением.
  • Сектор IT-услуг. SaaS, PaaS, IaaS и т.д. Многие осознают, что пользоваться сервисом вместо покупки продукта чаще гораздо выгоднее.
  • Информационные угрозы. С каждым годом вычислительные мощности растут и дешевеют. Алгоритмы шифрования устаревают, а взлом систем становится проще. И язык программирования должен уделять много внимания аспектам безопасности.

Не обязателен факт того, что через 10 лет на рынке будут лидировать новые молодые языки. Посмотрите на Java: язык только набирает популярность. И всё потому, что при строгости классического синтаксиса, стандартизации и высоком пороге вхождения для новичков, язык имеет высокую производительность, современные решения и развивается в ногу со временем.

Александр Пряхин

Руководитель отдела веб-разработки

2017 год ещё ближе приближает нас к тому будущему, которое столько раз рисовалось изобретательными умами писателей-фантастов. Искусственный интеллект, виртуальная реальность, квантовые вычисления - все это ещё несколько лет тому назад казалось плодом чьего-то богатого воображения, а теперь в шаге от мейнстрима. Это значит, что программистам следует подготовиться к приходу новых технологий. Мартин Пюйре, который является руководителем учебных программ и практикующим тренером-наставником в школе программирования Coding Dojo, поделился с изданием InformationWeek своими соображениями по поводу навыков и необходимых средств программной разработки, которые будут в этом году актуальными для программистов. Он также назвал четыре технологии, которые, по его мнению, будут преобладать над остальными.

Гибридная клиент-серверная архитектура. Заданный несколько лет назад вектор на смещение вычислений в облако останется неизменным и в этом году. Появится ещё больше программных систем, которые будут в различных пропорциях сочетать локальные и облачные среды вычислений. Для пояснения: если веб-программирование предусматривает подключение браузера к серверу поддержки, на стороне которого происходит фактическая обработка данных, то для работы локальных программ он не нужен - все вычисления производятся на самом устройстве, будь-то смартфон или ноутбук.

Например, приложения типа OneNote или Firefox работают на локальных устройствах, в то время как веб-сервисы, такие как Amazon или Gmail, работают на облачных серверах. Но есть и гибридные системы: поскольку часть производимых ими вычислений может выполняться как на стороне облака, так и локально, то их нельзя причислить ни к приложениям, ни к сервисам. Взять, к примеру, Xbox One. Написанные для этой системы игры могут в автономном режиме работы задействовать локальный ресурс консоли, но при переходе в режим мультиплеера обработка локаций воспроизводится сетевым сервисом Xbox Live.

Пример Xbox One показателен, но он не единичен и таких систем становится всё больше. Подобным образом - позволяя выбрать автономный режим или режим подключения к сети - работают приложения GMaps или Outlook. Таким образом, граница между веб-сервисами и обычными приложениями стирается, вынуждая компании создавать интегрированные гибридные решения. Это происходит на фоне роста вычислительных мощностей как самих девайсов, так и увеличения пропускной способности веб-сервисов. Ничто не указывает на то, что процесс «гибридизации» ПО замедлится или остановится, более того, его уклон - в облачность или автономность - будет зависеть от конкретных потребностей той или иной системы или функции.

Если потребуется обеспечить работу функций, которые нужны для запуска на любом устройстве или браузере (возможность отсылать сообщения и уведомления пользователям, доступ к камере, звуку, GPS, файловой системе, контактам и т. д.), тогда стоит обратить внимание на инструменты кросс-платформенной разработки (Appcelerator Titanium, Kony Platform, Adobe PhoneGap, Xamarin, Cordova и др.). Часть инфраструктуры приложений или сервисов, которая работает в режиме реального времени или активно потребляет сетевой трафик, должна обслуживаться локально. Как уже говорилось, выбор архитектуры будет зависеть от требований к софту, но нужно иметь в виду, что большая его часть будет двигаться по гибридному пути.

Big data . Наш цифровой век порождает неисчислимое количество битов информации. Её было много и раньше, но теперь она прирастает биометрическими данными, собираемыми носимыми устройствами; накопительными базами кликов, которые требуются сайтам для отслеживания поведения пользователей и другими данными, растущими в геометрической прогрессии. Для анализа больших данных используются такие мощные инструменты, как облачные вычисления и алгоритмы машинного обучения.

Очевидно, что для решения задач в области больших данных разработчикам следует задействовать соответствующие средства - Python или языки для функционального программирования типа Scala. Имейте в виду, что рост использования систем машинного обучения для анализа данных приобретает видимые очертания. Их работа выходит далеко за рамки традиционного программирования с его конкретными причинно-следственными связями - ПО, лежащее в основе машинного обучения, работает в обход традиционных практик, порою приводя к результатам, идущим в разрез с ожидаемыми. Тем не менее, потребность в системах машинного обучения для анализа больших данных будет возрастать, равно как и потребность в квалифицированных инженерах и аналитиках данных.

Виртуальная реальность. Любая новая технология всегда вызывает всплеск интереса. Подобное произошло и с виртуальной реальностью (VR), но на пути к популярности встала дороговизна устройств. Возможно, этот год станет поворотным для VR, поскольку над её удешевлением работает множество компаний. Больше всего в этом направлении продвинулась Google - стоимость её шлёма Daydream VR составляет 79 долл. Для сравнения, шлём HTC Vive стоит 800 долл.

Что важно, ранее громоздкие и налагающие ряд других ограничений VR-гаджеты продолжают уменьшаться в размерах. Наряду с этим на рынке увеличивается количество устройств дополненной реальности (AR). Для разработчиков приложений это может значить только одно: самое время отточить специфические для VR/AR навыки в области проектирования и разработки. По ходу нужно будет уловить один из важнейших аспектов: «трансформацию сознания» - когда пользователи ещё не отставят в сторону смартфоны с прилагающимися к ним приложениями/сервисами с «плоским» UI, но уже будут подготовленными к переходу на VR.

Чтобы их впечатлить, создателям VR-софта понадобится приложить старание, и дело здесь не только в фантазии, но и в умении: разработка виртуального ПО должна комбинировать навыки проектирования и в 2D, и в 3D. В краткосрочной перспективе разработчикам нужно учесть, что большинство 3D-приложений нужно будет конвертировать в 2D и обратно, иначе это грозит разделением или даже потерей клиентской базы. Возьмём, скажем, Skype: стоит ли его разделять на два продукта - один для VR и другой для всех остальных? Или это должен быть комбинированный продукт?

Здесь мы подходим к вопросу проектирования интерфейсов, которые работают однородно как в виртуальной среде, так и вне её. Это серьезная проблема с точки зрения дизайна приложений, которую вскоре придётся решать. Другая нерешенная проблема: настройка элементов VR-систем типа датчиков отслеживания или света, нужных для фиксации движений головы и глаз, для управления неигровыми приложениями. Разумеется, для написания ПО для таких устройств, как Oculus Rift, HTC Vive, Google Daydream и Cardboard можно взять игровой движок Unreal Engine или Unity, но, во-первых, сложность состоит в том, что для этого софт нужно конвертировать в 3D, а, во-вторых, задачу ретрансляции кода усложняет привязка к фирменному ПО и оборудованию того или иного VR-устройства. Упростить её поможет стандартизация аппаратных спецификаций, которая препятствует росту популярности VR.

Квантовые вычисления. ПК-рынок уже не первый год находится в упадке, а это значит, что Intel и AMD не спешат соблюдать Закон Мура и экономят средства на освоение новых техпроцессов. Более того, дело даже не столько в этом, сколько в том, что производители компонентов не могут до бесконечности уменьшать размеры транзисторов. Тем временем Google и Microsoft пробуют себя в других направлениях, нанимая для работы над инженерными проектами экспертов в области квантовых вычислений.

Квантовые компьютеры - новое слово в сфере ИТ, мнение ученых по поводу их пригодности к обработке традиционных задач разделились, но несомненно одно - такие компьютеры способны осуществлять расчеты на порядок быстрее транзисторных. Не исключено, что в будущем квантовые процессоры послужат основой для создания ещё меньших и в то же время более мощных устройств. Наверняка некоторые компании (Apple или Microsoft, например) уже сейчас пытаются создать единое носимое суперустройство, которое полностью заменит телефон, планшет и ноутбук.

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


Close