0,0
рейтинг
1 сентября 2010 в 16:40

Разработка → HTML5 для веб-дизайнеров. Часть 1: Краткая история языка разметки перевод

HTML5 для веб-дизайнеров

  1. Краткая история языка разметки
  2. Модель HTML5
  3. Мультимедиа
  4. Формы 2.0
  5. Семантика
  6. HTML5 и современные условия


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, Специальная комиссия интернет-разработок). Многие из возможностей языка, описанных в этой спецификации, были основаны на уже используемых сторонних разработках. Например, тег <img> для вставки картинок на страницы был реализован в лидирующем на тот момент (мы говорим о 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, которому понадобилось больше десяти лет, чтобы начать элементарно поддерживать тег <abbr>.

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

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

Иными словами, не будет такого момента, когда можно будет сказать «Бах, время HTML5 пришло!». Но начинать работать с ними можно уже сейчас. Благо, язык этот получил рождение не через революцию, а в процессе эволюции, и основывается на том, что было создано до него. Таким образом, можно сказать, что если вы пользуетесь любыми предыдущими версиями HTML, вы уже пользуетесь HTML5.
Перевод: Jeremy Keith
Arnold Sakhnov @Olhado
карма
126,0
рейтинг 0,0
iOS
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (42)

  • –6
    Йомайо… Хотя б кат поставили б…
    • +1
      Виноват. Исправил.
    • +8
      Для таких комментариев есть личка.

      Автору спасибо.
      • +11
        Вот, кстати, сделали бы лучше на Хабре специальную кнопочку сообщать автору о глюках и опечатках, а то многим лень в личку писать, да и можно будет отобразить, сообщили уже о глюке автору или нет.
        • +2
          А я вот прочитал оглавление, и понял что хочу только одну часть серии почитать… И очень огорчился от того что нет кнопочки «подписаться на серию статей»… Или что-то типа «получать уведомления о новых статьях в серии»… и еще бы общее оглавление со ссылками в каждой статье :-)

          Гы… Вспомнил что где-то у меня был список пожеланий к хабру :-)
  • 0
    + Спасибо!

    Полагаю, что источник — books.alistapart.com/products/html5-for-web-designers
    Если у Вас есть PDF, то будем очень рады получить ссылку, откуда утянуть книгу :)
    • 0
      ifolder.ru/19118585
      И да, выше просто бессмысленный набор символов, сгенерированный случайным образом.
  • +1
    Как-то я слишком старый буду, когда все перейдут на html5, а с другой стороны за 12 лет еще неизвестно куда вся компьютерная техника разовьётся. Может html уже в принципе не нужен будет…
    • 0
      Я так понял это был юмор :) Тут не знаешь что будет через месяц, а он про 2022…
    • 0
      Если присмотреться к истории развития броузеров, можно сделать более перспективный прогноз. Например.
      MS IE понадобилось 4-5 лет на то чтобы практически с нуля занять 90% рынка и столько же чтобы просрать эту монополию.
      5 лет назад только один единственный броузер поддерживал Ajax,WYSIWYG, XSLT
      5 лет назад любимой дискуссией верстальщиков было DIV contra Table
      Через пять лет вам будет 35. Вполне нормальный возраст.
  • 0
    Учитывая, что сейчас есть пользователи, которые используют IE6, то можно только мечтать об использовании HTML5, если сайт хочет на большую аудиторию. Или под разные браузеры писать разный код, что не очень хочется.
    • +4
      На пользователей IE6 можно уже сейчас забивать (в некоторых случаях не полностью, предоставляя только функциональную совместимость, но никак не абсолютную визуальную). Но не забывайте про пользователей IE7-8, которых легион; вот где тормоз для HTML5.
      • 0
        Особенно учитывая популярность WinXP, на которой, похоже, IE9 работать не будет
    • +2
      code.google.com/p/ie7-js/ спасает мир. Я просто подключаю этот скрипт и вообще не трогаю CSS. И в IE6 ничего не глючит и не расползается.
  • 0
    Спасибо, познавательно…
  • –1
    > В том смысле, что к нему уже нельзя было применить mime-type text/html и нужно было обозначить документ как отформатированный в XML.

    кто-нибудь мне скажет кто придумал эту глупость? =_="
  • +1
    то что искал. Спасибо
  • –1
    «HTML — язык, объединяющий всемирную сеть. Всего лишь посредством набора простых тегов, человечеству удалось создать несравнимую ни с чем по своим масштабам систему связанных между собой страниц и веб-узлов:....»

    Этой фразой автор показала полную некомпетентность в вопросе.

    HTML — это всего лишь говяный язык разметки. Так что говорит, что именно он (причем посредством набора простых техгов) объединяет всемирную сеть — это оскорблять, все те стопиццотмиллиардные вложения в компьютерные сети (и работу стопиццот ученных фанитоков), которые позволяют с легкостью, даже такому не особо удачному языку разметки все связать воедино.

    • +5
      А еще давайте отдадим дань электрикам и монтажникам, проложившим проводные и не очень сети, а также поварам, готовившим им еду в полевых кухнях, и медсестрам, которые лечили им порезы, оставленные оголенными проводами на их героических задницах! Я понимаю, что желательно строго придерживаться фактов, но не нужно же быть НАСТОЛЬКО занудой ) Расслабьтесь, будьте счастливы!
      • –2
        Не надо говорить фигню и я не буду приставать =)

        «HTML — язык, объединяющий всемирную сеть» — Чуть более чем бред.
        • +1
          text/html; charset=utf-8
          HTML5 для веб-дизайнеров

          В хедере этой статьи.
          И Вы хотите сказать, что хтмл не объединяет всю сеть в нынешнее время?
          Смею прокомментировать, что времена фидо и паблик фтп серверов с их возможностью общаться в файлах немножко прошла.

          Я не отрицаю существование Links и Lynx, но не будьте занудой.
    • 0
      Вероятно под всемирной сетью имеется в виду «World Wide Web » aka WWW, а не «Internet». И да, HTML и HTTP объединили физическую всемирную сеть (кучу компов, связанных проводами :) ) в гипертекстовую (кучу страниц на экранах мониторов, связанных ссылками). Фактически они реализовали уровни данных в модели OSI, как и положено абстрагировавшись от уровней ниже транспортного.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +5
      понт защитан
      • НЛО прилетело и опубликовало эту надпись здесь
  • –2
    Я прошу прощения, а A Book Apart в курсе, что их платная книга тут выложена в бесплатном виде? Не является ли данная публикация нарушением их авторских прав?
  • 0
    Про пробел в названии только от вас узнал.
    Часть 1 — нас ожидает продолжение?
  • –1
    Вообще говоря, идея использовать XML для верстки страниц при здравом размышлении кажется несколько бредовой. Ближе всего к этому метафора, что если бы строители строили дома, как программисты пишут программы, то первый же залетевший дятел разрушил бы цивилизацию — этож надо додуматься, что единственный непоставленный слеш или кавычка должны рушить отображение страницы. XML, видити ли, невалидный.
    • 0
      Думаете нет стандартов при строительстве? А Сапромат… Боюсь там намного сложнее чем вёрстка HTML.
      Вы, должно быть не программируете, иначе вопрос про единственную кавычку или точку с запятой, или двойное равно не ставился бы.
      • 0
        Вы не теме. Представьте, что здание невозможно построить не положив идеально правильно ВСЕ! кирпичи. Положите один треснутый и бабах — все здание взрывается. Вот так в XML одна непоставленная кавычка приводит к parse error. Я только про это. А вы про сампромат… И не переходите на личности, лучше попробуйте распарсить невалидный XML.
        • 0
          Выдаст ошибку, но ничего не порушит. Вот, если бы при строительстве стоял над строителями парсер, который бы говорил, что кирпич кривой или криво лежит и выдавал ошибку — была бы красота. Я, конечно, понимаю, что не бывает идеальных стройматериалов и идеальных строителей. Но Вы пробовали клеить обои или класть кафель где строители не заморачивались на ровные кирпичи или плиты и на то как они лежат по отношении к друг другу. Дом не рушится, но он кривой.
          • 0
            Это взгляд только с одной стороны — со стороны построения (верстки). Есть еще несколько взглядов — рассерженного владельца сайта, когда страницы перестают работать; секретарши, которой WISYWIG неправильно сформировал HTML; админа сайта, которому установленный виджет выдал вывод в HTML, а не в XHTML. Много еще есть. И все они хотят рабочую страницу. Пусть кривую, но хоть что нибуть — им эти стандарты до лампочки. Символ подправить — не плитку переложить. HTML — это, кстати, тоже стандарт. И страница вполне может ему соответствовать. Вопрос в цене ошибки — чуть коряво и ошибки валидации или полная хана. HTML предлагает первое, XHTML — второе. Я лучше выберу первое, чем второе. В время показало, что XHTML — это круто, конечно. Парсинг и все дела. Но на ошибки в нем разработчики браузеров все равно смотрят сквозь пальцы и приоритет для них — отобразить страницу, а не выдать пользователю parse error, reason тра-ла-ла.
            • 0
              Так может всё дело в парсерах, а не в стандарте?
              А может вообще поискать парсер для HTML 4.0 и использовать его? Я даже не знаю существуют ли такие…

              Я всё понимаю, иногда очень надо, чтобы работало. Но ведь потом никто переделывать не будет, если всё работает. А потом надо будет добавить новую функцию и выяснится, что переделывать надо всё.
              • 0
                Я не понял вашей иронии на счет парсеров.

                > Я всё понимаю, иногда очень надо, чтобы работало. Но ведь потом никто переделывать не будет, если всё работает. А потом надо будет добавить новую функцию и выяснится, что переделывать надо всё.

                Я не говорю «Нарушайте правила, если очень надо, что бы работало». Я говорю, что если Вы лично хотите верстать в соответствии со сдандартами, то вы это можете (и могли) делать всегда. Вы даже можете взять самый строгий стандарт, например XHTML strict. Раньше вы могли верстать в HTML strict и т.д. Но Вы не можете и никогда не сможете внести в головы всем верстальщикам свою точку зрения. И более того, даже Вы не застрахованы от ошибок, в том числе и от ошибок других. Так что XHTML — это, при всем моем уважении к W3.org — это только ориентир, куда надо идти (да и то, только может быть). Как Эверест. И некоторые доходят. Но большинство все равно живет на равнинах, а не на пиках гор — потому что так удобнее. Вот и все.
                • 0
                  Строгий стандарт распарсить проще (быстрее), нестрогий — сложнее (медленнее).

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

                  Вы не смотрите на браузеры, что они такие умные и распознают ошибки и выдают в основном правильный результат. Для этого им выделен отдельный компьютер пользователя где можно сожрать кучу памяти и процессорного времени. Другое дело веб, где нет таких ресурсов.
                  • 0
                    Ну, во-первых, HTML никто не отменял. Поэтому браузер все равно должен быть способен его отобразить. От собственно веб-технологий (javascript, CSS, DOM, HTML) сам код разметки страницы — это только одна небольшая часть. Поэтому парсинг XHTML хоть и проще (хотя это еще вопрос, ибо поддержка namespaces и прочих приятностей XML), но на общую загрузку страницы влияет слабо.

                    Во-вторых, я не понял, при чем тут Web? Вы в PHP скриптах решили HTML парсить? Так тот-же LoadHTML или Tidy для перегона из HTML в XHTML вполне работают. Я сравнений не производил, но, думаю, что вполне достойно работают они, по сравнению с XML парсингом. Так что решения есть.

        • 0
          >> А Сапромат…
          >> А вы про сампромат…

          Сопромат

          А по теме: меньшая строгость правил HTML по сравнению с XHTML позволяла верстать страницы большему числу людей, тем самым делая доступным в сети бо́льшее количество информации. Если бы изначально HTML документы из-за одной незначительной ошибки не отображались бы, у многих отпало бы всякое желание создавать сайты, рост и развитие сети замедлились бы и сейчас было бы всё на уровне конца 90-х.

          Правда, сейчас это уже не так актуально, так как для «широкого загалу» (как это по-русски?) уже существует множество CMS и WYSIWYG’ов, при использовании которых не нужны даже поверхностные знания по вёрстке.
          • 0
            Да, использование XHTML и HTML отличается примерно как выход в интернет полько по real IP который выдается по пасспорту или как сейчас :-)
          • +1
            Ой…: ) Конечно, сопромат.: )
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        >А вы не пробовали посмотреть на это с обратной стороны?
        Пробовоал.

        > Я специально использую при верстке xml-ный content-type, потому что куда как дешевле увидеть грубую ошибку в верстке во время разработки, чем потратить впоследствие кучу времени на вылавливание какой-нибудь мистики в каком-нибудь экзотическом браузере.

        А в продакшене вы его оставляете?

        > А контент от пользователя в любом случае обрабатывать надо. А обработав — исключаем вероятность, что всё когда-нибудь рухнет.

        Это да. Надо. Вопрос не в том, вопрос в том, делать, если таки ошибка есть? XHTML парадигма — усе, привет. Вот вам крассная крассивая ошибка. Наслаждайтесь. HTML парадигма — ну вот у вас есть ошибка валидации, но я что мог — то вывел. Нет рамки вокруг картинки, но хоть картинку вы видите?
        • НЛО прилетело и опубликовало эту надпись здесь

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.