28 декабря 2017

Лучшие Web технологии 2017 года


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



Прошедший 2017 год для Web технологий был весьма богат на события, имеющие отношение к сервисам и приложениям для конечных пользователей. Ключевые Web стандарты, которые готовились в узком кругу специалистов все эти годы, начиная с предыдущего бума Web технологий 2010-2011 годов, наконец достигли зрелости и уже позволяют получить совершенно новое качество Web приложений, которые уже стали появляться в 2017 году, но ещё больше новинок нас ждёт в следущем году. 

Для того, чтобы данная статья не превратилась в книгу, в ней описаны лишь самые важные события в области Web технологий за 2017 год в самом сжатом виде. Если же вы хотите узнать про какое-либо событие подробней, переходите по ссылкам, а для того, чтобы быть в курсе событий мира облачных технологий постоянно, станьте членом сообщества "Облачные технологии Google", либо просто подпишитесь на эту новостную ленту.



Виртуальная реальность WebVR 1.0 (Beta)

Безусловно главным прорывом 2017 года стала доступность технологии виртуальной реальности WebVR в браузерах Google Chrome и Mozilla Firefox. Теперь для того, чтобы посмотреть 3D сцену в приложении виртуальной реальности вовсе не нужно покупать дорогой навороченный ПК или специальный шлем виртуальной реальности. Достаточно лишь наличия Интернет и подходящего браузера. Тем не менее, приложение WebVR будет работать на всех этих устройствах тоже.

В рамках внедрения WebVR специалистами Google были разработаны библиотеки для объёмного звука, трансляции обычных Web страниц внутри виртуальной реальности, технологии точного позиционирования и дополненной реальности. Кроме того, Google запустил магазин WebVR приложений, где вы можете найти виртуальные приложения.

Web стандарт обмена 3D сценами glTF 2.0

Стандарт glTF 2.0 описывает формат 3D сцены на основе доступных объектов WebGL для отображения в браузере, например для создания общей сцены WebVR. В последней версии glTF 2.0 добавилась возможность полиморфизма и работа в оффлайн приложениях

Графический стандарт WebGL 2.0 (Beta)

На ниве 3D графики для Web, включая виртуальную реальность WebVR, случился грандиозный прорыв с появляением первой работающей версии стандарта WebGL 2.0. Основное отличие WebGL 2.0 от WebGL 1.0 в том, что WebGL 2.0 работает через SPIR-V, а потому априори совместим с любыми аппаратными ресурсами на любом устройстве. 

Более того, WebGL 2.0 благодаря расширению нижележащего SPIR-V 1.2, теперь может оперировать объёмными текстурами и естественным освещением, а благодаря расширению WebGL для Qt, может работать вообще на любых устройствах, создатели которых даже не планировали наличие браузера, т.к. они старше, чем сам Web. Например, теперь Web интерфейс можно показывать даже на панелях управления и на экранах в подголовниках кресел старых самолётов допотопной конструкции ещё на MIPS процессорах.

Однако, главной новостью в мире Web графики всё же стал официальный запрет Adobe Flash с 2020 года, так что теперь у разработчиков просто нет выбора между WebGL и Flash.  


Универсальный транслятор кода и данных SPIR-V 1.2

Технология SPIR-V, если говорить очень упрощённо, представляет собой  универсальный язык низкого уровня, подобно ассемблеру, который имеет предопределённые битовые маски для данных, но виртуальные наименования команд и регистров. Это позволяет приложению, совместимому со стандартом SPIR-V выполняться абсолютно на любом известном типе управляемых чипов, включая CPU, GPU, DSP, PLM. 

Однако, технология SPIR-V не выполняет код приложения непосредственно, а лишь транслирует его нужному адресату, являясь ключевым мегастандартом для конвертации кода и данных между любыми другими языками программирования высокого уровня и бесконечным роем облачных сервисов и устройств IoT. В версии SPIR-V 1.2 добавлены типизированные массивы и новые типы процессоров, которые позволяют, например, запускать код искусственного интеллекта буквально на любом утюге, кофеварке, холодильнике, стиральной машине, телевизоре, часах и т.п., если в них есть микрочип любой архитектуры, хоть ARM или x86, хоть MIPS + DSP.

Именно благодаря SPIR-V приложения ИИ могут распространяться, как в облаке, так и по всем устройствам в доме, автомобиле, самолёте и т.п., так что вы теоретически можете попросить телевизор в комнате сварить вам кофе, а ближайшая, доступная вам кофеварка с удалённым управлением, например на кухне, сварит и оповестит вас обратно голосом через ближайшее устройство, например Google Home или через ваши наушники.

В частности, технология SPIR-V позволяет перенаправлять вычисления тяжёлых графических WebGL приложений на любую доступную архитектуру, в т.ч. перекладывая часть работы с ноутбука на GPU в облаке Google, хотя в теории может переложить рендеринг вашего домашнего видео на стиральную машину, которая всё равно целый день простаивает без дела.

В общем, если кто мечтал остановить мифический Skynet из фильма Terminator, тот уже опоздал, и лишь слабое распространение умных холодильников и кофеварок в вашем доме, пока сдерживает возможности облачного ИИ от дальнейшей экспансии в вашу жизнь.

Полная производительность приложений с Web Assembly 1.0

Web приложения за пределами браузера Google Chrome наконец получили возможность подключать откомпилированные библиотеки, благодаря чему их производительность сравнялась с обычными десктопными приложениями. Официально принятый общий стандарт Web Assembly 1.0 разработан на основе спецификации Google pNaCl (бывший NaCl), которая являлась составной частью Chrome Apps с 2011 года. В связи с этим, Google отказывается от дальнейшей поддержки pNaCl в пользу Web Assembly и, соответственно, от поддержки своего стандарта приложений Chrome Apps в пользу общего стандарта Progressive Web Applications (PWA).

В итоге, типичное игровое Web приложение, которое раньше имело проблемы с производительностью, т.к. использовало только стандартный JavaScript, который транслировался на CPU для всех функций на ядре Google Engine V8, теперь может работать минимум в сто раз быстрее, поскольку его игровую логику можно написать на ассемблере с помощью Web Assembly, функции ИИ переложить на GPU или DSP с помощью SPIR-V, графический вывод переложить на GPU с помощью WebGL, а расчёт самой 3D сцены уже реализован в машинных кодах в коде браузера в рамках поддержки glTF.

Стандарт обмена нейронными сетями NNEF

Появилась возможность клонировать обученные нейросети с помощью стандарта обмена NNEF. Теперь облачный Искусственный Интеллект (ИИ) может накапливать знания, путём долгого и крайне затратного по вычислительным ресурсам обучения своей нейронной сети, используя всю мощь облака Google TensorFlow, а потом мгновенно копировать себя на бесконечное число умных устройств IoT, где нейросеть будет работать лишь на распознавание с помощью локальной библиотеки, например TensorFire в любом браузере, хоть в холодильнике, хоть в кофемашине.


Progressive Web Applications стали родными для Android и Windows

Приложения стандарта Progressive Web Applications (PWA) являются Web приложениями пятого поколения и, соответственно, могут устанавливаться и работать полностью оффлайн. PWA получили возможности по глубокой интеграции с ОС Android 8.0 и ОС Windows 10. Теперь PWA, как на Android, так и на Windows могут устанавливаться из Google Play и Windows Store соответственно, встраиваться в общий список приложений, неотличимо от родных приложений Android и Windows, публиковать свою иконку для запуска на главный экран, получать сообщения и передавать оповещения, используя стандартные протоколы ОС Android и Windows, а также отображать свой интерфейс ровно тем же способом, что и родные для каждой ОС приложения. Таким образом, качественно написанные Web приложения стандарта PWA, могут стать единой платформой для всех наиболее распространённых ОС, предоставляя пользователю именно тот функционал, к которому он привык на своей ОС.

Trusted Web Activity (Beta)

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

Polymer 3.0 (Release Candidate)

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

Таким образом, все бизнес приложения Google, которые он в массовом порядке перевёл на Polymer, для упрощения перехода на стандарт PWA, должны начать просто "летать" даже на самом слабом смартфоне с версии Android 6.0 и выше.

Отправить комментарий