HTML5, JavaScript и CSS — основные технологии веб-разработки — завоевали благосклонность индустрии. Главные игроки включают их в свои инструментальные среды. Microsoft, например, сделала HTML5 и JavaScript ключевыми в разработке приложений для MS Windows 8 и браузера Internet Explorer. Но что ещё важнее, технологии интегрированы в среду разработки MS Visual Studio. “Если Microsoft что-то включает в свой инструментарий, значит, это уже принято множеством разработчиков и Microsoft намерена продвигать это вперед”, — сказал Энтони Франко, президент компании EffectiveUI, широко использующей HTML5 в разработке пользовательских интерфейсов и приложений.

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

HTML5, пятая редакция стандарта HTML, является языком разметки для структурирования и визуализации веб-контента, а также одной из ключевых интернет-технологий. Этот язык популярен, поскольку позволяет разработчикам создавать приложения для разных платформ, не меняя их. В идеале, разумеется. Как отметил Кристиан Хейлман, главный специалист по разработке ПО в Mozilla: “Основная отличительная особенность HTML5 — крайняя простота поддержки множества платформ. Когда вы идете по пути создания нативных приложений, то должны писать отдельные приложения для каждой платформы; при этом вы не можете сказать, что напишете приложение на Java и оно будет работать на веб-десктопах, в среде Mac, а также на iOS-, Windows- и Android-смартфонах и планшетах. А вот HTML5 позволяет всё это делать. Мы взяли давно известные технологии для размещения документов в Сети и усовершенствовали их для разработки приложений — добавили офлайновую функциональность, поддержку мультимедиа, механизм сообщений, прямой доступ к аппаратной части”.

Давая прогноз на 2013 г., аналитик из IDC Эл Хилва написал: “Между веб- и нативными приложениями будет существовать баланс, нативные приложения продолжат доминировать, а веб-технологии (HTML5) добьются значительных успехов”. А в своем отчете добавил: “Мы предсказываем светлое будущее для веб-технологий, которые однажды могут влиться в большинство мобильных приложений. Начнем с того, что многие веб-технологии будут поддерживаться в различных инструментах разработки, генерирующих устанавливаемые нативные приложения. Эти приложения, известные как гибридные, могут быть написаны в основном на HTML и JavaScript с использованием компонентов браузера, доступных на “родной” платформе, и затем упакованы как нативные, распространяемые через магазины приложений [далее МП]. Платформа PhoneGap, дарованная проекту Apache Cordova компанией Adobe, является одним из наиболее широко используемых примеров такого подхода”.

По мнению Хилвы, преимущество “чистого” веб-подхода состоит в том, что код можно использовать на ряде аппаратных платформ, а приложения распространять минуя МП. Кроме того, в силу постоянно увеличивающейся популяции веб-разработчиков создатели приложений в большинстве случаев выбирают веб-технологии. “Главным преимуществом такого подхода является перспектива снижения затрат, поскольку одна кодовая база позволяет поддерживать несколько платформ. Реализовать это можно на типовой веб-платформе с использованием HTML/CSS/JS. Тем не менее разработчикам придется адаптировать веб-приложения и тестировать их на разных платформах, иногда объединяя с нативной функциональностью с помощью таких инструментов-посредников, как PhoneGap”.

Даже IBM ввязалась в драку. Майк Гилфикс, директор направления IBM MobileFirst, рассказал eWeek, что одним из мотивов применения HTML5 была возможность использования кода на разных устройствах: “Независимо от того, идет ли речь о телефонах, киосках или планшетах, HTML обеспечивает для них общую основу и позволяет людям использовать контент и код на основе общего набора навыков. Поэтому когда требуется кросс-платформенная поддержка приложений на различных устройствах и унификация пользовательского опыта в работе с такими приложениями, мы говорим об использовании HTML5”.

В 2012 г. для развития стратегии в области HTML5 компания IBM приобрела компанию Worklight. Она создала оболочку для идентификации платформы, над которой трудится разработчик, а также инструменты тестирования и оптимизации кода, пояснил Гилфикс.

Кроме того, IBM поддерживает HTML5 в Rational — наборе инструментов для разработки программного обеспечения. “Мы очень плотно работаем с Rational, фактически мы и произошли оттуда, — сказал Гилфикс. — Любой, кто сотрудничает с Worklight, может полагаться на все инструменты Rational. Мы предлагаем первоклассную среду с функциями автозавершения кода, инструментами визуального дизайна, интегрированными инструментами тестирования кода, функциями структурирования кодовой базы для разного окружения”.

Microsoft также работает над тем, чтобы сделать HTML5 полноценным компонентом своих платформ. “Мы переработали инструменты, чтобы разработчики могли полноценно использовать язык HTML5 на нашей платформе”, — сообщил eWeek Джорджио Сардо, старший технический специалист Microsoft по HTML5 и Internet Explorer.

Microsoft желает, чтобы разработчики программ для Windows 8 использовали Visual Studio, сказал Сардо. “Visual Studio Express является законченным решением для HTML5-приложений, — утверждает он. — На хорошей платформе вам нужна отличная инструментальная поддержка. Вместе с Windows 8 мы выпустили Visual Studio Express, бесплатный инструмент начального уровня для создания нативных приложений Windows 8 с использованием HTML5 и JavaScript. Разработчикам на HTML5 и JavaScript мы дали все возможности, которые они ожидают от управляемого языка, от нативных языков, таких как C++ или C#. Это отладка и оптимизация кода, дизайн интерфейса пользователя, предварительный просмотр в разных форм-факторах и т. д.”.

“Вместе с тем вы можете использовать любой фреймворк или библиотеку JavaScript для создания нативных Windows-приложений, например jQuery, — добавил он. — Мы полностью поддерживаем jQuery и предлагаем разработчикам еще одну опцию, свой собственный фреймворк WinJS”.

Сардо говорит, что оглянувшись на несколько лет назад, он может с уверенностью утверждать, что Microsoft сделала серьезную ставку на HTML5. Компания увидела серьезный рост веб-разработок и поняла, что требования разработчиков повысились — им нужен более широкий функционал, больше возможностей, больше производительности: “И тогда мы повернулись в сторону HTML5. Мы вложили большие ресурсы в работу над браузером IE9 и взаимодействие с W3C. Огромное внимание было уделено производительности. Затем работа продолжилась в IE10 и перешла на новый уровень в Windows 8. Если HTML5 — это своего рода “лингва франка” для Веб и веб-разработчики используют HTML и JavaScript, почему бы не применить их и для создания приложений? Мы переработали Windows 8 для нативной поддержки HTML5-приложений в браузере. Так мы избавляемся от всех промежуточных слоев и предоставляем революционную возможность использовать HTML5 не только для веб-сайтов, но также для создания нативных приложений для данной платформы”.

“Когда мы думаем о создании HTML5-приложений для Windows, нам хотелось бы использовать тот же самый код, тот же язык, тех же разработчиков и дать им возможность реализовать новый опыт в виде приложения, которое можно распространять и монетизировать через МП, — продолжил Сардо. — Вот где мы провели реинжиниринг Windows, чтобы запускать приложения, использующие тот же самый HTML5-код, что и для веб-сайтов. Теперь вы можете использовать его для создания Windows-приложений”.

Однако Джейсон Берес, старший вице-президент по средствам разработки компании Infragistics, не согласен с этим. По его мнению, одной из причин, сдерживающих широкое распространение HTML5, является недостаток инструментальной поддержки: “Visual Studio — лучшая IDE в мире, но не для HTML5-разработки. В действительности у Microsoft нет ничего для разработки на HTML5. Они утверждают обратное, но всё, что у них есть, — это в основном IntelliSense. Столь крупный поставщик IDE в данном случае не преуспел, его инструментарий нельзя назвать зрелым”.

Конечно, Infragistics готова заполнить пробел своими собственными инструментами для HTML5 — например, Ignite UI. В свою очередь, Франко из EffectiveUI заметил, что инструменты Microsoft для работы с HTML5 приемлемы для Microsoft-окружения, но “полмира базируется не на Microsoft”.

Между тем с точки зрения Хейлмана из Mozilla, всё это довольно спорно. “Сам по себе инструментарий еще не вышел из младенческой поры, поскольку на данный момент еще нет ни одного SDK для Веба, — отметил он. — Всё определяется конкретной ситуацией. Множество библиотек, которые мы используем для создания десктопных приложений, слишком тяжелы для мобильных сред”.

Хотя на потребительском рынке HTML5 продвигается медленно, Берес отметил отчетливое движение к поддержке HTML5 в корпоративном секторе: “В прошлом году наши корпоративные клиенты интересовались HTML5 из любопытства, но сами ничего не создавали. Теперь они рассматривают возможности перевода своих наиболее часто используемых приложений на HTML5 и JavaScript. Есть заинтересованность в том, чтобы приложения стали доступны и на мобильных устройствах, и большинство новых разработок они предпочитают делать именно с использованием HTML5 и JavaScript”.

Компания OmniTI, фокусирующаяся на веб-приложениях и интернет-архитектурах, выполняет большие объемы HTML5-разработки для корпоративных клиентов. По оценке операционного директора OmniTI Роберта Трита, HTML5 используется примерно в половине случаев: “Вообще говоря, мы работали с проектами двух видов — в одних старые технологии вроде Flash заменяли на HTML5 и JavaScript, в других разрабатывали новые веб-сайты с унифицированным интерактивным дизайном, адаптированным для восприятия в десктопных, планшетных и мобильных браузерах”.

“Главным требованием наших клиентов обычно была высокая производительность, — продолжил Трит. — Вместо загрузки больших Flash-файлов мы можем сделать то же самое более экономично с использованием HTML5 и JavaScript. У нас появилась возможность добавить функциональность, которую трудно было реализовать на Flash. Процесс перехода обычно не вызывает затруднений: сначала нужно задокументировать существующую функциональность и затем воссоздать её на базе HTML5/JavaScript”.

“Мы часто помогаем компаниям мигрировать с Flash и создавать гибридные приложения на HTML, JavaScript и CSS (с небольшим количеством нативного кода), обычно для Android или iOS. Многие из переделанных нами приложений никогда не видели Интернета. Это были бизнес-приложения с зелеными окнами времен мэйнфреймов. HTML5 дает нам возможность создавать улучшенные пользовательские интерфейсы для старых унаследованных приложений”, — сказал Франко из EffectiveUI.

Тай Амелл, исполнительный директор компании StackMob, предоставляющей хостинг среды разработки HTML5, также отметил всплеск интереса к HTML5 в корпоративном секторе: “Мы видим хороший рост, системные интеграторы или компании, желающие предоставить мобильным сотрудникам доступ к унаследованным системам, имеют возможность для индивидуальной настройки в нашей многопользовательской среде. HTML5 отлично подходит для интерактивного дизайна и использования кода на разных устройствах”.

Несмотря на многие положительные моменты, среди текущих проблем HTML5 Хейлман из Mozilla отмечает невозможность получения доступа к аппаратным компонентам на многих платформах. Например, на устройствах с Firefox OS разработчики могут получить доступ к камере и акселерометру, а также к базе для хранения контента, но если они хотят развертывать приложения для Firefox OS на других платформах, то в iOS доступа к акселерометру и камере из HTML5-приложения у них не будет. Для этого нужно создавать нативное приложение. Кроме того, спецификации для разных платформ различаются. Например, если в iOS используется база данных Web SQL, то в Chrome, IE и Firefox — IndexedDB.

“Большую проблему для разработчиков нативных приложений представляют различия между платформами и браузерами, которые приходится обходить, — сказал Хейлман. — Но для того и существуют уровни абстракции в виде библиотек и API, чтобы скрывать эти различия от разработчика”.

“Главная проблема HTML5 в том, что такие платформы, как Android и iOS, не дают HTML5-приложениям тех же прав, что и нативным приложениям”, — сказал Хейлман.

В свою очередь Франко так охарактеризовал проблемы HTML5: “Ошибиться при кодировании легче, а найти допущенные ошибки труднее”. По его словам, рост использования HTML5 напрямую зависит от упадка Adobe Flash, а упадок Flash является прямым следствием решения Apple отказаться от поддержки в iOS. Хорошо известна запись Стива Джобса в блоге, опубликованная в 2010-м: “Apple стала использовать открытые стандарты HTML5, CSS и JavaScript вместо Flash. Реализация открытых стандартов на мобильных устройствах Apple высокопроизводительна и экономична. HTML5, новый стандарт Веба, который принят Apple, Google и многими другими, позволяет веб-разработчикам создавать совершенную графику, анимацию и анимационные эффекты без использования сторонних плагинов (подобных Flash). HTML5 полностью открыт и контролируется комитетом по стандартам, членом которого является Apple”.

Когда на презентации Apple iPad в 2010-м Джобс показал слайд со словом “Flash” и вопросительным знаком, судьба Flash для Франко стала очевидной: “Apple взяла курс на HTML5, поэтому Flash через несколько лет ждет упадок. Два года назад наша работа на 90% шла во Flash, но теперь наибольшая ее часть приходится на HTML5 и JavaScript. Надо отметить, Flash была отличной средой для создания веб-приложений и, на мой взгляд, мир сделал шаг назад, когда стал отказываться от Flash. Это действительно хорошая среда разработки, но из-за тенденции отказа от Flash-приложений у нас нет выбора”.

Тем временем Adobe и сама использует HTML5 и помогает развивать стандарт. Эндрю Шортен, менеджер по продуктам веб-сегмента Adobe Creative Cloud, сказал, что Adobe поддерживает HTML5 с 2010 г. в Creative Suite 5 и продолжает его поддерживать, основываясь на запросах клиентов.

“Мы видим значительное увеличение количества вариантов использования, в которых вы можете применять HTML5. Наша компания работает над рядом новых инструментов, и мы сами создаем инструменты с использованием HTML5, — пояснил Шортен изданию eWeek. — В прошлом при создании нового инструмента мы обычно создавали нативное приложение на C++ (с использованием одной из четырех библиотек графических интерфейсов для инструментов Adobe) и развертывали его в среде Mac и Windows. Ряд новых инструментов семейства Edge, над которыми мы работаем, включая Edge code, среду программирования для HTML5, JavaScript и CSS, а также Edge Reflow, инструмент дизайнеров для создания интерактивного прототипа, фактически созданы нами с нуля с использованием HTML, JavaScript и CSS”.

Шортен отметил также, что Adobe поставляет продукты, такие как Muse, для верстальщиков и графических дизайнеров, которые не имеют программистских навыков, но хотели бы воспользоваться своим дизайнерским мастерством в Вебе. Muse поддерживает HTML5 и CSS.

Между тем программистам доступен широкий спектр HTML5- и JavaScript-фреймворков, многие из них с открытым исходным кодом. Среди коммерческих — Sencha и Appcelerator. Инструменты Sencha поддерживают разработку настольных и мобильных приложений.

“Благодаря одному из лучших на рынке HTML5-фреймворков мы сделали большой шаг в разработке многофункциональных веб-приложений, — сказал Крейг Уокер, технический директор компании Xero, производителя онлайнового бухгалтерского программного обеспечения и клиента Sencha. — Мы используем современные компоненты для графического интерфейса и базовый фреймворк, экономя время наших разработчиков и позволяя им сфокусироваться на написании кода приложения”.

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

“Наш подход имеет свои отличия, — пояснил он. — Мы предоставляем разработчикам возможность использовать веб-технологии, подобные JavaScript, для доставки нативных мобильных приложений. На наш взгляд, такой подход объединяет лучшее из двух миров: возможность использовать веб-технологии и веб-разработчиков, не принося в жертву накопленный пользователями опыт работы с приложениями”.

“Мы видим, что впечатления пользователей при взаимодействии с приложениями класса B2B [бизнес-для-бизнеса] и B2E [бизнес-для-сотрудника] так же важны, как и для приложений класса B2C [бизнес-для-потребителя], — отметил Райт. — Тенденции, подобные BYOD [принеси свое устройство] и BYOA [принеси свое приложение], влияют на принятие решений по использованию мобильных приложений. Компании понимают, что должны обеспечивать удобство взаимодействия со всеми мобильными приложениями, но не всегда могут принять на работу разработчиков нативных приложений”.

Амелл из StackMob согласен с тем, что недостатком HTML5 является несоответствие ожиданиям пользователей при сравнении с нативными приложениями: “Пока еще мы не можем удовлетворить все пользовательские пожелания. Но я верю, что HTML5 в конечном счёте победит. Возможно, через пару лет. И вы не найдете разработчиков, создающих отдельные версии приложений для разных платформ”.