История создания и развития языка HTML. История HTML

В 1989 году Тим Бернерс-Ли, сотрудник центра высоких технологий (CERN), предложил проект распределенной гипертекстовой системы под названием WWW (World Wide Web). Гипертекст - это текст, «который разветвляется сам по себе или выполняет действия по запросу». Изначально проект задумывался для того, чтобы объединить все информационные ресурсы CERN в единую распределенную систему гиперссылок, но данная технология, оказалась настолько перспективной, что впоследствии, благодаря простоте и использованием уже известных на тот момент сетевых протоколов (TCP и IP), ляжет в основу известной на егодняшний день Всемирной паутине.

World Wide Web - первая успешно реализованная сетевая технология, удобство применения привели к росту числа пользователей WWW и привлекли внимание коммерческих компаний, благодаря чему количество пользователей увеличивается геометрически и по сей день.

Одним из основных составляющих World Wide Web стал язык гипертекстовой разметки HTML , разработанный Тимом Бернерсом-Ли на основе стандарта языка разметки печатных документов -- SGML (Standard Generalised Markup Language, стандартный обобщенный язык разметки ).

Благодаря созданию HTML были решены две задачи: дизайнеры гипертекстовых баз получили очень удобный инструмент для создания гипертекстовых документов; этот инструмент получился достаточно мощным, чтобы отразить имевшиеся на тот момент представления об интерфейсе пользователя гипертекстовых баз данных.

Первая задача была решена за счет выбора теговой модели(см. главу 2) описания документа. Такая модель широко применяется в системах подготовки документов для печати.

Для реализации HTML документов был выбран текстовый файл, так как помимо существования стандарта Z39.50 (который подразумевал простой текстовый файл, соответствующий кодировке US ASCII, как единицу хранения), создание и редактирование такого файла возможно в любом текстовом редакторе.

По сути - гипертекстовая БД в рамках WWW представляет из себя совокупность написанных при помощи HTML текстовых файлов, которые так же включают в себя систему связей между собой и внешними информационными ресурсами (гиперссылки), которые, в последствии объединили множество различных информационных и развлекательных ресурсов. В последствии, когда гиперссылки стали объединять не только текст, но и аудио и видео возникло понятие гипермедиа.

HTML 1.0 предназначался скорее для презентации самого языка. HTML 2.0 уже определял четкую архитектуру документов. HTML++ предоставил больше возможностей для составления научных статей и формирования таблиц. HTML 3.2 собрал воедино нововведения и наработки предыдущих версий, позволил выполнять на странице написанный на Java код. В HTML 4.01 . расширены возможности работы с мультимедиа, была введена интеграция с таблицами стилей CSS, языкиами программирования JavaScript и VBScript.

Но в 1998 году язык HTML был признан устаревшим (по сравнению с XML) и W3C решили заморозить язык разметки на версии 4.01. Затем был разработан язык XHTML, сочетающий в себе структуру HTML и синтаксис XML. Были разработаны два стандарта XHTML Transitional и XHTML Strict Первый был разработан для упрощения перехода на устоявшийся стандарт XHTML strict. Затем началась работа над XHTML 2.0. При разработке данного стандарта была совершена попытка улучшить логику писания разметки.

Но команда энтузиастов из компании Opera считали, что XML (а так же XHTML 2.0) не является достойным стандартом языка разметки. Они запустили проект по разработке экспериментального стандарта, добавив расширения для форм HTML, сохраняя при этом обратную совместимость. В результате получился стандарт Web forms 2.0, который в дальнейшем вошел в состав HTML5. После присоединения к команде разработчиков сотрудников из Mozilla они продолжили работу над проектом назвав себя WHATWG (Web Hypertext Application Technology Working Group, «рабочая группа по разработке гипертекстовых приложений для Интернета» -- http://www. whatwg.org). Код данного проекта является открытым и каждый может предложить любые изменения и нововведения в спецификацию. В последствии W3C признала, что попытка перевести весь мир на XML оказалась провальной и проголосовала за использование разработки от WHATWG в качестве основной, обновленной версии HTML, и так начался процесс работы над HTML5 аналог которой параллельно разрабатывала W3C и WHATWG. В 2009 году W3C направила все доступные средства на разработку HTML5.

Всем приветик. За окном у нас уже 2013 год, поэтому такие слова как интернет, e-mail, web-сайт и другие, не вызывают у нас удивления. Сейчас достаточно много людей ведут свои блоги на платных и бесплатных ресурсах и используют технологию html, но мало кто знает, как эта технология неразрывно связана с развитием Интернета и имеет свою историю.

Кратко о гипертекстовой разметке — HTML

История развития Интернета и появление HTML

С появление компьютеров появилась идея передачи информации между ними. На исследование этой проблемы ушло достаточно много времени, но решение было найдено. Для передачи информации между компьютерами стали использоваться кабели и различные носители. Были написаны программы, позволяющие передавать и получать данные, и практически сразу возникла вторая проблема – проблема совместимости: как заставить два и более компьютеров работать, соединенные кабелем, работать в локальной сети.

Официальным днем рождения Интернета считается 2 января 1969 года, когда Управление перспективных исследований (Advansed Research Project Agency, ARPA) Министерства обороны США начало работу над проектом связи оборонных компьютеров.

Одним из первых достижений Интернета в 1970-е стало его международное применение, что привело к созданию электронной почты (Electronic mail), ныне именуемой просто e-mail. Так же в этот период времени, что бы отслеживать новости по всему миру были созданы новостные группы (Usernet).

Востребованность Интернета привела к разработке и созданию в 1980-е сети Bitnet, которая тоже входила в группу Интернет, но не имела никакого отношения ни к исследовательским, ни к военным проектам. Авторами этой сети считаются специалисты Нью-йоркского университета (City University of New York).

В 1984 году была внедрена система DNS (Domain Name System), так называемая система доменных имен, которая позволяла установить связь между цифровыми и символьными именами доменов. До использования системы DNS, все адреса сайтов имели вид IP-адресов, что существенно осложняло их запоминание и восприятие.

В 1986 году был принят первый стандарт ISO-8879 Международной организацией стандартизации (International Organization for Standardizations, ISO), под названием SGML (Standard Generalized Markup Language - стандартный обобщенный язык разметки). SGML - обогащенный метаязык, позволяющий строить системы логической и структурной разметки текстов любых разновидностей.

Структурная разметка - форматирование текста, в которой управляющие коды не несут никакой информации о внешнем виде документа, а лишь указывают границы и соподчинение его составных частей, то есть задают его логическую структуру. SGML-документ требует определения типа документа (Document Type Definition, DTD). DTD посылается вместе с SGML-документом или включается в SGML-документ для того, чтобы можно было распознать теги, созданные пользователем. Язык SGML не получил распространения, однако его идеология повлияла на многие компьютерные разработки.

В 1989 году выпускник Оксфордского университета, бакалавр в области физики, сотрудник Европейского центра ядерных исследований (CERN) Тим Бернерс-Ли (Tim Berners-Lee) разработал язык HTML (HyperText Markup Language - язык разметки гипертекста), ставший основным языком создания веб-документов и прототипом Всемирной паутины (World Wide Web, WWW). Тим Бернс-Ли - автор идеологии гиперссылок. По сути, язык HTML - это набор SGML-предписаний, сформулированный в виде DTD. В случае языка HTML определение типа документа хранится в браузере, и это определение намного проще, чем DTD языка SGML.

Однако нельзя сказать, что именно Тим Бернерс-Ли один все и придумал. К открытию подошло все человечество, накопив достаточные знания. Так, еще в середине XX столетия Ванневар Буш (Vannevar Bush) объявил миру новое слово - «гипертекст», а Тед Нельсон (Ted Nelson) предложил создать «документарную вселенную», связав все тексты, произведенные человечеством на свет, перекрестными ссылками, но в начале шестидесятых годов двадцатого столетия у академической публики это воззвание не вызвало ничего, кроме снисходительной улыбки.

Осенью 1990 года сотрудники CERN получили в пользование первый веб-сервер и веб-браузер, созданные Тимом Бернерсом-Ли в среде NeXTStep.

Для работы с текстами был разработан специальный протокол передачи гипертекста (HyperText Transfer Protocol, HTTP). Эта технология дала огромный толчок развитию Сети, и Интернет стал действительно интернациональной сетью.

Если бы я знал тогда, сколько людей будут указывать URL,
то не стал бы использовать в синтаксисе два слэша.
Тим Бернерс-Ли

Летом 1991 года проект WWW, покоривший научный мир Европы, пересек океан и влился в американский проект Internet. Появился ряд новых аббревиатур: URL, HTTP, HTML. Вспыхнувшее было соперничество между Европой и Америкой за новую информационную технологию сошло «на нет» с переездом Тима Бернерса-Ли в США. В 1994-м он сначала возглавил кафедру в Массачусетском технологическом институте, а затем - международный консорциум W3C (World Wide Web Consortium), играющий роль центра стандартизации Всемирной Паутины.


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

  • P - точка присутствия (Point of Presence, POP). Точками присутствия называют места подключения к магистрали сети поставщика услуг Интернета (Internet Service Provider, ISP), или провайдера, обслуживающего локальных пользователей
  • N - точка доступа (Network Access Points, NAP). Точками доступа, или центрами обмена (Internet eXсhange, IX), называют места объединения сетей нескольких провайдеров
  • DNS - сервер доменной системы имен (Domain Name System, DNS). DNS-серверы служат для трансляции доменных имен в IP-адреса
  • F - файловый (file) сервер
  • W - веб-сервер (web-server)
  • D - домен (domain)

Многие компании стали выпускать собственные браузеры и к ним собственные расширения языка HTML, например в 1993 году был разработан первый графический браузер Mosaic. После этого появилось еще более ста различных браузеров. Самыми популярными стали Netscape Navigator и Microsoft Internet Explorer.

Консорциум W3C разработал стандарты, необходимые для дальнейшего развития World Wide Web. В 1996 году Консорциум W3C объявил о сотрудничестве с лидерами рынка в целях стандартизации программного обеспечения.

Развитие технологии HTML

Появившийся в 1991 году язык HTML постоянно дорабатывался и дополнялся. Из всех этих видоизменений выделяют следующие версии:

  • HTML 1.0 . Первая версия языка
  • HTML 2.0 . Эта версия (RFC 1866) была разработана в 1994 г. Рабочая группа по HTML в составе IETF (Internet Engineering Task Force) ввела соответствующие изменения, и набор базовых элементов. HTML 2.0 приобрел статус стандарта
  • HTML 3.0 начале 1996 г. Появилось много нововведений, включая теги для создания таблиц, для разметки математических формул, для вставки обтекаемых текстом рисунков, для вставки примечаний и т. д. Не нарушая основные концепции разметки гипертекста, авторы версии 3.0 ввели новое средство - каскадные листы стилей (Cascading Style Sheets, CSS)
  • HTML 3.2 . Эта версия языка была реализована в 1996 г. В ней были предусмотрены дополнительные элементы, предназначенные для создания апплетов, задания регистра символов и т. д. Версия HTML 3.2 стала компромиссным решением - попыткой примирить Microsoft и Netscape и объединить их оригинальные решения
  • HTML 4.0 . Эта версия языка была реализована в 1997 г. Вторая скорректированная реализация вышла в 1998 г. В HTML 4.0 была введена поддержка мультимедиа, языков сценариев, а также средств воспроизведения документов для пользователей с физическими ограничениями. В этой версии консорциум W3C указал, что почти все атрибуты, определяющие вид HTML-документа (цвет, выравнивание, шрифты, графика и т. д.), являются нежелательными, взамен рекомендуется использовать листы стилей и классы. Однако большинство разработчиков веб-страниц по-прежнему используют подобные теги
  • HTML 4.01 . Эта версия вышла в 1999 г. В ней были исправлены недочёты, замеченные в предыдущей версии
  • HTML 5 . Разработка этой версии началась в рабочей группе W3C в 2007 г. и 22 января 2008 г. появились в новой спецификации. Спецификация и сейчас находится в разработке и может находиться в этой стадии еще несколько лет. Однако в Интернет уже активно создают сайты с применением этой спецификации
Другие языки програмирования, созданные для поддержки Html

В поддержку языка HTML была создана целая серия языков программирования, таких как Java, javascript, Perl, PHP и т. д. С помощью этих языков стало возможным создание динамических веб-страниц, включающих формы, таблицы, фреймы и другие элементы.

В феврале 1998 г . был предложен язык XML (Extensible Markup Language - расширяемый язык разметки). Этот язык похож на HTML тем, что для описания различных разделов документа в нем используются теги. Однако в отличие от HTML язык XML позволяет разработчикам определять собственные теги и ставить им в соответствие собственные способы воспроизведения информации. XML-дескрипторы чувствительны к регистру символов. Последняя версия Internet Explorer поддерживает XML. Что касается Netscape Navigator, то Mozilla (рабочая группа в составе Netscape) лишь экспериментирует со средствами поддержки XML.

Язык XHTML (Extensible HyperText Markup Language - расширяемый язык разметки гипертекста) - это сочетание HTML и XML. Консорциум W3C, объединяющий представителей более 500 организаций из разных стран, рекомендует использовать XHTML вместо HTML, однако на сегодняшний день большинство разработчиков остаются верными HTML.

Язык Dynamic HTML (динамический язык HTML) - это попытка объединить объектную модель документа (Document Object Model, DOM), язык javascript и каскадные листы стилей (CSS). Dynamic HTML позволяет создавать интерактивные веб-страницы с расширенной поддержкой мультимедиа. Многие средства Dynamic HTML описаны в спецификации HTML 4.01.

Язык Java произошел от языка программирования Oak, ориентированного на работу в Интернете. Синтаксис языка Java близок к синтаксису языка C++. Программы на языке Java можно разделить на две большие группы. К первой группе относятся Java-приложения, предназначенные для автономной работы под управлением специальной интерпретирующей машины Java. Реализации этой машины созданы для всех основных компьютерных платформ. Вторая группа - это так называемые апплеты.

Апплет - это небольшая программа, написанная на языке Java и включенная в состав HTML-файла. Среду для выполнения Java-апплетов обеспечивает другая программа, например, веб-браузер. В отличие от приложений апплеты не могут непосредственно выполняться в операционной системе. Код апплета интерпретируется браузером или сервером. В зависимости от того, какая из программ выступает в роли интерпретатора, апплеты могут выполняться на стороне клиента либо на стороне сервера. Java - это компилируемый язык.

javascript - это язык сценариев, с помощью которого можно расширять возможности HTML-страниц. Этот язык разрабатывался корпорацией Netscape Communications для использования в веб-браузере Netscape Navigator (javascript для клиента) и веб-серверных продуктах (javascript для сервера), созданных этой корпорацией. Многие элементы этого языка, предназначенные для поддержки дополнительных функциональных возможностей статических веб-страниц, разработала фирма Sun Microsystem.

В отличие от Java-апплетов, загружаемых отдельно от HTML-документа, в котором они используются, программы, написанные на языке javascript, встраиваются непосредственно в HTML-документы с помощью парного тега .

Некоторые начинающие пользователи считают, что javascript является версией языка Java. Однако это курьезное заблуждение, между javascript и Java нет ничего общего. Java - это язык программирования, а javascript - интерпретируемый язык, предназначенный для написания сценариев.

VBScript - язык, который был разработан Microsoft как подмножество языка Visual Basic. VBScript создавался для работы с Internet Explorer и Microsoft Internet Information Server.

ColdFusion - это набор инструментальных средств разработки веб-приложений. Достоинством этого пакета является наличие удобных средств для работы с базами данных.

PHP - это язык сценариев, обрабатываемый сервером. Подобно ColdFusion, PHP-код непосредственно включается в состав HTML-документа. Первоначальным названием PHP

являлось Personal Home Page Tools (Персональная домашняя страница). Позднее эта технология, допускающая размещение на сервере выполняющихся скриптов веб-страниц, работающая, главным образом, на платформах Unix, Linux и Solaris, стала расшифровываться по-другому: PHP (PHP Hypertext Preprocessor).

В PHP реализованы лучшие решения многих языков, таких как C и Perl; кроме того, PHP предоставляет разработчику мощные средства для работы с базами данных.

Слово Perl является аббревиатурой выражения Practical Extraction and Report Language. Подобно Perl, PHP - свободно распространяемая открытая система, и сообщество разработчиков имеет возможность ее модернизировать.

Новой технологией для создания лучшего, удобного и более интерактивного веб-приложения, а не новым языком программирования является AJAX. AJAX - это акроним Asynchronous javascript And XML. AJAX использует javascript, чтобы посылать и получать данные между веб-браузером и веб-сервером.

Приложения AJAX являются браузерами и платформно-независимы (кросс-платформенная и кросс-браузерная технология). Вместе с AJAX, интернет-приложения можно сделать богаче (меньше, быстрее и легче для использования).

К известным средствам разработки можно отнести также CGI (Common Gateway Interface), ASP, JSP (Java Server Pager), SSI (Server Side Includes), VRML (Virtual Reality Markup Language) и другие.

Apache - это открытый веб-сервер, наиболее часто используемый для платформ Unix, Linux и Solaris.

ASP (Active Server Pages) - технология, используемая для написания мощных клиент-серверных интернет-приложений, позволяющая создание динамических страниц HTML.

Какие программы лучше использовать для создания веб-страниц? Об этом вы можете прочитать здесь: Программы для вёрстки веб-страниц. Для редактирования изображений могут применяться программы Adobe Photoshop, Adobe Fireworks, Corel Photo-Paint, Adobe Illustrator, CorelDRAW, Adobe LiveMotion, Macromedia Flash. Для работы с аудио- и видеоданными - программы Adobe Premier, Apple Final Cut Pro, Apple Quick Time, RealProducer, Windows Media.

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

По сути, сейчас мы изучаем web. Он у нас базируется на трех основных вещах:

  • Адресация документов. Чтобы найти документ, лежащий где-то на удаленном компьютере, нужно правильно написать его адрес.
  • Протокол, по которому надо передавать информацию. Этот протокол - http. Его вы привыкли видеть в адресной строке.
  • Язык разметки html. Т.е. то самое средство, которое позволяет передавать структурированные документы.
История HTML

Появилось это все в 1991 году. Активное участие в разработке принимал Тим Бернерс-Ли. В 1991г. все эти проекты бурно развивались. И поэтому в 1994г. создали специальную организацию “Консорциум W3” (W3C). Официальный сайт: www.W3.org.

В рамках этой организации происходит развитие стандартов. Т.е. собираются какие-то группы, которые наполняются представителями компаний. И эти люди разрабатывают новый стандарт. Соответственно все остальные понимают, куда идет развитие прогресса и к чему надо готовиться. Там лежат документы в разной стадии готовности: драфты (druft), рекомендации, спецификации.

Чтобы открывать все эти документы (где-то расположенные и структурированные), нужны были специальные программы - браузеры. Т.е. изначально браузеры были созданы для открытия документов с разметкой html.

Язык разметки html развивался. Образовывались новые компании, создающие браузеры. И где-то в середине 90-х гг. сложилась довольно неприятная ситуация, когда разработчики стандартов слишком долго пытались что-то написать, а производители браузеров внедряли свои новшества в свои продукты. Но вскоре все одумались и начали одну за другой выпускать спецификации html.

Март 1995 года - начало работ над HTML 3. Параллельно появляется браузер Netscape Navigator. В 1996 г. выходит браузер Internet Explore 3.0.

Январь 1997г. - выходит спецификация HTML 3.2. Потом в январе того же года - HTML 4.0. В 1999г. появилась версия HTML 4.01. В 2000г. выходит версия HTML - ISO/IEC 15445. В ее основе лежит версия html 4.01 плюс некоторые доработки. Сегодня разрабатывается версия HTML 5.

Все это развитие языка разметки html определяется релизами браузеров. Т.е. какой-то браузер поддерживает html 5 чуть больше, другой - чуть меньше.

Перевод: Влад Мержевич

Недавно я наткнулся на цитату разработчиков Mozilla о напряженности, связанной с разработкой стандартов :

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

Держите эту цитату в глубине сознания и позвольте мне объяснить про становление HTML5.

MIME-типы

Эта книга об HTML5, а не о предыдущих версиях HTML и не о версиях XHTML. Но чтобы понять историю HTML5 и мотивацию, стоящую за ним, вы должны в первую очередь понимать несколько технических моментов. В частности, MIME-типы.

Каждый раз, когда ваш браузер запрашивает страницу, веб-сервер посылает «заголовки» перед отправкой фактического кода страницы. Эти заголовки, как правило, невидимы, хотя есть инструменты веб-разработчика, которые делают их видимыми, если вам интересно. Заголовки важны, потому что они говорят вашему браузеру, как следует интерпретировать разметку страницы. Наиболее важный заголовок называется Content-Type и выглядит так:

Content-Type: text/html

«text/html» называется «тип содержимого» или «MIME-тип» страницы. Этот заголовок определяет только, что это в действительности за ресурс и как его отображать. Изображения имеют свои собственные MIME-типы (image/jpeg для JPEG, image/png для PNG и т.д.). Файлы JavaScript имеют собственный MIME-тип. CSS имеют собственный MIME-тип. Все имеют собственный MIME-тип. Интернет работает на MIME-типах.

Конечно, в реальности все намного сложнее. Первое поколение веб-серверов (я говорю про веб-сервера с 1993 года) не посылало заголовок Content-Type, потому что его не было (он не был изобретен до 1994 года). Из соображений совместимости при возврате даты на 1993 год, некоторые популярные браузеры игнорируют заголовки Content-Type при определенных обстоятельствах (это называется «сниффинг контента»). Но, как правило, все, что вы когда-нибудь просматривали в Сети - HTML-страницы, изображения, скрипты, видео, PDF и др. - отдавалось вам с определенным MIME-типом в заголовке Content-Type.

Пока отложите вашу шляпу. Мы еще вернемся к этому.

Длинное отступление о том, как делаются стандарты

Почему мы используем элемент ? Это не тот вопрос, который вы слышите каждый день. Очевидно, кто-то его создал. Такие вещи не появляются просто ниоткуда. Каждый элемент, каждый атрибут, каждая особенность HTML, которую вы когда-либо использовали - кто-то создал их, решил, как они должны работать и написал все это. Эти люди не боги и они не безупречны. Они обычные люди. Умные люди, уверен. Но просто люди.

Одна из замечательных вещей в стандартах, разработанных «в открытую» это то, что вы можете вернуться назад во времени и ответить на разные вопросы. Обсуждения происходят через список рассылки, которые, как правило, архивируются и публично доступны. Так что я решил немного заняться «почтовой археологией», чтобы попытаться ответить на вопрос, «Почему мы используем элемент ?». Я должен вернуться назад до того, как появилась организация под названием Консорциум Всемирной паутины (World Wide Web Consortium, W3C). Я вернулся в первые дни Сети, когда количество веб-серверов можно было пересчитать по пальцам двух рук и может быть парой пальцев ног.

Есть ряд опечаток в следующих цитатах. Я решил оставить их нетронутыми для исторической точности.

Я хотел бы предложить новый дополнительный тег HTML:

Обязательный аргумент SRC="url"

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

(Здесь нет закрывающего тега, это всего лишь одиночный тег.)

Браузеры должны проявлять гибкость в отношении графических форматов, которые они поддерживают. Xbm и Xpm хорошо поддерживаются, к примеру. Если браузер не может интерпретировать данный формат, он может делать, что хочет (X Mosaic по умолчанию выведет растровое изображение в качестве заполнителя).

Это потребует функциональности для X Mosaic, у нас это работает, и мы, по крайней мере использовали это внутренне. Я, конечно, открыт для предложений, как это должно обрабатываться в HTML, если у вас есть идея получше, чем предложенная, пожалуйста, дайте мне знать. Я понимаю, туманно написал о форматах изображений, но я не вижу альтернативы, чем просто сказать «пусть браузер делает что может» и ждать идеального решения (MIME, когда-нибудь, возможно).

У меня есть нечто похожее в Midas 2.0 (используется здесь в SLAC и должен быть публичный релиз на этой неделе), за исключением, что все имена разные и есть дополнительный аргумент NAME="name". Он почти в точности имеет ту же функциональность, что и предлагаемый вами тег IMG, например.

Идея параметра name позволит браузеру устанавливать «встроенные» изображения. Если name совпадает со «встроенным» изображением, тогда оно используется вместо того, чтобы пойти и получить изображение. name также может выступать в качестве подсказки для «строчного режима» браузеров, чтобы какой-нибудь символ положить в месте изображения.

Я не очень заботился о параметрах или именах тегов, но было бы разумно, если бы использовали те же самые вещи. Я не очень забочусь о сокращениях, так что, почему не IMAGE= и не SOURCE=. Я предпочитаю все же ICON, поскольку он проще, чем IMAGE и должен быть маленьким, но, возможно, ICON перегруженное слово?

Midas другой ранний браузер, современник X Mosaic. Он кроссплатформенный и запускался на Unix и VMS. SLAC относится к Стэнфордскому центру линейного ускорителя , сейчас Национальная ускорительная лаборатория SLAC, в котором запущен первый веб-сервер США (на самом деле первый веб-сервер за пределами Европы). Когда Тони написал это сообщение, SLAC был старейшим в WWW, у которого на веб-сервере размещалось пять страниц колоссальные 441 день.

Тони продолжает:

Пока мы в теме о новых тегах, у меня есть другая идея, несколько похожий тег, который я хотел бы поддержать в Midas 2.0. В принципе так:

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

Несколько часов спустя после отправки сообщения Тони, ответил Тим Бернерс-Ли .

Я думал, что иллюстрации будут представлены так:

Иллюстрация

где значения отношений обозначают

EMBED Вставить сюда при наличии
PRESENT Показать, когда исходный документ представлен

Заметьте, что вы можете иметь их различные комбинации, и если браузер не поддерживает ни одно, он не ломается.

[Я] вижу использование этого как метод для выбора иконки средствами вложенных ссылок. Хммм. Но я не хотел бы специальный тег.

Это предложение не было реализовано, но атрибут rel еще здесь.

Было бы хорошо, если был способ указать тип содержимого, например.

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

Это предложение не было реализовано, но Netscape позже добавил поддержку для встраивания мультимедийных объектов с элементом .

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

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

Давайте временно забудем о MIME, если это эфемерная проблема. Мое возражение было к обсуждению «как мы будем поддерживать встроенные изображения», а не «как мы будем поддерживать встроенные изображения в разных медиа».

В противном случае кто-то через неделю предложит «вставить новый тег » для аудио.

Не должно быть больших расходов при переходе от чего-то обобщенного.

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

Отвечая на исходное сообщение Джея, Дэйв Рэгетт сказал :

Точно! Я хочу рассмотреть весь диапазон возможных изображений/линий художественных типов наряду с обсуждением формата. Тим заметил про поддержку кликабельных областей внутри изображений, это тоже важно.

В действительности, может быть мы должны подумать о процедурном языке графики общего назначения, с которым мы можем вставлять произвольные гиперссылки приатаченные к иконкам, изображениям, тексту или другое. Кто-нибудь еще видел возможности Intermedia относительно этого?

Посмотрите другие системы, которые имеют эти (довольно ценные) понятия, Andrew и Slate. Andrew построен со _вставками_, каждая из них имеет несколько интересных типов, таких как текст, точечный рисунок, графика, анимация, сообщения, электронные таблицы и т.д. Понятие произвольное рекурсивное вложение присутствует, так что вставка любого рода может быть вложена в любой другой вид, который поддерживает вложения. Например, вставка может быть встроена в любом месте текста текстового виджета или в любой прямоугольной области виджета рисования или в любой ячейке электронной таблицы.

Вот мое мнение. Лучший способ сделать изображения в WWW это использование MIME. Я уверен, PostScript уже поддерживает подтипы в MIME, и он делает очень красиво с совмещением текста и графики.

Но это не кликабельно, вы говорите? Да, вы правы. Я подозреваю, что ответ на это уже есть в Display PostScript. Даже если не добавлено в стандартный PostScript, это тривиально. Определите команду ссылке, которая задает URL и использует текущий путь как замкнутую область для кнопки. Поскольку PostScript хорошо имеет дело с путями, создание произвольной кнопки тривиально.

Display PostScript был экранной технологией рендеринга совместно разработанной Adobe и NeXT.

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

HTTP2 позволяет документу содержать любой тип, с которым пользователь сказал, что он может работать, а не только зарегистрированные MIME-типы. Так что можно экспериментировать. Да, я думаю, есть основания для PostScript-а с гипертекстом. Я не знаю, достаточно ли Display PostScript. Я знаю, Adobe пытается создать свой собственный PostScript-ориентированный «PDF», который будет иметь ссылки и быть читаться их проприетарным просмотрщиком.

Я думаю, что общий оверлейный язык для ссылок (на основе Hytime?) позволит гипертексту и графики/видео стандартам развиваться отдельно, что поможет обоим.

Пусть тег IMG включает INCLUDE и пусть он ссылается на произвольный тип документа. Или EMBED, если INCLUDE звучит как инклюд cpp, чтобы люди могли обеспечить исходный код SGML для построчного разбора - не так, как было задумано.

Вернемся к инлайновым изображениям еще раз - я близок к выпуску Mosaic 0.10, который поддерживает изображения GIF и XBM как уже упоминалось ранее...

Мы не готовы поддержать INCLUDE/EMBED в этой точке... Так что мы, вероятно, будем идти с (не ICON, поскольку не все инлайновые изображения могут обоснованно называться иконками). В настоящее время, инлайновые изображения не будут явно содержать content-type; в будущем, мы планируем сделать поддержку этого (наряду с общей адаптацией MIME). На самом деле процедура чтения изображений, которую мы используем в настоящий момент, выясняет формат на лету, так что расширение файла не так и важно.

Непрерывная линия

Я чрезвычайно увлечен всеми аспектам этого почти 17-летнего разговора, что привел к созданию элемента HTML, который использовался практически на каждой веб-странице когда-либо опубликованной. Примем во внимание:

  • HTTP по-прежнему существует. HTTP успешно развивался с 0.9 в 1.0 и позже в 1.1. И еще развивается.
  • HTML по-прежнему существует. Это элементарный формат данных - он даже не поддерживает строчные картинки! - успешно развивался в 2.0, 3.2, 4.0. HTML это непрерывная линия. Кривая, узловатая, путаная линия, будьте уверены. Существовало много «мертвых ветвей» в эволюционном дереве, мест, где стандартно мыслящие люди опередили самих себя (и превзошли авторов и исполнителей). Но тем не менее. Мы здесь в 2010 году, а веб-страницы с 1990 года по-прежнему отображаются в современных браузерах. Я только что загрузил одну в браузер моего мобильника на новейшем Андроиде и мне даже не предложили «Пожалуйста, подождите, пока импортируется устаревший формат...».
  • HTML всегда был разговором между разработчиками браузеров, авторами, зубрилами стандартов и другими людьми, которые просто пришли и хотят поговорить об угловых скобках. Большинство успешных версий HTML были «ретро-спеками», догоняющими мир и одновременно пытающими подтолкнуть его в правильном направлении. Любой, кто говорит вам, что HTML должен быть «чистым» (вероятно, игнорируя разработчиков браузеров или игнорируя авторов или и тех и других) просто дезинформирует. HTML никогда не была чистым и все попытки очистить его были впечатляющие неудачными и могут только сравниться с попытки заменить его.
  • Ни один из браузеров с 1993 года не существует в любом узнаваемом виде. Netscape Navigator был заброшен в 1998 году и переписан с нуля для создания Mozilla Suite, от которого затем отделился Firefox. Internet Explorer начинал как скромный «с чего начать» в «Microsoft Plus! для Windows 95», где он шел в комплекте с некоторыми темами рабочего стола и игрой пинбол.
  • Некоторые из операционных систем с 1993 года все еще существуют, но ни одна из них не имеет отношение к современной Сети. Большинство «опытных» людей выходят в Интернет на ПК под управлением Windows 2000 или более поздней версии, на Маках под управлением Mac OS X, ПК под управлением некоторых вкусных Linux или портативных устройствах вроде iPhone. В 1993 году Windows была в версии 3.1 (и конкурирующей с OS/2), Маки управлялись System 7, Linux распространялся через Usenet.
  • Некоторые же люди по-прежнему во всем и по-прежнему участвуют в том, что мы теперь просто называем «веб-стандарты». Вот уже почти 20 лет. И некоторые занимались предшественниками HTML, возвращаясь в 1980-е годы и раньше.
  • Говоря о предшественниках... С конечной популярностью HTML и веба легко забыть тех, образовавших дизайн современных форматов и систем. Andrew? Intermedia? HyTime? И HyTime был не каким-то допотопным исследовательским проектом, это был стандарт ISO. Он был одобрен для использования в военных целях. Это был Большой Бизнес. И вы можете прочитать об этом сами... .

Но все это не отвечает на исходный вопрос: почему мы используем элемент ? Почему не элемент ? Или элемент ? Почему не гиперссылки с атрибутом include или некоторых комбинаций значений rel? Почему элемент ? Все очень просто, потому что Марк Андрессен реализовал его и реализованный код победил.

Это не означает, что все реализованные коды победили, в конце концов, Andrew и Intermedia и HyTime тоже были реализованы. Код необходим, но не достаточен для успеха. Я, конечно, не хочу сказать, что реализация кода раньше выпуска стандарта это лучшее решение. Элемент Марка не определяет основные графические форматы; не устанавливает, как текст должен его обтекать; не поддерживает альтернативный текст или запасной контент для старых браузеров. И 17 лет спустя мы еще боремся со сниффингом контента и он по-прежнему источник сумасшедшей уязвимости безопасности . И вы можете проследить все 17 лет назад, через Великие войны браузеров , назад до 25 февраля 1993 года, когда Марк Андрессен небрежно заметил: «MIME, когда-нибудь, возможно», а затем реализовал свой код, не смотря ни на что.

Хронология развития HTML с 1997 по 2004

В декабре 1997 года, World Wide Web Consortium (W3C) опубликовал HTML 4.0 и оперативно закрыл Рабочую Группу HTML. Менее чем через два месяца, отдельная Рабочая группа W3C опубликовала XML 1.0 . Спустя три месяца после этого, люди, которые управляют W3C, провели семинар под названием «Формируя будущее HTML», чтобы ответить на вопрос: « W3C отказался от HTML?» Это был их ответ:

В ходе обсуждения было решено, что дальнейшее расширение HTML 4.0 будет затруднено, как бы преобразуем 4.0 до XML-приложений. Предлагаемый путь освободит от ограничений, чтобы начать новую жизнь со следующего поколения HTML на основе набора XML-тегов.

W3C перезапустил Рабочую Группу HTML на создание этого «набора XML-тегов». Их первый шаг в декабре 1998 года был проект временной спецификации, которая просто переделывала HTML в XML без добавления каких-либо новых элементов и атрибутов. Эта спецификация позже стала известна как «XHTML 1.0 ». Она определила новый MIME-тип для документов XHTML - application/xhtml+xml . Однако для облегчения миграции существующих страниц HTML4, она также включила приложение C , которое «суммирует рекомендации по проектированию для авторов, желающих, чтобы их XHTML-документы отображались на существующих пользовательских агентах HTML». Приложение C говорит вам, что позволяет автору так называемых «XHTML» страниц, по-прежнему передавать их с MIME-типом text/html .

Следующая цель была веб-формы. В августе 1999 года та же Рабочая Группа HTML опубликовала первый проект XHTML Extended Forms . Она установила ожидания в первом абзаце:

После тщательного рассмотрения, Рабочая Группа HTML постановила, что цели следующего поколения форм не совпадают с сохранением обратной совместимости с браузерами, предназначенных для ранних версий HTML. Нашей целью является обеспечение чистоты новой модели форм (XHTML Extended Forms) на основе набора четко определенных требований. Эти требования описаны в данном документе и основаны на опыте с широким спектром приложений форм.

Несколько месяцев спустя «XHTML Extended Forms» был переименован в «XForms» и переехал в свою собственную Рабочую Группу. Эта группа работала параллельно с Рабочей Группой HTML и, наконец, опубликовала первую редакцию XForms 1.0 в октябре 2003 года.

Между тем, с переходом на XML полностью, Рабочая Группа HTML нацелилась на создание «следующего поколения HTML». В мае 2001 года она опубликовала первую редакцию XHTML 1.1 , в которой добавились только несколько незначительных особенностей вверху XHTML 1.0, но и устранилась лазейка «Приложения C». Начиная с версии 1.1, все XHTML-документы должны передаваться с MIME-типом application/xhtml+xml .

Все, что вы знаете об XHTML, неверно

Почему MIME-типы так важны? Почему я продолжаю возвращаться к ним? Три слова: драконовская обработка ошибок. Браузеры всегда были «снисходительны» с HTML. Если вы создали страницу HTML, но забыли тег , браузер все равно покажет страницу (некоторые теги неявно вызывают завершение и начало ). Вы должны подразумевать иерархическую вложенность тегов - они закрываются в обратном порядке - но если вы создадите код вроде , браузеры обработают его (так или иначе) и двинутся дальше без отображения сообщения об ошибке.

Как и следовало ожидать, тот факт, что «ломаная» разметка HTML работает в браузерах, позволило авторам создавать ломаные HTML-страницы. Много ломаных страниц. По некоторым оценкам, более 99% HTML-страниц в вебе сегодня, содержат, по меньшей мере, одну ошибку. Но так как эти ошибки не заставляют браузеры отображать видимые сообщения об ошибках, никто никогда их не исправляет.

W3C увидел в этом фундаментальную проблему с вебом и стал исправлять ее. XML, опубликованный в 1997 году, вырвался из традиции прощать клиентов и постановил, что все программы, которые потребляют XML должны рассматривать так называемые «синтаксические» ошибки как фатальные. Эта концепция провала на первой же ошибке стала известна как «драконовская обработка ошибок», подобно греческому лидеру Драконту , кто учредил смертную казнь за малейшее нарушение его законов. Когда W3C переформулировал HTML как словарь XML, он поручил, что все документы, передаваемые с новым MIME-типом application/xhtml+xml , будут зависеть от драконовской обработки ошибок. Если есть хотя бы одна ошибка синтаксиса на XHTML-странице - такая как забытый тег или неверно вложенные начальные и конечные теги - у браузеров не будет иного выбора, кроме как остановить обработку и показать сообщение об ошибке конечному пользователю.

Эта идея не везде популярна. При оценке нормы ошибок в 99% на существующих страницах, повсеместной вероятности отображения ошибок конечному пользователю и нехватки новых возможностей в XHTML 1.0 и 1.1, для оправдания затрат авторы в основном игнорируют application/xhtml+xml . Но это не означает, что они игнорировали XHTML в целом. О, определенно нет. Приложение С спецификации XHTML 1.0 дало авторам мира лазейку: «Сделайте что-то, что выглядит подобно синтаксису XHTML, но позвольте передавать это с MIME-типом text/html ». И это именно то, что тысячи веб-разработчиков сделали: они «обновились» до синтаксиса XHTML, но продолжили передавать с MIME-типом text/html .

Даже сегодня, миллионы веб-страниц претендуют на XHTML. Они начинаются с XHTML доктайпа на первой строке, используют имена тегов в нижнем регистре, кавычки вокруг атрибутов и добавляют слэш после пустых элементов вроде
и . Но только небольшая часть из этих страниц передается с MIME типом application/xhtml+xml , который включает драконовскую обработку ошибок XML. Любая страница переданная с MIME-типом text/html - независимо от доктайпа, синтаксиса или стиля кодирования - будет обрабатываться с помощью «снисходительного» анализатора HTML, молча игнорируя любые ошибки разметки и никогда не оповещая конечных пользователей (или кого-то еще) даже если страница технически нарушена.

XHTML 1.0 включил эту лазейку, но XHTML 1.1 закрыл ее, а незавершенный XHTML 2.0 продолжил традицию требования драконовской обработки ошибок. Именно поэтому есть миллиарды страниц, которые утверждают, что они XHTML 1.0 и только горстка, которые утверждают, что они XHTML 1.1 (или XHTML 2.0). Так вы действительно используете XHTML? Проверьте свой MIME-тип (на самом деле, если вы не знаете, какой MIME-тип используете, я могу почти гарантировать, что вы еще используете text/html ). Пока вы не передаете ваши страницы с MIME-типом application/xhtml+xml , ваш так называемый «XHTML» является XML только по названию.

Конкурентное видение

В июне 2004 года W3C провел семинар по Веб-приложениям и составным документам . На этом семинаре присутствовали представители трех браузеров, компании по веб-разработке и другие члены W3C. Группы заинтересованных сторон, включая Mozilla Foundation и Opera Software, рассказали о своих конкурентных видениях будущего веба: эволюция существующего стандарта HTML 4 включает новые возможности для современных разработчиков веб-приложений.

Следующие семь принципов отражают то, что мы считаем наиболее важными требованиями для этой работы.

Обратная совместимость, понятный путь миграции Технологии веб-приложений должны базироваться на технологиях знакомым авторам и включающим HTML, CSS, DOM и JavaScript. Основные характеристики веб-приложения должны выполняться с использованием поведения, скриптов и таблиц стилей в IE6 сегодня, так что авторы имеют понятный путь миграции. Любое решение, которое не может быть использовано текущим пользовательским агентом без необходимых плагинов, вероятно не может быть успешным. Обработка ошибок правильности построения Обработка ошибок в веб-приложениях должна быть определена на уровне детализации, где пользовательские агенты не должны изобретать свои собственные механизмы обработки ошибок или реверсивное проектирование других пользовательских агентов. Пользователи не должны подвергаться авторским ошибкам Спецификации должны указывать точное поведение восстановления для каждого возможного сценария ошибки. Обработка ошибок должна по большей части определяться в терминах изящного устранения ошибок (как в CSS), а не как очевидный и катастрофический сбой (как в XML). Практическое использование Каждая функция, которая идет в спецификации веб-приложения, должна быть обоснована практическим использованием. Обратное не всегда верно: каждый вариант использования не обязательно гарантирует новую функцию. Использовать аргументы предпочтительнее на базе реальных сайтов, где авторы ранее применяли плохое решение для обхода ограничения. Скрипты остаются Но их следует избегать там, где может быть использована удобная разметка. Скрипты должны быть нейтральными к устройствам и представлениям пока это возможно в конкретных устройствах (например, если они не включены в XBL). Следует избегать профиля конкретного устройства Авторы должны иметь возможность полагаться на те же функции, которые выполняются в настольных и мобильных версиях одного и того же пользовательского агента. Открытый процесс Веб принес пользу, потому что разрабатывался в открытой среде. Веб-приложения будет ядром веба и их разработчик должен пребывать в открытости. Списки рассылки, архивы и проекты спецификаций должны быть постоянно видимыми для общественности.

В неофициальном опросе участников семинара спросили: «Должен ли W3C развивать декларативное расширение HTML и CSS и обязательно дополнять DOM для решения требований среднего уровня веб-приложений, в отличие от сложных API полноценной ОС? (предложил Ян Хиксон, Opera Software)». Голосовали 11 за, 8 против. В своем резюме семинара , W3C написал: «В настоящее время W3C не намерен предоставлять любые ресурсы сторонней теме неофициального опроса: расширение HTML и CSS для веб-приложений, помимо технологий, разрабатываемых в соответствии с уставом текущей Рабочей Группы W3C».

Столкнувшись с этим решением, у людей, которые предложили развивать HTML и HTML-формы, было только два варианта: отказаться или продолжить свою работу за пределами W3C. Они выбрали последнее и зарегистрировали домен whatwg.org , так в июне 2004 года родилась WHAT Working Group .

WHAT Working Group?

Что еще за, черт побери, WHAT Working Group? Я позволю объяснить это им самим :

Рабочая группа по разработке гипертекстовых приложений для веб (WHAT Working Group) это свободное, неофициальное и открытое сотрудничество производителей браузеров и заинтересованных сторон. Группа направлена на разработку спецификаций на основе HTML и связанных с ним технологий, чтобы облегчить развертывание совместимых веб-приложений с целью предоставления результатов организации по стандартам. Это предоставление затем будет основой работы по формальному расширению HTML в курсе стандартов.

Создание этого форума следует из нескольких месяцев работы приватной переписки по спецификациям для каждых технологий. Основное внимание было уделено расширению форм HTML4 для поддержки функций по просьбе авторов, без нарушения обратной совместимости с существующим содержанием. Эта группа была создана, чтобы обеспечить будущее развитие этих спецификаций, и будет полностью открыта через публичные архивы, доступный список рассылки.

Ключевая фраза здесь «без нарушения обратной совместимости». XHTML (исключая лазейку Приложения C) не является обратно совместимым с HTML. Он требует совершенно новый MIME-тип, который включает драконовскую обработку ошибок для любого контента передаваемого с этим MIME-типом. XForms не совместимы с формами HTML, потому что они могут использоваться только в документах, которые передаются с новым MIME-типом XHTML, это означает, что XForms также включают драконовскую обработку ошибок. Все дороги ведут в MIME.

Вместо выбрасывания более десяти лет вложений в HTML и создания 99% существующих веб-страниц непригодными, WHAT Working Group решила принять другой подход: документированы «прощающие» алгоритмы обработки ошибок, которые фактически используется браузерами. Браузеры всегда прощают ошибки HTML, но никто никогда не удосужился написать, как именно они это сделали. NCSA Mosaic имеет свои собственные алгоритмы для работы с неправильными страницами, а Netscape пытался соответствовать им. Затем Internet Explorer пытается состязаться с Netscape. Затем Opera и Firefox пытаются состязаться с Internet Explorer. Затем Safari пытается состязаться с Firefox. И так далее, вплоть до наших дней. На этом пути разработчики сожгли тысячи и тысячи часов, пытаясь сделать свой продукт совместимым с конкурентами.

Если это звучит как безумное количество работы, то потому, что так и есть. Вернее, было. Потребовалось пять лет, но WHAT Working Group успешно документировала, как парсить HTML так, что это совместимо с существующим веб-контентом. В окончательном алгоритме нигде нет шага, который устанавливает, что HTML должен остановить обработку и показать сообщение об ошибке конечному пользователю.

Пока происходило реверсивное проектирование, WHAT Working Group тихо работала над некоторыми другими вещами. Одна из них была спецификация, первоначально дублирующая Web Forms 2.0 и добавляющая новые типы полей в HTML-формы (вы узнаете больше о веб-формах в ). Другой проект спецификации называется «Web Applications 1.0», который включал много новых возможностей вроде холста для непосредственного рисования и встроенную поддержку аудио и видео без плагинов.

Назад в W3C

Два с половиной года W3C и WHAT Working Group в основном игнорировали друг друга. Хотя WHAT Working Group сосредоточила внимание на веб-формах и новых функциях HTML, Рабочая Группа W3C по HTML была занята XHTML версии 2.0. Но к октябрю 2006 года стало понятно, что WHAT Working Group подняла серьезный импульс, в то время как XHTML 2 по-прежнему томится в черновой форме и не был реализован в каком-либо серьезном браузере. В октябре 2006 года Тим Бернерс-Ли, основатель W3C, объявил, что W3C будет работать вместе с WHAT Working Group над развитием HTML.

Некоторые вещи становятся понятны спустя несколько лет. Необходимо развивать HTML постепенно. Попытка получить мир переходом к XML, включая кавычки вокруг значений атрибутов и слэш в пустых тегах и пространство имен, все сразу не работает. Огромная сформированная вокруг HTML общественность не двигалась, в основном, потому что браузеры не жаловались. Некоторые крупные сообщества сделали сдвиг и пользуются плодами синтаксически правильных систем, но не все. Важно поддерживать HTML постепенно, а также продолжить переход к синтаксически правильному миру и развитие больших усилий в этом мире.

Планируется организовать совершенно новую HTML-группу. В отличие от предыдущей группы, она будет делать постепенные улучшения в HTML, а также параллельно XHTML. Она будет иметь другое руководство и штат сотрудников. Он будет работать над HTML и XHTML вместе. Мы имеем сильную поддержку этой группы от многих людей, о которых мы говорили, в том числе разработчиков браузеров.

Также будет работа с формами. Это сложная область, поскольку существующие HTML-формы и XForms являются языком форм. HTML-формы повсеместно развернуты и существует много реализаций и пользователей XForms. Между тем, WebForms подчиняются разумному расширению в HTML-формы. Планируется образовать WebForms в расширение HTML-форм.

Одной из первых вещей недавно организованной W3C HTML Working Group было решение переименовать «Web Applications 1.0» в «HTML5». И вот мы погружаемся в HTML5.

Постскриптум

В октябре 2009 года W3C закрыл Рабочую Группу XHTML 2 и выпустил заявление, объясняющее это решение:

Когда W3C анонсировал Рабочие Группы HTML и XHTML 2 в марте 2007 года, мы показали, что будем продолжать мониторинг рынка для XHTML 2. W3C признает важный четкий сигнал сообщества о будущем HTML.

Хотя мы признаем значение Рабочей Группы XHTML 2 на протяжении многих лет, после обсуждения с участниками руководство W3C решило устав Рабочей Группы, который истекает в конце 2009 года, не продлевать.

Выиграли от этого те, кто воплотил.

  • Перевод

HTML - язык, объединяющий всемирную сеть. Всего лишь посредством набора простых тегов, человечеству удалось создать несравнимую ни с чем по своим масштабам систему связанных между собой страниц и веб-узлов: от Amazon, eBay и Википедии, до личных блогов и сайтов, посвященных котам, похожим на Гитлера.

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

Как и всемирная сеть вообще, HTML - язык разметки гипертекста (HyperText Mark-up Language) - является детищем сэра Тима Берненс-Ли (Sir Tim Berners-Lee). В 1991 году он написал работу, озаглавленную «HTML Tags», в которой описал чуть меньше двух дюжин тегов, предложенных им для разметки веб-страниц.

Идея использовать для этого кодовые слова внутри треугольных скобок, впрочем, не принадлежит сэру Тиму. Такая система на тот момент уже существовала и использовалась в SGML (Standard Generalised Markup Language, стандартный обобщённый язык разметки), и вместо того, чтобы изобретать что-то с нуля, сэр Тим посчитал более рациональным взять за основу уже существующие решения. Аналогичный подход применялся и вообще на всем пути к HTML5 в процессах разработки.

От IEFT к W3C: дорога к HTML 4 Версии HTML 1 никогда не существовало. Первой официальной спецификацией был сразу HTML 2.0, и издала его организация IETF (Internet Engineering Task Force, Специальная комиссия интернет-разработок). Многие из возможностей языка, описанных в этой спецификации, были основаны на уже используемых сторонних разработках. Например, тег для вставки картинок на страницы был реализован в лидирующем на тот момент (мы говорим о 1994 году) браузере Mosaic, и потом просто перекочевал в стандарт для HTML 2.0.

Эстафету IEFT позже подхватил W3C (World Wide Web Consortium, Консорциум Всемирной Паутины), который и занимался всеми последующими версиями HTML. Во второй половине девяностых велась активная работа над пересмотром и изменением спецификаций, которые в конце концов (точнее, в 1999 году) дали жизнь HTML 4.01.

После этого в истории HTML наступил первый ключевой поворот.

XHTML 1: HTML в виде XML Новая версия языка разметки после HTML 4.01 была названа XHTML 1.0. «Икс» в названии означал eXtreme, и веб-разработчики были обязаны скрещивать перед собой руки каждый раз, когда произносили это слово.

Нет, конечно нет. На самом деле «икс» означал eXtensible («расширяемый»), а скрещивание рук было по желанию.

Сама по себе спецификация для XHTML 1.0 ничем не отличалась от HTML 4.01. Не добавилось никаких новых тегов или параметров - разница была лишь в правилах синтаксиса. Если в HTML разработчикам была дана полная свобода относительно стиля написания кода, в XHTML требовалось соблюдать правила языка XML, - куда более жесткого и нетерпимого к вольностям, - на котором основывалось большинство разрабатываемых Консорциумом технологий.

Жесткие правила, впрочем, пришлись как раз кстати. Они побуждали кодеров придерживаться единого стиля, например - писать все теги и параметры исключительно в нижнем регистре, тогда как в HTML можно было делать как придется.

Выход XHTML 1.0 совпал с возросшим уровнем поддержки современными браузерами таблиц стилей - CSS, - и строгий синтаксис XHTML укрепился в сообществе разработчиков с репутацией лучшего способа написания кода разметки.

Потом был XHTML 1.1.

Если версия 1.0 была просто HTML, сделанным под XML, то XHTML 1.1 - это уже настоящий, чистый XML. В том смысле, что к нему уже нельзя было применить mime-type text/html и нужно было обозначить документ как отформатированный в XML. Однако в том случае его никак не смог бы отобразить самый популярный на тот момент браузер - Internet Explorer, - так что применять на практике этот язык было явно не вариантом.

Создавалось впечатление, что W3C в свои разработках начинает терять связь с реальностью, по которой жила всемирная сеть.

XHTML 2: нет, это уже ни в какие ворота не лезет Если бы герой Дастина Хоффмана из фильма «Выпускник» был веб-дизайнером, W3C сказал был ему только одно слово: XML.

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

Иными словами, это был бред.

Раскол: W(HATWG) TF? В среде Консорциума назрело восстание. Было очевидно, что он собирается вести разработку стандартов, - пусть новых, чистых и прекрасных, - но совершенно не отвечающих нуждам современного сообщества веб-дизайнеров и разработчиков. Opera, Apple и Mozilla были явно от этого не в восторге, так как ожидали совершенно другого - больше упора на форматы, позволяющие расширить возможности для создания веб-приложений.

Начало переменам было положено в 2004 году на одном из собраний. Ян Хиксон (Ian Hickson), который на тот момент был сотрудником Opera Software, выдвинул предложение заняться развитием HTML до уровня, позволяющего использовать этот язык для веб-приложений. Предложение было отклонено.

Разочарованные бунтари вынуждены были отколоться от Консорциума и организовать собственную группу: Web Hypertext Application Technology Working Group, сокращенно WHATWG.

От Web Apps 1.0 к HTML5 Принцип работы WHATWG несколько отличался от того, что был в W3C. В W3C вопросы поднимаются, обсуждается, и конечное решение выносится всеобщим голосованием. В WHATWG вопросы так же поднимаются, обсуждается, но окончательные решения относительно того, что включается в спецификацию, а что нет, остаются за главным редактором - Яном Хиксоном.

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

Первоначально, WHATWG было занято двумя спецификациями - Web Forms 2.0 и Web Apps 1.0, - обе из которых должны были стать расширениями для HTML. Но со временем они были объединены в одну общую, названную просто HTML5.

Воссоединение В то время как в WHATWG работали над HTML5, W3C продолжал канителиться со своим XHTML 2. Нельзя сказать, что вся эта затея скатывалось в говно. Она в него медленно-медленно погружалась.

В октябре 2006-го сэр Тим Бернерс-Ли признал в своем блоге, то идея перевести сеть с HTML на XML была глупой. Спустя несколько месяцев W3C выдал новую установку для HTML Working Group: было разумно решено, что будущие версии HTML следует основать на наработках WHATWG, вместо того, чтобы делать что-то с нуля.

Все эти развороты и смены курса привели к несколько запутанной ситуации. Какое-то время W3C одновременно работал над двумя совершенно несовместимыми языками разметки - XTHML 2 и HTML 5 (обратите внимание, с пробелом), - в то время как WHATWG, отдельная организация, занималась спецификацией HTML5 (без пробела), которая должна была стать основой для другой спецификации в W3C. Хрен срастишь тут, что к чему. Проще было заняться разгадкой последовательности событий в «Мементо» и работах Дэвида Линча.

XHTML мертв, да здравствует синтаксис XHTML Ситуация начала проясняться в 2009-ом, когда W3C объявил, что обновлений по XHTML 2 больше поступать не будет. По сути, они просто официально признали, что формат был мертв с самого рождения.

Однако, странным образом, вместо того, чтобы обойтись без лишнего внимания, смерть XHTML 2 породила какие-то злорадные бурления. Противники XML превратили новость в призыв отказаться от XHTML 1, хотя с XHTML 2 тот, как мы знаем, не имел ничего общего. В свою очередь сторонники XHTML 1, адепты строгого синтаксиса, были обеспокоены тем, что HTML5 вновь узаконит небрежную верстку.

Последнее, впрочем, не должно казаться серьезной проблемой - как мы рассмотрим далее, степень сторогости синтаксиса HTML5 каждый вправе выбрать для себя самостоятельно.

Развитие HTML5 Текущее состояние HTML5 не настолько туманное как раньше, но и все еще не слишком прозрачное.

Две организации сейчас работают над этим форматом. В WHATWG разрабатывают спецификацию, основываясь на принципе «сначала запустить, потом проверять». W3C HTML Working Group в свою очередь берет эту спецификацию и пропускает ее через процесс «сначала проверить, потом запустить». Как видно, такое сотрудничество вряд ли можно назвать крепким и эффективным. Но по крайней мере, вроде как разрешился вопрос «ставить или не ставить пробел» в названии стандарта (ставить его не надо, если что, - HTML5).

Что сейчас больше всего волнует веб-дизайнеров, которые уже опробывали некоторые из возможностей нового языка, это вопрос «Когда это будет готово?» В одном из интервью Ян Хиксон упомянул 2022-ой год как дату, когда HTML5 получит статус «proposed recommendation». Это вызвало волну возмущения среди дизайнеров, так как они понятия не имели, что значит «proposed recommendation», но точно знали, что им явно не хватает пальцев посчитать, сколько лет надо еще ждать до 2022-го.

Если разобраться, возмущения необоснованы. В данном случае «proposed recommendation» означает, что к этому времени в браузерах должна быть полная поддержка всех возможностей языка. В этом случае ориентироваться на 2022 даже слишком смело; мы все знаем, что многие браузеры с трудом подхватывали в свое время даже существующие стандарты. Взять хотя бы Internet Explorer, которому понадобилось больше десяти лет, чтобы начать элементарно поддерживать тег .

Дата, на которую действительно надо ориентироваться, это 2012 год, когда HTML5 будет присвоен статус «candidate recommendation», означающий, что спецификация окончательно сформулирована и как таковой стандарт готов.

Но, ясное дело, это не будет означать, что все из него будет сразу доступно к применению - нужно будет следить за тем, как браузеры постепенно добавляют поддержку тех или иных фич и начинать их использовать по мере появления. Точно так же было с CSS 2.1, на самом деле: мы начали применять возможности этого стандарта по мере того, как браузеры включали его поддержку по частям. Если бы мы предпочли ждать, когда они реализуют его целиком, мы бы ждали до сих пор.

Иными словами, не будет такого момента, когда можно будет сказать «Бах, время HTML5 пришло!». Но начинать работать с ними можно уже сейчас. Благо, язык этот получил рождение не через революцию, а в процессе эволюции, и основывается на том, что было создано до него. Таким образом, можно сказать, что если вы пользуетесь любыми предыдущими версиями HTML, вы уже пользуетесь HTML5.