- PVSM.RU - https://www.pvsm.ru -

5 API которые изменят Веб в 2013

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

Настраиваемые фильтры CSS

СSS фильтры уже имеются в Chrome и Safari, и позволяют расширенные настройки стилей [1] элементов, такие как размытие, искривление и модификацию цветовой интенсивности. Однако, это — только начало. Настраиваемые фильтры CSS [2] позволят вам описать свой собственный вершинные и пиксельные шейдеры в GLSL [3], языке, который является неотъемлемой частью традиционного 3D-рендеринга уже в течение 10 лет или около того.

Что это означает на практике, это то, что вы можете создавать невероятные эффекты. Комбинируя фильтры с CSS-переходами, вы можете производить красивые трансформации, от завитушек на странице до складывающихся элементов [4]. Пределом является лишь ваше воображение!

Так когда вы можете использовать их? Adobe стал новатором [5] этой технологии и Настраиваемые Фильтры уже доступны в Chrome. Ожидается увидеть их в Chrome в начале следующего года. На данный момент, с ними можно поиграть [6] в Canary.

API автозаполнения

Данное API имеет потенциал радикально изменить регистрации и платежи в сети. Автозаполнение разрабатывается для того, чтобы упростить заполнение форм, и даже сейчас имеется спецификация [7] для подсказок, с каким типом данных связаны поля в форме.

Однако, автозаполнение является лишь лечением симптомов, а вовсе не болезни. Ранее в июне я предлагал API [8] программного извлечения данных автозаполнения из хранилища браузера. На практике это означает, что мы можем заполнять большинство форм, и осуществлять платежи в один клик, значительно повысив юзабилити и конверсию.

Команда Chrome работала над этой идеей, и в октябре было представлено [9] предложение и патч для движка WebKit [10]. Это невероятно захватывает и, в сочетании с Mozilla Persona [11], может произвести революцию в осуществлении регистраций и платежей через интернет.

Так когда вы можете ожидать увидеть это в открытом доступе? Ну, в то время как закулисная работа была проделана, Chrome все еще нуждается в реализации интерфейса интеграции для этого. Я думаю, что это будет видно в конце 2013 года.

Приложения Google Chrome

Что, если я скажу вам, что Google прокрался в ваши операционные системы через все ваши девайсы, включая ваш лэптоп и мобильник. Вместо того, чтобы конкурировать с Microsoft и Apple путем разработки собственной ОС, Google решает построить свою платформу поверх существующих операционок. Данная платформа называется Chrome.

Так первым шагом стало распространение, через которое было достигнуто более 350 миллионов пользователей Chrome. Вторым шагом было расширение Chrome's APIs, позволивших разработчикам получить больше доступа к операционкам и заменить необходимость в обычных десктопных приложениях.

Несколько месяцев назад, Google безмятежно объявил о выходе Chrome Packaged Apps [12] (устанавливаемые приложения), которые позволяют разработчикам делать десктопные программы, использующие движок Chrome. Они могут быть установлены за один клик через Chrome Web Store, имея доступ к таким системным API, как USB, Bluetooth и UDP Sockets, и могут быть открыты через иконки рабочего стола. Эти приложения полностью кроссплатформены, автономны, и кажутся нативно понятными для неопытных глаз. В любом случае, эти гибриды сочетают в себе лучшее из областей десктопных и Веб-приложений.

Так в чем же подвох? Хорошо, Chrome Apps не готовы к началу активного использования прямо сейчас, и API пребывает в стадии разработки. Например, создание пользовательской перетаскиваемой панели всё еще остаётся сложной задачей. Я бы дал им еще несколько месяцев на завершение продуктов.

ECMAScript 6

ECMAScript 6 (ES6), следующая версия JavaScript, является одним из захватывающих новых дополнений, которое фиксит некрасивые места в языке так же хорошо, как и обеспечивает новые особенности, такие как параметры по умолчанию и новая структура.

Классы также находятся на повестке дня, вместе с полным наследованием. Вместо того, чтобы подражать модулям CommonJS или AMD, ES6 делает их первостепенными, под вдохновением от питоновских систем импорта.

Одной части ES6 я особенно радуюсь, та часть, которая не может быть смоделирована через абстракции, как в CoffeeScript, это прокси.ES6 прокси [13] позволяют динамически искать имена функций во время выполнения, позволяя функциональность, аналогичную method_missing в Ruby. Это, в сочетании с получением и установкой, позволят включить все виды интересных DSL, и API.

Производители ES6 [14] собираются полностью изменить то, как мы пишем асинхронный JavaScript. Вместо обратного вызова спагетти, к которому мы привыкли, мы можем вызывать асинхронные функции через синхронный API используя ключевое слово yield. Вы можете увидеть пример этого в task.js [15].

spawn(function*() {

var data = yield $.get(url);

$('#result').html(data);

});

Вы могли видеть подобный API в Ruby при использовании Fibers. Лично для меня, обратные вызовы становились главным раздражителем при написании исходного кода в MVC Node apps, и мне приходилось использовать библиотеку под названием Ace [16]. Я очень рад, что это становится нативным для языка.

Большая часть ES6 в настоящее время доступна в Chrome под флагом экспериментального JavaScript. Он будет выпущен в начале 2013 года. Вы также можете использовать ES6 в Node прямо сейчас с помощью опции командной строки --harmony.

Web-компоненты

Веб-компоненты [17] и Теневой DOM просто открывают путь естественным элементам, создаваемым внутри браузера. Используя API, вы можете определять свои собственные HTML-элементы, включая стили и поведение. Как и родные HTML-элементы, они могут быть включены как одиночный тег.

Веб-компоненты собираются изменить пути написания и распространения JavaScript библиотек.Они могут быть полностью разделены, легко соединены, и являются основной причиной, по которой Якоб и я написали менеджер пакетов Bower [18].

Например, я могу написать неплохой компонент карты, добавить его в пакетный менеджер, и другой разработчик сможет встроить его в свое приложение через одиночный тег. Компоненты отделены друг от друга, и их внутренние HTML, CSS и JavaScript далеко абстрагированы от привычных тегов.

Веб-компоненты доступны под установленным экспериментальным особенным флагом WebKit в Chrome. На данный момент, вы можете использовать эти x-tags polyfill [19] от Mozilla.

Будущее

Распространенной реакцией на некоторые обсуждения новых Web API, это обличение в том, что много лет может пройти прежде чем некоторые из них станут доступны для использования. Я же чрезвычайно оптимистично смотрю в будущее.

Пока многим из этих API потребуется некоторое время для оптимизации под другие браузеры, та доля рынка, которая принадлежит WebKit, будет оказывать давление на остальных производителей браузеров предлагать их собственные реализации. Действительно, это не займет много времени для HTML5 достигнуть жизнеспособной производительности.
Что касается обратной совместимости, некоторые из этих интерфейсов могут постепенно деградировать.

Причиной, по которой будущее выглядит столь ярким, являются «вечнозеленые» браузеры, или браузеры, которые автоматически обновляются в фоновом режиме. Это занимает около 18 недель, чтобы новая функция в Chrome’s Canary [20] могла быть развернута на свои ~ 350 миллионов пользователей. Это невероятно высокая скорость инновационных внедрений, и они происходит быстрее, чем когда-либо прежде.

2013 обещает стать большим годом для веб!

P.S. (от переводчика): последние части про ES6 и веб-компоненты стали настоящим испытанием для моего мозга [21], и если кто-то может предложить более адекватный перевод некоторых фраз, буду благодарна поправкам. И в завершение, хочу пожелать, чтобы 2013 стал действительно большим годом для нас всех, с наступившим!

Автор: yukkat

Источник [22]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/api/23927

Ссылки в тексте:

[1] расширенные настройки стилей: http://davidwalsh.name/css-filters

[2] Настраиваемые фильтры CSS: http://alteredqualia.com/css-shaders/article/

[3] GLSL: http://en.wikipedia.org/wiki/GLSL

[4] складывающихся элементов: http://blattchat.com/2012/10/09/its-curtains-for-you/

[5] Adobe стал новатором: http://html.adobe.com/webstandards/csscustomfilters/

[6] можно поиграть: http://html.adobe.com/webstandards/csscustomfilters/cssfilterlab/

[7] спецификация: http://wiki.whatwg.org/wiki/Autocomplete_Types

[8] я предлагал API: http://blog.alexmaccaw.com/one-click-signups-and-purchasing

[9] было представлено: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html

[10] WebKit: https://bugs.webkit.org/show_bug.cgi?id=100557

[11] Mozilla Persona: https://developer.mozilla.org/en-US/docs/persona

[12] Chrome Packaged Apps: http://developer.chrome.com/apps/about_apps.html

[13] ES6 прокси: http://wiki.ecmascript.org/doku.php?id=harmony:proxies

[14] Производители ES6: http://wiki.ecmascript.org/doku.php?id=harmony:generators

[15] task.js: http://taskjs.org

[16] библиотеку под названием Ace: https://github.com/maccman/ace

[17] Веб-компоненты: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/explainer/index.html

[18] Bower: http://twitter.github.com/bower

[19] x-tags polyfill: https://air.mozilla.org/x-tags/

[20] Chrome’s Canary: http://paulirish.com/2012/chrome-canary-for-developers/

[21] мозга: http://www.braintools.ru

[22] Источник: http://habrahabr.ru/post/164475/