HTML 5: оправдаются ли ожидания?

13.08.2012
Посмотрим, что нового появилось в HTML 5 и на каких новшествах акцентируется внимание.
  • Элемент Canvas для рисования, который позволяет рисовать прямо на страницах без использования дополнительных плагинов - Flash и др. Canvas – это только программный интерфейс, а вся работа по выводу графики реализуется через JavaScript. JavaScript – простой язык программирования, но, например, во Flash можно рисовать без знания какого-то языка программирования. И это одна из многих причин, по которой многие пользователи выберут Flash.
  • Элементы video и audio для воспроизведения медиа без дополнительных плагинов – Flash и др. Это полезное нововведение. Но как-то и без него всё было неплохо.
  • Увеличено количество семантически значимых тэгов (article, aside, footer, header ...).  Планируется, что эти тэги будут как-то влиять на рейтинг страницы с точки зрения поисковых машин.
  • Новые элементы формы (calendar, date, time, email, url, search и др.). Элементы формы являются фундаментом для построения web-приложений. В HTML 5 появилось несколько новых элементов, но этого явно недостаточно. Почему среди новых элементов отсутствует такой необходимый элемент, как таблица, без которого трудно представить базу данных? HTML-таблица - это далеко не то, что нужно разработчикам и пользователям. Мы ждём высокоскоростной интерактивный табличный элемент, благодаря которому на порядки повысится удобство и скорость работы с данными в табличной форме. Если табличный элемент так и не появится в HTML 5, то это будет провалом новой спецификации в области разработки web-приложений и вместо функционального прорыва мы получим робкий шажочек вперёд по сравнению с HTML 4.
  • Сохранение состояния сеанса работы и конец эпохи cookies. Для того чтобы введённые в форму данные не удалялись при перезагрузке страницы с формой, приходилось использовать серверные технологии. Теперь это можно делать на стороне клиента, что очень удобно.
  • Редактирование информации на странице, перетаскивание элементов и обмен сообщениями между страницами. Это полезные возможности, реализация которых ранее требовало значительных усилий. Смысл разработки новых элементов и механизмов заключается в том, чтобы добиться увеличения функциональности при сохранении простоты и удобства их использования. Иначе получится обратный эффект, когда 98% процентов пользователей будут пользоваться 2% понятных им возможностей, как это происходит с приложениями типа Word и Excel.
В HTML 5 есть много интересных нововведений. Было бы очень странно, если бы за 8 лет ничего нового не придумали. Но характер подачи информации о новой спецификации HTML почему-то происходит в одном направлении - улучшение разметки и визуального оформления страниц. Я просмотрел несколько русскоязычных сайтов и видеопрезентаций новых возможностей HTML 5, и создалось впечатление, что многие просто не понимают то, о чём они говорят, что есть HTML 5 и в чём заключается смысл создания web-приложений. С развитием средств массовой информации, рекламы, пиара и др. резко снизился уровень качества информации и её полезности. Наступило время болтовни, когда секретари-менеджеры бездумно озвучивают населению всё, что спускается им сверху. Фразе о том, что “мультимедийные возможности HTML 5 делают излишними использования Adobe Flash и многих других дополнительных программ!” вызывает лёгкую усмешку. “Новый элемент Canvas и SVG (масштабируемая векторная графика) заменят Flash!” Я так смеялся! А иные так раскочегарились, что стали считать JavaScript, DOM и CSS 3 чуть ли не частью HTML 5, который являет собой “новую эру в веб-разработках!”. Это, случаем, не о Canvas идёт речь? Или элемент формы календарь способствует появлению новой эры? Сделайте в HTML 5 нормальную таблицу (да ещё пару-тройку десятков элементов формы), и я первый подпишусь под последней фразой!
HTML - это в настоящее время графическая платформа для создания web-приложений и не более того. Да, в HTML происходит генерация событий, есть элементы формы и некоторые механизмы работы с данными, но без того же JavaScript HTML 5 недалеко ушёл от языка разметки. Элемент формы кнопка - это интерактивный графический элемент, который изменяет свой внешний вид средствами самого браузера при щелчке по ней и генерирует событие. Этот элемент превращается в рабочий объект кнопки только тогда, когда для него программными средствами задаётся реакция на событие, а это уже JavaScript. HTML 5 может существовать сам по себе в виде статичных страниц, но для создания web-приложений ему требуется взаимодействовать с другими технологиями - локальными и серверными.
Задачей HTML является не только предоставление возможностей в разметке и оформлении информации, но и в предоставлении интерактивных элементов для программирования объектов и упрощение этого программирования. Все новые элементы формы в HTML 5 при наличии желания и времени можно реализовать и с использованием HTML 4, но намного быстрее и удобнее воспользоваться готовыми объектами, чем программировать их вручную или искать программный код в Интернете. Если  HTML предложит разработчикам и пользователям достойную библиотеку элементов формы, как это уже давно имеет место быть в Windows-среде, то это действительно будет хороший шаг вперёд. В противном случае HTML так и останется языком разметки и оформления гипертекста.
По своей природе HTML является технологией, которая изначально ориентирована на графическую составляющую web-ресурсов. Функциональную  составляющую web-приложения он не может обеспечить, так как не является языком программирования. Отсюда и желание пустить пыль в глаза примерами возможностей HTML 5 типа этого. Flash просто умер от таких возможностей HTML 5! Не пора ли переосмыслить роль и значение HTML и сосредоточить усилия на включение в него элементов формы для функционального программирования? При разработке многих Windows-приложений работа уже давно ведётся на уровне объектов, а в WEB так и плаваем среди тэгов.  Пора бы уже серьёзно подумать о системе разработки web-приложений средствами визуального проектирования. Существует много редакторов типа Dreamweaver и Java-образных сред разработки, но сама платформа HTML и ряд других моментов тормозят создание по-настоящему мощной и удобной среды для web-разработки, типа Delphi. Почему создание web-приложений должно быть сложнее?
Мне кажется, что развитию HTML мешает непонимание того, чем ранее был HTML и чем он должен быть сейчас. Если раньше HTML был языком разметки гипертекста с ориентированием на визуальную составляющую, то сейчас он должен стать платформой для создания web-приложений с богатым набором интерактивных элементов.  В Microsoft давно поняли это и пытались внедрить ActiveX, но из-за специфики использования этот механизм не особенно популярен. Задача HTML как раз и заключается в том, чтобы это частное превратилось в общее. Необходимо, наконец, сместить акцент с отображения информации на функциональное удобство работы с ней, как это давно реализовано в Windows-программировании. Почему работа с информацией на web-ресурсах должна быть сложнее?
Глядя на доступную в данный момент спецификацию HTML 5, мне кажется, что происходит попытка изобрести велосипед с квадратными колёсами. Зачем, когда уже давно придуман велосипед с отлично работающими круглыми колёсами и осталось только взять лучшее из традиционного программирования и адаптировать это в контексте WEB? Наверно, затем, что крайне любопытно узнать, а всё-таки покатятся квадратные колёса или нет? В таком случае нам остаётся только ждать, когда ребята наиграются и через “надцать” лет реализуют в спецификации HTML 2030 то, что нужно было реализовать много-много лет назад. Вот только нужно ли это будет к тому времени?
Оглавление
Copyright © 2016