Даю задания для студентов. Они хотят повторно пройти курс. Как отписаться от выполненного курса, что бы пройти его заново? |
Обзор 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.
Подытожим вышесказанное
- Внедрение HTML5 сулит повышение производительности труда программиста за счет "нативного программирования".
- Отпадает необходимость в дополнительных внешних модулях. Все вычисления производятся в браузере.
- Появляются новые теги, такие, как <audio … > и <video … >
- Для работы с двухмерной и трехмерной графикой разработан элемент управления <Canvas>.
- В интернете много бесплатного ПО для разработки HTML5-приложений как от крупных коммерческих компаний, таких как Microsoft, Google и ESRI, так и от небольших фирм, разрабатывающих программы с открытым исходным кодом.
- Для локального хранения данных предложены технологии LocalStorage и WebSql, основанной на базе стандарта SqLite.
- Идея HTML5 популярна в академической среде, библиотеки на JavaScript разрабатывают и в Массачусетском технологическом институте и в крупных биотехнологических компаниях.
Несмотря на все плюсы, остается еще много нерешенных проблем. С началом процесса стандартизации HTML5 (датой принятия предполагается 2020 год) "война браузеров" не только не завершилась, но вспыхнула с новой силой. Это проявляется, в частности, в том, что многие похожие операции (например, трансформации изображений) реализуются в разных браузерах по-разному, поэтому, приходится описывать выполнение этих функция для каждого браузера отдельно. Многие новые технологические решения небезопасны.