Краткая история HTML

HTML - объединяющий язык World Wide Web, с помощью его простых тегов человечество создало фантастически разнообразную сеть, от крупнейших Amazon, eBay и Wikipedia до личных блогов и сайтов, посвященных котам похожим на Гитлера. Как и сам веб, HyperText Markup Language детище Тима Бернерс-Ли. В 1991 году он создал документ названный «HTML Tags», в котором предложил около двух дюжин элементов для создания веб-страниц. Идея использовать теги, заключенные между угловыми скобками, не его, такие теги уже были в формате SGML (Standard Generalized Markup Language). Тим понимал, что создавать новые стандарты нужно на базе существующих, а разработчики HTML5 и сейчас в полной мере следуют этому принципу.

От IETF до W3C: Путь к HTML 4

Стандарта HTML 1 никогда не было, первой официальной спецификацией стал HTML 2.0, опубликованный IETF (Internet Engineering Task Force). Многие элементы в этой спецификации были заимствованы из существующих реализаций, например, тег <img> уже поддерживался, лидировавшим тогда браузером Mosaic. Позже на смену IETF пришел W3C (World Wide Web Consortium) и следующие версии стандарта HTML публиковались на www.w3c.org1. Во второй половине девяностых HTML претерпел множество изменений и ревизий, последней в череде которых стала спецификация HTML 4.01. В начале двухтысячных HTML ожидала первая серьезная реформа.

XHTML 1: HTML как XML

Следующая после HTML 4.01, версия языка стал XHTML 1.0, X значит eXtensible (расширяемый). Содержание спецификации XHTML 1.0 не сильно отличалось от HTML 4.01. Не было добавлено ни одного нового элемента или атрибута. Но отличался синтаксис языка. HTML дает авторам значительную свободу в написании элементов и атрибутов, XHTML требует следовать правилам XML, более строгого языка разметки, на котором основаны многие технологии W3C. У строгих правил есть свои преимущества, они заставляют разработчиков использовать единый стиль кодирования, если прежде теги и атрибуты могли быть в верхнем регистре, нижнем регистре и любой их комбинации, то в XHTML 1.0 все теги и атрибуты должны быть в нижнем регистре. Выход XHTML 1.0 совпал со значительным улучшением поддержки CSS в браузерах. Веб-разработчики, вдохновленные появлением стандартов, считали строгий синтаксис XHTML лучшим способом создания разметки. Следующий версией стандарта разметки стал XHTML 1.1. XHTML 1.0 был простым HTML переформулированным на XML, XHTML 1.1 стал настоящим XML, он больше не мог подаваться клиенту как text/html. Но если разработчик использует для документа медиа тип XML, то самый популярный веб-браузер, Internet Explorer, не сможет отобразить документ. Стало заметно, что W3C теряет связь с современной реальностью веб.

XHTML 2: О, мы не будем это терпеть!

В W3C решили, что историю HTML нужно закончить на четвертой версии и начали работу над XHTML 2, стандартом призванным вести нас в новое будущее основанное на XML. Несмотря на то, что название стандарта XHTML 2 не сильно отличается от XHTML 1, они совершенно не похожи. В отличии от XHTML 1, в XHTML 2 нет обратной совместимости с существующим веб-контентом и предыдущими версиями HTML, это должен был быть чистый язык, не обремененный нестройной историей предыдущих спецификаций. Это была катастрофа.

Раскол: WHATWG TF?

Внутри W3C назревало восстание. Консорциум формулировал теоретически чистые стандарты, игнорируя потребности веб-разработчиков. Представителей Opera, Apple и Mozilla это не удовлетворяло, они хотели больше вниманию форматам которые позволяют создавать веб-приложения. Ситуация достигла апогея на рабочей встрече в 2004 году. Ян Хиксон, работавший тогда в Opera Software, предложил расширить возможности HTML в области создания веб-приложений. Предложение было отвергнуто. Недовольные такой политикой Opera, Apple и Mozilla сформировали свою собственную рабочую группу WHATWG (Web Hypertext Application Technology Working Group).

От Web Apps 1.0 до HTML5

Работа WHATWG, отличается от работы W3C. W3C использует подход основанный на консенсусе: вопрос поднимается, обсуждается и проводится голосование. В WHATWG вопрос также поднимается и обсуждается, но окончательное решение остается за редактором. Редактор Ян Хиксон. На первый взгляд, подход W3C выглядит более демократичным и объективным, на практике политика и внутренние распри способствуют затягиванию принятия решений. В WHATWG все могут принимать участие в работе, но последнее слово остается за редактором, благодаря чему решения принимаются быстро. Конечно, редактор не имеет абсолютной власти и может быть отстранен решением комитета приглашенных экспертов. С самого начала WHATWG начал работу над двумя расширениями HTML: Web Forms 2.0 и Web Apps 1.0, позже они были объединены в одну спецификацию названную HTML5.

Воссоединение

В то время как WHATWG начала разработку HTML5, W3C продолжал работу на XHTML 2. Нельзя сказать, что работа шла недостаточно быстро, она шла очень очень медленно. В октябре 2006, Тим Бернерс-Ли признал в своем блоге, что попытка перевести веб с HTML на XML не удалась. Через несколько месяцев была создана новая рабочая группа по HTML, вместо того чтобы начать с нуля решили использовать наработки WHATWG как базу будущей версии HTML. Все эти начала и окончания разработки сильно запутали ситуацию. W3C работает одновременно над двумя различными, несовместимыми типами разметки XHTML 2 и HTML 5 (обратите внимание на пробел перед цифрой пять). В то же время отдельная организация WHATWG, работает над спецификацией HTML5 (без пробела) которая используется как базис одной из спецификаций W3C.

XHTML мертв: да здравствует XHTML синтаксис

Ситуация начала проясняться в 2009 году, W3C объявило, что работа над XHTML 2 не будет продолжена. На самом деле формат уже давно был мертв, и это заявление только официально подтвердило факт смерти. Смерть XHTML 2 не прошла незамеченной, XML скептики использовали этот факт как возможность лишний раз высмеять тех кто использовал XHTML 1, несмотря на то, что XHTML 1 и XHTML 2 не имеют между собой ничего общего. В то же время, разработчики, которым XHTML 1 нравился за более строгий стиль кодирования, опасались, что HTML5 приведет к возвращению небрежного кода. На самом деле это не обязательно, HTML5 может быть строгим или свободным настолько, насколько этого хочет разработчик.

Оригинал: A Brief History of Markup, Jeremy Keith
Hosted by uCoz