HTML 5: эволюция мутаций, или куда доведет язык

«В случае чего, можешь ссылаться на меня...»

Из разговора web-сервера с браузером

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

Думаете, это позиция разума? А вот и нет! Это — адаптивность, способность выживать в неимоверных для других млекопитающих условиях. Конечно, разум этому делу помогает, и недурно, но именно благодаря адаптивности человек как вид не только выжил, но и заполонил всю планету.

Мы невероятно легко привыкаем ко всему — и к хорошему, и к разному. Доза спиртного, которая любого нормального кроманьонца отправила бы в глубокий нокаут, для большинства из нас — так, утренний аперитив. Чудовищная информационная нагрузка нынешнего времени не сносит нам крышу, а должна бы. Словом, примеры множить можно до посинения.

Изобретения, ставшие откровениями позавчера, вчера пошли в поточное производство, а сегодня обитают в каждом доме. Сантехника, бытовые электроприборы, компьютеры, наконец, — всего этого не было поколение, два или три тому назад. А мы уже к этому привыкли. Настолько, что уверены: так было всегда.

Язык — тоже изобретение, между прочим. Сигнальная система, средство выражения эмоций и передатчик информации в одном флаконе. Разные ученые о нем расскажут что-то свое. Логопед будет долго объяснять процесс звукообразования с помощью гортани, верхнего неба, языка и мимических мышц. Лингвист покажет модели языка, как абстрактного объекта и будет распинаться о языковой рефлексии и принципах интроспекции. Филолог, как Сусанин поляков, уведет нас в дебри старинных текстов и убедит в том, что весь новояз — это хорошо забытый древнерусский, а «превед» использовали для бития челом еще при Владимире Красносолнышкине.

Однако все они сойдутся в одном: язык развивается. Плохо ли, хорошо ли, в соответствии с теориями великих языковедов или вразрез, но этот инструмент с каждой новой эпохой обрастает новыми фичами, которые лет несколько назад показались бы полным бредом и безумием, а «ндцать» лет тому вперед окажутся смешными и наивными. Поэтому не стоит нервничать и гневной волной обрушиваться на LOL и олбанский диалект русского. Язык просто пробует приспособиться к эпохе, попасть в ее пазы, чтобы не скрипеть на многомегабитных поворотах IT-магистралей, а, как и подобает инструменту, помогать людям. Помогать общаться. Уверен, что через время все наносное и действительно легковесное забудется, как это случилось с ДвУРАК (Движением ультрарадикальных анархо-краеведов) и прочими осоавиахимами.

HTML — язык, изменивший Интернет. Благодаря ему гипертекст превратился из академической разработки в удобный инструмент работы с информацией для рядовых пользователей

Все сказанное выше относится не только к нашей с вами устно-письменной речи, а к ЯЗЫКУ в целом. Как к явлению. Ведь сейчас даже первоклашка знает: чтобы компьютер сделал что-то полезное, ему это нужно втолковать на его языке. Точнее — языках, поскольку компьютер — вселенная, густонаселенная разноязычным народом. И если Basic, Pascal и C++ среднестатистический россиянин с трудом вспомнит по школьно-институтскому курсу (а, вспомнив, содрогнется), то об HTML он догадывается только по расширениям файлов, сохраняемых в своем браузере. А между тем (и это не гипербола), HTML — самый распространенный в мире язык. Даже мандаринский диалект китайского от него безнадежно отстает. Потому что на нем «разговаривают» сотни миллиардов web-страничек, которые человечество открывает для себя утром, днем, вечером и ночью.

SGML, HTML, XML... Для тех, кто не в теме

Уж сколько о HTML написано! В том числе и на самом HTML. Но коротенько повториться не грех. Подозреваю, что учение — безотцовщина, поскольку про его мать слыхали все, а вот про отца даже ученые не в курсе. Зато у HTML целых два папаши. Первый, как это принято сейчас говорить, генетический предок — язык SGML (Standard Generalized Markup Language — стандартный обобщенный язык разметки). Суровый и строго соблюдающий правила язык для отображения машиночитаемых документов. Нет, не документов, читаемых машиной (не доросли еще компьютеры до этого), а документов, читаемых с компьютерных устройств вывода — мониторов и принтеров. Придуманный в 1969-м «Голубым гигантом» IBM для аэрокосмических нужд, он быстро стал стандартом де-факто, а потом и де-юре в научной и издательско-полиграфической сфере.

Вторым HTML-папашей стал счастливчик Тим Бернерс-Ли, который в 1989 году взял да и упростил SGML так, чтобы ученые, не столь сильные в верстке электронных документов, могли воспользоваться всеми прелестями технологии разметки. С этой точки зрения HTML — диалект SGML, или, выражаясь официально, его приложение. Кровное родство закреплено официально в стандарте ISO 8879.

То, что HTML — мутант в мире языков разметки, ясно по его применению. Введя в него дескриптор (или, правильнее, тэг) , мистер Бернерс-Ли выпустил из бутылки гипертекстового джинна Web. Который с тех самых пор услужливо и исправно выполняет компьютерные желания Человечества. SGML похвастаться таким тэгом не может. Сын переплюнул папашу. Хотя в мире языков разметок HTML остается своеобразным «третьим сыном». Тем, кто «вовсе был дурак».

Загвоздка в его простоте. Ведь он задумывался, чтобы корректно отобразить документ на самых разных устройствах, будь то суперсовременный LED-дисплей или монохромный экран-глазок мобильника первого поколения. SGML такая задачка не по зубам, поскольку программы для разбора его структуры (приближенные к ним зовут их парсеры) весьма сложны и прожорливы в плане вычислительной мощности. Откуда ей взяться у первых мобильников? А вот парсер HTML простой и легковесный. Так как ему требовалось правильно интерпретировать около десятка тэгов. HTML, с точки зрения папы SGML, общался с миром на LOL-диалекте! Но именно это и сделало его популярным.

Между тем язык становится таковым, когда его правила (грамматика, синтаксис, семантика) утверждаются официально. Стандартизуются. И к 1996 году необходимость стандартизации назрела. А причина — в диалектах. Не будучи суровым в плане правил, HTML начал расщепляться на диалекты, в каждом из которых был свой набор тэгов. Закоперщиками такого расслоения стали производители браузеров. Стараясь переплюнуть один другого, они загромоздили свои версии HTML собственными конструкциями и правилами. Для тех времен нередким явлением была такая, например, надпись на web-страничке: «Эта страница оптимизирована для просмотра в Netscape Navigator». Язык оставался языком, но диалекты его сильно искажали. Очень похоже на то, как вятичи пытаются говорить с вологодцами.

Именно тогда Консорциум Всемирной паутины (World Wide Web Consortium, W3C) и положил конец диалектическим изысканиям, затвердив стандарт HTML 2.0.

Десятилетию W3C посвящается! Всемирная паутина растет и развивается благодаря стандартизации используемых в ней технологий

Стандарт сырой и допускающий, по сути, множество вольностей, но все же стандарт. Гарантирующий, что любая страница отобразится в разных браузерах практически одинаково. В начале 1997 года, прислушавшись к пожеланиям пользователей и разработчиков, по горячим следам был утвержден стандарт HTML 3.2. В нем появились тэги, поддерживающие форматирование таблиц и тонкую работу с размещением на странице текста. А уже в конце 1997-го увидела свет редакция HTML 4.0. Ее задачей стало избавление от реально неиспользуемых конструкций и введение в стандарт технологии каскадных таблиц стилей CSS (Cascading Style Sheets), которые позволяли авторам страниц формировать свой неповторимый стиль, оставаясь в рамках стандартного диалекта HTML. Окончательная шлифовка web-наречия состоялась в 1999 году с выходом стандарта HTML 4.1.

При этом страницы, написанные на диалектах 2.0, 3.2 и 4.0, продолжали благополучно висеть в Паутине. Чтобы браузерам не путаться в этих, все же несколько разных, стандартах, W3C предложил в начале каждой страницы объявлять тип документа. Так появился служебный элемент DOCTYPE. Например, для стандарта HTML 4.1 существует целых три DOCTYPE.

Тип DOCTYPE Описание DOCTYPE Строгий (Strict) Страница не содержит устаревших или не одобренных W3C элементов HTML Переходный (Transitional) Страница, в целях совместимости с предыдущими стандартами HTML, содержит устаревшие элементы C поддержкой фреймов (Frameset) Страница поддерживает устаревший набор тэгов, описывающих разные области экрана как фреймы

Строка DOCTYPE, объявляющая браузеру версию языка на загруженной HTML-странице, является обязательным к использованию элементом. Это закон!

На целых десять лет стандарт HTML 4.1 стал СТАНДАРТОМ для web-дизайнеров. А это свидетельствует о зрелости языка. Между тем у HTML есть старший брат — «умный детина» в терминах русского народного творчества. И имя ему XML (eXtensible Markup Language — расширяемый язык разметки).

Для подробного рассказа об XML потребуется отдельная статья, а лучше толстая книжка. Ограничимся поэтому очень простым утверждением: XML в чистом виде использовать в Web нельзя. Причин здесь несколько, но главных всего две:

1) Строгий синтаксис XML не терпит ошибок и вольностей (HTML в этом плане куда как более демократичен). При этом ошибки не обязательно должен допускать web-дизайнер. Идеальная, с точки зрения XML, страница может быть испорчена данными, которые внес в форму пользователь или сгенерировал какой-нибудь неразумный Java-скрипт.

2) Процесс разбора XML-документа требует, чтобы парсер остановился на первой же ошибке и сообщил о ней разработчику или читателю документа. А это, вкупе с первой причиной, создаст океан страниц, которые ни один браузер не сможет прочесть.

Процесс разбора (парсинг) XML-документа больше напоминает хождение по лабиринту. И, как в лабиринте, может завести в тупик

Между тем, потеряв аудиторию Web, XML успешно завоевывает позиции в офисных стандартах. Известные нам по Microsoft Office 2007 документы с расширением *.*x (DOCX, XLSX и PPTX) — не что иное, как XML-контейнеры. То бишь, ближайшие родичи банальных архивных файлов вроде ZIP или RAR. Не верится? А вы переименуйте любое из этих расширений в ZIP и откройте файл поддерживающим ZIP-архивы архиватором.

Четкость правил и местами избыточный синтаксис и семантика XML очень привлекала консорциум W3C. Ведь его основным девизом является: «Полностью раскрыть потенциал Всемирной паутины, путем создания протоколов и принципов, гарантирующих долгосрочное развитие Сети». А что может быть долговечнее крепко сбитого стандарта?

XHTML, DHTML и микроформаты. Куда нас занесло?

«Вот кабы к губам Никанора Ивановича да приставить нос Ивана Кузьмича...». Именно в этом направлении размышляли сотрудники консорциума W3C, создавая рабочую группу новой спецификации XHTML (Extensible Hypertext Markup Language — расширяемый язык разметки гипертекста). Вот кабы создать язык такой же синтаксический строгий, как XML, такой же легкий в обработке браузерами, как HTML, и при этом не вызывающий рвотных позывов у армии web-дизайнеров. XHTML — попытка такой вивисекции. Взяли за основу жесткие XML-правила, изрядно присолив их HTML-демократией — и создали вполне употребимую нотацию. И, главное, разработчики браузеров не стали отнекиваться, а включили обработку XHTML-страниц в свои детища. Лишь бы в начале страницы был соответствующий DOCTYPE. Возникает резонный вопрос: зачем было напрягаться с новым стандартом, когда четвертый HTML долгие годы удовлетворял всех? Все дело в желании стандартизующих органов приучить web-творцов делать качественный продукт. А страницы, созданные в XHTML, можно и нужно проверять на валидность. XML-сущность стандарта позволяет создать программы-валидаторы, которые просмотрят весь документ и, как в программировании, укажут пальчиком на ошибку. И, главное, теперь на странице можно ставить знак XHTML-валидности — гарантию ее качества.

На странице онлайн-валидатора HTML и XHTML можно не только проверить соответствие своего документа стандартам, но и признаться процессу валидации в любви

XHTML рос, добравшись до стандарта 1.1, а в это время вокруг него, да и HTML 4.1, начали возникать наслоения стороннего характера, с языковедением никак не связанные. Дело было в украшательстве и желании привлечь к своему ресурсу определенную аудиторию.

Скажем прямо: для самой распространенной в мире информационной технологии в начале XXI века Web выглядел не редкость статично. Да, страничка — это документ, а не телеэкран. Но как вести бизнес с унылыми документами? Инициатива пошла от разработчиков браузеров, которые в погоне за пользователями начали изыскивать возможности оживить контент. Вариантов была масса, но все они сводились к одному решению: браузер должен стать умнее. Он должен научиться не только интерпретировать HTML и XHTML, но и дружить с другими технологиями. Например с Flash и Java. Будучи фактически виртуальными машинами для исполнения собственного кода, эти технологии умели отображать результаты его выполнения на web-страницах. Это как оживляло их, привнося долгожданную динамику, так и порождало совершенно неожиданные сервисы. Великий и могучий YouTube, с которым сейчас ассоциируется вообще любое интернет-видео, целиком построен на Flash. Осознав перспективность включения в страницы динамического медиаконтента, W3C утвердил спецификацию языка DHTML (Dynamic HTML — динамический HTML), который, используя набор API-функций браузера, был способен делать практически то же, что и Flash (Java)-конкуренты.

Не остались в стороне и потребности заказчиков web-страниц. В условиях, когда Web стал не только игрушкой, но и серьезным инструментом, важно, чтобы программы не только корректно и красиво отображали информацию, но и владели ее смысловым содержанием (семантикой). Например, о работающих со страницами людях и организациях, о событиях, привязанных к конкретной дате, о географических координатах пользователей. Зная эту информацию, браузер может, например, уже привычно для нас отображать сведения о погоде нашего региона, недавних событиях в нем или нахождении необходимых в данный момент нам людей.

Используя технологию микроформатов, браузер может узнавать, когда и с кем запланирована встреча. Чтобы в нужный момент ненавязчиво напомнить об этом

Кто первым додумался вставлять в семантически незначимые элементы HTML и XHTML семантику, история умалчивает. Факт остается фактом: в такие, семантически пустые, тэги-контейнеры, как

, стали помещать информацию, которую вначале могли получить читатели web-страниц, заглянув в их исходный текст, а затем и браузеры.

Технология микроформатов (Microformats или μF) — а именно так называется семантическая разметка существующих HTML- и XHTML-документов, — развивается сообществом web-дизайнеров и широко поддерживается разработчиками браузеров. Она легла в основу так называемого «Семантического Web’а», навигация внутри которого происходит не только (и не столько) по ссылкам, но и по разметками микроформатов. Облако тегов (Tag cloud) — визитная карточка Web 2.0, — также стало результатом использования микроформатов и такого социального явления, как фолксономия (коллективная категоризация).

Благодаря микроформатам интернет-сообщество может образовывать из ссылок на полюбившиеся страницы целые облака. Вместо капель в них — тэги

Связи в схеме семантического Web’а образуют причудливые узоры. Именно они отражают смысл, заключенный во взаимосвязанных документах

Все рассмотренные выше технологии — нашлепки на действующие языки HTML и XHTML. Не затрагивая основ, они добавляют на формируемую страницу то, чего эти языки не умеют. Не умеют?! Но почему стандартизаторы не шевелятся и за дело берутся сторонние разработчики? А вот и неправда. Шевелятся. И действия их вызываются сейчас нешуточные споры.

HTML 5, или Из грязи в князи

Поверив в успех XHTML 1.1, консорциум W3C в 2001 году принялся за спецификацию XHTML 2.0. Если бы у языка был девиз, то девиз XHTML 2.0 звучал бы так: «Искореним мусор и языковые несуразности! За чистое XML-звучание Web’а!». В 2002 году черновая редакция языка была готова. Не были к ней готовы только производители браузеров. Ведь XHTML 2.0 стал фактически чистым XML, и ничего общего со своим предком версии 1.1 не имел. Основная идея XHTML 2.0 — отделение содержимого документа от его структуры. Включая в свой состав только базовые языковые конструкции, XHTML 2.0 вполне способен трудиться не только в Web’е. В нем отсутствует медийная поддержка, интерактивность и работа с семантикой. Все это, по мнению W3C, можно прикрутить с помощью многочисленных XML-расширений, таких, например, как XForms и XML Events. Ну и, конечно же, требования к валидности документов остались, причем стали еще жестче.

Идея одним махом внедрить новый, очищенный от скверны, язык была явно утопической. Ни один браузеродел не согласится выпустить новую версию браузера с поддержкой нового стандарта и отсутствием таковой для старых. Ни один web-дизайнер не согласится заново переписать все свои проекты. Да еще и проверять их на валидность.

Поэтому-то и возникла оппозиция. В 2004 году в нее объединились такие спецы в разработке браузеров, как Google, Opera и Apple. Назвалась оппозиция WHATWG (Web Hypertext Application Technology Working Group).

Пока еще страница группы WHATWG написана не на HTML 5, но это — дело времени. Может, тогда она станет более красочной и интерактивной?

Цели были поставлены одновременно прагматические и благородные. К прагматике относилась не разработка языка «с нуля», а максимальная модификация имеющегося стандарта HTML 4.1. При этом модификация не должна серьезно затрагивать существующий код браузеров. А благородной целью стала попытка осчастливить человечество интеграцией всех внешних нашлепок внутрь самого языка. Придавая ему силу, сравнимую с языками программирования. Вот поэтому-то технология в названии группы звучит и как Hypertext, и как Application. За глаза же работу группы именовали просто: Web Applications 1.0. А что? Почему бы браузеру не стать универсальной средой, которая и документы отображает, и программы исполняет? И в будущем не будет никаких операционных систем и прикладных программ к ним, один сплошной БРАУЗЕР.

Большинство продуктов Google — Web Applications. Для работы с ними необходим браузер и... интернет-канал пошустрее

Работа оппозиции была продуктивной, а наглядная ее демонстрация в браузерах настолько привлекательной, что в 2007 году консорциум W3C сдался и включил WHATWG в свою HTML-команду, а работу ее объявил черновиком стандарта языка HTML 5! А что же с XHTML 2.0? Предан забвению? Нет. По всем ощущениям, он перешел в разряд академических разработок. Даже дата релиза готового стандарта — 2022 год — косвенно глаголет об этом. А может, наличие двух конкурентных технологий нужно W3C, чтобы создать здоровый дух социалистического соревнования в коллективе разработчиков? Кто знает.

Так чем же HTML 5 лучше своего предшественника HTML 4.1? Посмотрим на рисунок.

Использование новых тэгов в HTML 5 позволяет упростить описание структуры документа и убрать из нее «элементы самодеятельности»

Здесь представлена разметка страницы силами 4.1 и 5. Даже далекий от web-дизайна человек видит, насколько лаконичнее пятерка. Убраны многочисленные присваиваемые атрибуты, селившиеся в бесполезных тэгах

. Вместо них появились простые и понятные тэги, определяющие структуру документа. Строка навигации размещается в тэге






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.