История HTML
Среди ключевых технологий, на
которых держится современный
Интернет, одной из важнейших и,
как это ни странно, вызывающих
наиболее ожесточенные споры
является язык HTML,
предназначенный для разметки и
оформления документов World Wide
Web.
Необычайно интересно
проследить историю развития
этого языка - историю, в которой
столкнулись противоположные
подходы к проблеме компьютерного
представления текста и которая
послужила ареной сотрудничества
и противоборства крупнейших
компьютерных компаний,
определяющих пути развития и
будущее Интернета.
В
начале был SGML
Начало истории HTML следует
отнести к далекому 1986 году,
когда Международная организация
по стандартизации (ISO) приняла
стандарт ISO-8879, озаглавленный
"Standard Generalized Markup
Language (SGML)". Стандарт этот
посвящен описанию SGML -
обобщенного метаязыка,
позволяющего строить системы
логической, структурной разметки
любых разновидностей текстов.
Слово "структурная" означает,
что управляющие коды, вносимые в
текст при такой разметке, не
несут никакой информации о
внешнем виде документа, а лишь
указывают границы и соподчинение
его составных частей, т.е.
задают его логическую структуру.
Создатели SGML стремились
максимально абстрагироваться от
проблем представления
электронного текста в разных
программах, на разных
компьютерных платформах и
устройствах вывода. Так, если с
помощью SGML размечается
документ, содержащий заголовки,
идеология языка запрещает
указывать, что такой-то
заголовок должен набираться,
скажем, шрифтом Times
полужирного начертания кегля 12
пунктов. SGML в таком случае
требует ограничиться указанием
на уровень заголовка и его место
в иерархической структуре
документа.
Благодаря таким ограничениям
размеченный текст сможет без
труда интерпретировать любая
программа, работающая с любым
мыслимым устройством вывода.
К
примеру, при работе в
графическом интерфейсе заголовок
может действительно выводиться
полужирным шрифтом повышенного
кегля; программа, использующая
текстовый интерфейс, выделит его
пустой строкой сверху и снизу и,
возможно, повышенной яркостью
символов; синтезатор речи,
читающий документ вслух, сможет
отметить заголовок паузой и
изменением интонации.
Можно сказать, что SGML-разметка
обнажает нематериальную "душу"
текста, для которой впоследствии
любая программа-интерпретатор
сможет подобрать подходящее к
случаю "тело".
Однако абстрактность SGML этим
не исчерпывается. SGML
представляет собой не готовую
систему разметки текста, а лишь
удобный метаязык, позволяющий
строить такие системы для
конкретных обстоятельств. Жизнь
многообразна и непредсказуема:
сегодня вам требуется выделять в
текстах заголовки, а завтра,
возможно, понадобится размечать
подписи в письмах,
математические формулы или имена
действующих лиц в пьесе.
Стандарт SGML определяет лишь
синтаксис записи элементов
разметки - тегов - и их
атрибутов, а также правила
определения новых тегов и
указания структурных отношений
между ними. Для практической же
разметки документов нужно
приложение SGML - набор
определенных в соответствии со
стандартом тегов, представляющий
собой, по сути, формальное
описание структуры документа.
Золотой
век
Язык SGML - это типичное детище
академической науки, изящная
игрушка теоретиков. Его создание
не было вызвано насущной
практической необходимостью.
Принципы, на которых строится
этот язык, значительны и
интересны; несомненно, идеология
SGML оказала влияние на многие
компьютерные разработки.
Однако сам по себе SGML не
получил сколько-нибудь заметного
распространения - до тех пор,
пока в 1991 г. сотрудники
Европейского института физики
частиц (CERN), занятые созданием
системы передачи гипертекстовой
информации через Интернет, не
выбрали SGML в качестве основы
для нового языка разметки
гипертекстовых документов. Этот
язык - самое известное из
приложений SGML - был назван
HTML (HyperText Markup Language,
"язык разметки гипертекста").
Изначально HTML, как и положено
SGML-приложению, разделял все
особенности идеологии SGML. Из
сорока с небольшим тегов HTML
версии 1.2 (датированной июнем
1993 г.) всего три, да к тому же
и не рекомендованных к
использованию, тега осмеливались
намекать на физические параметры
представления документа.
Вся разметка была чисто
логической, и лишь в
описательной части стандарта,
сопровождающей формальное
определение тегов, можно было
прочесть что-нибудь вроде "в
графических броузерах действие
этого тега может передаваться
курсивным начертанием".
А первым (и долгое время
единственным) графическим
броузером в те далекие времена
была программа Mosaic,
разработанная, как и сам WWW, в
научном учреждении -
Национальном центре
суперкомпьютерных приложений США
(National Center for
Supercomputer Applications -
NCSA).
Так что нет ничего удивительного
в том, что в этот "золотой век"
никаких противоречий между
официальными стандартами и их
реализацией в броузерах еще не
существовало. HTML неторопливо
развивался, оставаясь в рамках
парадигмы структурной разметки,
и в апреле 1994 г. началась
подготовка спецификации
следующей версии языка - 2.0.
Этим занимался образованный в
том же году Консорциум W3 (W3
Consortium, сокращенно W3C),
унаследовавший от CERN верховную
власть и авторитет в мире WWW.
В настоящий момент консорциум,
имеющий статус "международной
некоммерческой организации",
объединяет свыше 150
организаций-членов, в том числе
фирмы Netscape, Microsoft и
множество других. Однако в
1994-1995 гг. его членами были
почти исключительно университеты
и научные учреждения.
Столь "академический" состав W3C
сказывался как на самих
документах, публикуемых
консорциумом, так и на процедуре
(и особенно на сроках) их
принятия. Достаточно сказать,
что окончательный вариант HTML
2.0, единственным серьезным
усовершенствованием в котором
был механизм бланков (форм) для
отсылки информации с компьютера
пользователя на сервер, был
окончательно утвержден лишь в
сентябре 1995 г., когда в W3C
уже полным ходом шло обсуждение
HTML 3 (или, как его называли
поначалу, "HTML+").
Стили
Пожалуй, проект HTML 3 - самая
яркая и неоднозначная страница в
истории языка. Работа над ним
началась в марте 1995 г., и
первоначальный вариант стандарта
включал в себя много интересных
нововведений - теги для создания
таблиц, разметки математических
формул, вставки обтекаемых
текстом рисунков, примечаний и
др. Но самое главное - HTML 3.0
был попыткой разрешить уже
достаточно очевидное к тому
времени противоречие между
идеологией структурной разметки
и потребностями пользователей,
заинтересованных в первую
очередь в гибких и богатых
возможностях визуального
представления.
Чтобы разрешить это
противоречие, не оскверняя
заветов отцов-основателей HTML,
авторы версии 3 ввели в ней
поддержку нового средства - так
называемых иерархических
стилевых спецификаций (Cascading
Style Sheets, CSS).
Система CSS формально независима
от HTML, имеет совершенно иной
синтаксис (более того, HTML 3
можно стыковать с разными
реализациями CSS, обладающими
разным синтаксисом и
возможностями), не наследует
никаких идеологических
ограничений и позволяет, уже в
совершенно иных терминах,
задавать параметры визуального
представления для любого тега
HTML. С помощью CSS автор может
наконец с чистой совестью
указать, каким шрифтом какого
кегля набирать заголовки
такого-то уровня.
И, что самое важное, достигнуто
это было не введением новых
тегов, а разработкой механизма,
позволяющего влиять на
интерпретацию уже существующих
тегов логической разметки,
причем с учетом контекста его
употребления. Броузеры с
текстовым интерфейсом или с
синтезатором речи смогут с
легкостью проигнорировать эту
дополнительную информацию и
использовать для оформления свои
обычные средства.
Слово cascading в названии
системы CSS служит напоминанием
о том, что в действительности на
вывод каждого тега в документе
могут оказывать влияние сразу
несколько стилевых спецификаций,
образующих иерархическую
систему: например, поверх
спецификаций, относящихся к
конкретному документу, может
действовать стилевой файл, общий
для всех документов на сервере.
Кроме того, пользователь
броузера, поддерживающего CSS,
может указать свои собственные
параметры вывода для тех или
иных тегов. Конфликты, которые
при этом возникают, разрешаются
в пользу более частных, узких
спецификаций: то, что указано
для конкретного документа, берет
верх над спецификациями для
всего сервера, а параметры
вывода тега в данном контексте
имеют преимущество перед
параметрами для того же тега
"вообще", без учета контекста.
В случае же конфликта
спецификаций, заданных
пользователем, с установками
автора страницы побеждают
последние, хотя пользователь
может при желании изменить эту
ситуацию на обратную.
Нет сомнения, что CSS - почти
идеальное средство избавить HTML
от наследственных дефектов и
перевести его развитие на
принципиально новые рельсы. Тем
досаднее то, как сложилась
судьба этого замечательного
изобретения.
Поскольку спецификацию CSS
увязали с другими нововведениями
HTML 3, W3C долго не утверждал
ее в качестве официального
стандарта; задерживалось и
доведение ее до более или менее
завершенного вида, при котором
стала бы возможной реализация
CSS в коммерческих продуктах.
http://www.webgeneration.ru