Опубликован: 29.08.2012 | Доступ: свободный | Студентов: 2161 / 215 | Длительность: 08:05:00
Лекция 1:

Обзор HTML 5

Аннотация: В лекции рассматриваются такие вопросы, как история создания нового стандарта языка гипертекстовой разметки, проблемы совместимости, принцип приоритетности, взаимодействие с браузерами, отказ от подключаемых модулей.

Примеры

Презентацию к данной лекции можете скачать здесь.

Введение

Сложно переоценить роль Интернета в жизни современного общества. Интернет развивается благодаря усилиям большого количества участников, среди которых хотелось бы отметить производителей браузеров, серверного программного обеспечения, веб-приложений, телекоммуникационного оборудования и авторов цифрового контента.При любой коллективной деятельности очень важна согласованность в работе всех участников. Такая согласованность при разработке веб-приложений обеспечивается стандартом языка гипертекстовой разметки, HTML. В настоящее время мы наблюдаем становление и все более широкое распространение пятой версии стандарта HTML. Его разработку совместно ведут Рабочая группа по разработке Гипертекстовых Прикладных Технологий в Веб (WHATWG) и World Wide Web Consortium (W3C). Эти организации включают в себя представителей ведущих софтверных компаний. Наряду с такими фирмами, как Google и Apple активную роль в WHATWG и W3C играет Microsoft.

Зачем изучать HTML5? HTML5 воплощает, с одной стороны, целый комплекс оригинальных технических решений, с другой стороны, HTML5 позволяет программисту по-новому взглянуть на сам процесс разработки веб-приложений.

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

Немного истории

В настоящее время в области разработки web-страниц действует стандарт HTML 4.01, принятый 24 декабря 1999 года (http://www.umade.ru/resources/specifications/html401/index.htm). Этот стандарт явился значительным шагом вперед. В частности, существенно улучшилась поддержка мультимедиа. Параллельно со стандартом HTML 4.01 велась работа по усовершенствованию стандарта каскадных таблиц стилей. В настоящее время действует версия CSS 2.1. С тех пор прошло тринадцать лет…

Что интересного произошло с 1999-го года?

  • Появились новые классы вычислительных устройств - смартфоны и планшеты. Популярность этих устройств стремительно растет, это проявляется, в частности, в темпах роста продаж. Традиционные способы взаимодействия с этими устройствами (клавиатура и мышь) не подходят. Перед программистами встала задача разработки приложений, использующих сенсорный экран и речевой ввод. Благодаря богатым коммуникационным возможностям смартфоны и планшеты могут быть постоянно подключены к Интернету, при этом связь может быть ненадежной, что требуется учитывать при разработке мобильного программного обеспечения.
  • Мультимедиа-приложения существенно "прибавили в весе" - появилось видео высокого разрешения (например, FullHD1920 1080) и высококачественное аудио (например,FLAC - FreeLosslessAudioCodec).
  • Двухмерный графический интерфейс поднадоел, при том, что высокопроизводительные графические ускорители стали очень доступны.
  • Нулевые годы были отмечены "войной браузеров" - проблема заключается в том, что один и тот же html-код отображается в разных браузерах немного по-разному. Это вынуждает программистов писать сразу несколько версий web-сайтов, оптимизированных под конкретные браузеры. Определенные надежды в этой связи были связаны с более строгим стандартом XHTML, который, впрочем, не прижился.
  • Многие пользователи сетуют на длительную загрузку web-страниц. Одним из способов уменьшения времени отклика является использование технологии AJAX (асинхронный JavaScript + XML). Нулевые годы были отмечены широким использованием этой технологии при создании сайтов.

С течением времени существующий стандарт HTML 4.01 объективно стал тормозить развитие web-технологий. Для преодоления возникающих трудностей многие производители программного обеспечения, прежде всего, браузеров, предложили свои подходы. Эти решения не всегда поддерживаются остальными производителями ПО. Интернет - явление коллективное и требует координированных действий большого количества участников - производителей аппаратного и программного обеспечения. При отсутствии такого консенсуса - страдают пользователи или предаются забвению интересные технические разработки.

Здесь хотелось бы сказать несколько слов о стандартизации в области IT-индустрии. Тут имеют место два подхода - стандартизация "снизу-вверх" и стандартизация "сверху-вниз". При стандартизации "снизу-вверх" некая компания выводит на рынок революционный продукт, который получает широкое признание. Вскоре данное решение становится стандартом "де-факто", а иногда и "де-юре". В качестве примера можно привести персональные компьютеры IBMPC, давшие впоследствии стандарт x86, или способ хранения информации о пространственных привязках объектов в shape-файлах, предложенный компанией ESRI.Во втором случае перед выпуском изделия компании-производители образуют консорциум, в рамках которого разрабатывают некий стандарт, которому в дальнейшем следуют. Это особенно заметно в области производства персональных компьютеров, когда, например, компания Intel предоставляет своим партнерам из Тайваня и Китая спецификацию микропроцессора и чипсета, после чего высокие договаривающиеся стороны садятся за стол переговоров и совместно принимают требования к оперативной памяти (например, DDR3). Подобным законодателем моды в области микропроцессоров для мобильных и встраиваемых систем является компания ARM и ее партнеры, такие как TexasInstruments и Samsung.

Одним из способов преодоления ограничений HTML 4.01 для работы с мультимедийным контентом является создание так называемых "насыщенных Интернет-приложений" (RIA, Rich Internet Applications). Для реализации этой концепции некоторые компании разрабатывают надстройки или, как говорят, плагины над браузерами. В качестве примера можно привести технологии Adobe Flash и Microsoft Silverlight. Скриптовым языком в одном случае выступает ActionScript, во втором случае - C#. Оба подхода являются движением "снизу-вверх". Технологии позволяют создавать очень интересные web-сайты, но требуют от программиста специальных знаний.

Альтернативой такого подхода является концепция так называемого "нативного" программирования. В этом случае существенно расширяются возможности браузера, он зачастую, выступает в качестве операционной системы. При этом весь функционал, который раньше можно было реализовывать благодаря подключаемым модулям - плагинам, закладывается в сам браузер.Данный подход может существенно облегчить труд программиста, в частности, в HTML5 предполагается поддержка браузерами большого количества аудио- и видеоформатов, которые воспроизводятся с помощью простых тегов <audio …> и <video …>. Основным скриптовым языком при написании HTML5-страниц является JavaScript. Программистам теперь не понадобится выходить за рамки "официального" языка, что также облегчит разработку web-приложений. Концепция нативного программирования является проявлением стандартизации "сверху-вниз".

Как уже говорилось выше, при программировании акцент постепенно будет смещаться от настольных систем к мобильным устройствам. Приложения, написанные для смартфонов или планшетов должны понимать язык жестов. Если та или иная технология не поддерживает сенсорный экран, ее не будут использовать в мобильных устройствах.Примером совместимого с HTML5 браузера является MS Internet Explorer, он поддерживает сенсорный экран. MS Internet Explorer используется в устройствах, работающих под управлением операционной системы WindowsPhone 7.

При разработке стандарта HTML5 был использован так называемый принцип приоритетности. Этот принцип гласит, что в первую очередь учитываются интересы пользователей, а только потом - web-разработчиков, производителей браузеров и регулирующих органов. В этой связи HTML5 имеет преимущественно практическую направленность (http://ldalab.ru/post/udobstvo_ispolzovaniya_html5.html).

Работы в области разработки стандартов HTML5 ведут компании самой разной величины и с самыми разными корпоративными стандартами. Крупные компании обычно устанавливают для себя строгие корпоративные стандарты в области безопасности создаваемых программных решений. Это обстоятельство может связывать руки разработчикам. Так, в настоящее время все большую популярность приобретает технология трехмерной визуализации WebGL, предложенная Владимиром Вукичевичем из компании Mozilla (http://ru.wikipedia.org/wiki/WebGL). WebGL использует аппаратные возможности видеоплаты, являясь аналогом с OpenGL. У Microsoft есть своя технология рендеринга, заложенная в WPF/Silverlight, так же использующая аппаратные возможности видеоплаты. Но поддержка WebGL в Internet Explorer отсутствует. Инженеры компании считают, что при использовании WebGL трудно гарантировать безопасность web-приложений. Компании, выпускающие продукты с открытым исходным кодом снимают с себя ответственность за возможные последствия использования. Программы с GPL-лицензией можно использовать и модифицировать по своему усмотрению. В этом отношении у программистов, пишущих opensource-программы руки развязаны, как следствие большое количество интересных бесплатных примеров в Интернете.

Вообще, общей тенденцией при разработке HTML5 является отказ от закрытых решений и переход к открытым стандартам. Компания Microsoft, например, бесплатно предлагает интересные AJAX-контролы, такие, как Accordion, Google выпустила бесплатную библиотеку jsapi.js (так же с поддержкой AJAX), с помощью которой можно строить красивые диаграммы.

Как уже говорилось выше, JavaScript является основным скриптовым языком для разработки HTML5-приложений. Многие лидеры IT-индустрии создают интерфейсы прикладного программирования (API, Aprogramming Interface), с помощью которых программисты смогут использовать возможности их технологий, создавая сценарии на JavaScript. В качестве примера можно рассмотреть API для картографических сервисов. Компании Microsoft, ESRI, и Google, например, предлагают API, написанные на JavaScript, для доступа к BingMaps, ArcGIS и GoogleMaps, соответственно.

В будущем планируется возрастание роли мобильных устройств. Смартфоны и планшеты могут периодически оказываться вне зоны действия сети. С этой целью в HTML5 включаются возможности сохранения данных в браузере и даже создание автономных web-приложений благодаря технологиям LocalStorage и WebSQL.

Подытожим вышесказанное

  1. Внедрение HTML5 сулит повышение производительности труда программиста за счет "нативного программирования".
  2. Отпадает необходимость в дополнительных внешних модулях. Все вычисления производятся в браузере.
  3. Появляются новые теги, такие, как <audio … > и <video … >
  4. Для работы с двухмерной и трехмерной графикой разработан элемент управления <Canvas>.
  5. В интернете много бесплатного ПО для разработки HTML5-приложений как от крупных коммерческих компаний, таких как Microsoft, Google и ESRI, так и от небольших фирм, разрабатывающих программы с открытым исходным кодом.
  6. Для локального хранения данных предложены технологии LocalStorage и WebSql, основанной на базе стандарта SqLite.
  7. Идея HTML5 популярна в академической среде, библиотеки на JavaScript разрабатывают и в Массачусетском технологическом институте и в крупных биотехнологических компаниях.

Несмотря на все плюсы, остается еще много нерешенных проблем. С началом процесса стандартизации HTML5 (датой принятия предполагается 2020 год) "война браузеров" не только не завершилась, но вспыхнула с новой силой. Это проявляется, в частности, в том, что многие похожие операции (например, трансформации изображений) реализуются в разных браузерах по-разному, поэтому, приходится описывать выполнение этих функция для каждого браузера отдельно. Многие новые технологические решения небезопасны.

Александр Лобанов
Александр Лобанов

Даю задания для студентов. Они хотят повторно пройти курс. Как отписаться от выполненного курса, что бы пройти его заново?