Как продинамили HTML
АрхивРешение же вопроса, какой конец яйца признать более удобным, по моему скромному суждению, должно быть предоставлено совести каждого.
Д. Свифт. "Путешествия Лемюэля Гулливера"
Весеннее обострение
В очередной раз компании Netscape и Microsoft встали в Интернете по разные стороны баррикад. Яблоком раздора вновь стали стандарты World Wide Web. Затронутой оказалась сама основа Всемирной Паутины - язык гипертекстовой разметки (HTML). От исхода спора зависит победа той или иной стороны в войне браузеров, то затихающей, то разгорающейся с новой силой. Видимо поэтому конкуренты в упор не хотят замечать предложений друг друга, а если и соглашаются по какому-либо вопросу, то лишь запутывают дело до невозможности.
Сама идея усовершенствовать обыкновенный HTML давно носилась в воздухе. Придумать что либо лучшее было весьма несложно. Трудность заключалась в другом: как сделать, чтобы нововведения стали общепринятым стандартом. Куда двигаться, было, в общем, тоже достаточно понятно. В HTML нужно было добавить интерактивности, мультимедийности, а также научить показывать странички в исходном виде. Одним словом, сделать старый добрый HTML более подвижным, или, по-ненашему, динамичным. Добиться от страниц большей динамичности сейчас пытаются всеми возможными средствами. Если заглянуть "за кулисы" некоторых сайтов, станет просто не по себе: HTML, JavaScript, Java, ActiveX, встроенный SQL, нестандартные тэги, активные серверные программы - все перемешано вместе, только чтобы страницы мигали, показывали картинки и меняли свое содержание в зависимости от того, куда пользователь ткнет мышкой.
Кроме того, провайдерам содержания весьма хотелось бы, чтобы их страницы показывались на различных машинах именно в том виде, в каком они были задуманы, а не изменялись до неузнаваемости в зависимости от разрешения экрана или ширины окна браузера. Наконец, было бы желательно, чтобы расширенный язык обладал обратной совместимостью - не пропадать же всему, что уже было написано на HTML.
Естественно, что законодателями моды в области новых стандартов могли стать только два кита - Microsoft или Netscape, ведь через их браузеры на Интернет смотрит абсолютное большинство пользователей. Так, собственно, и случилось. Обе компании решили ввести в последних версиях своих коммуникативных пакетов (просто браузерами их назвать язык не поворачивается) Internet Explorer 4.0 и Netscape Communicator поддержку новых расширений гипертекстового языка.
...а получилось как всегда
На рассмотрение Консорциума по WWW (W3C - World Wide Web Consortium), а также на суд широкой интернетовской общественности Netscape и Microsoft предложили вариации на тему расширений HTML. Microsoft назвала свое предложение "Dynamic HTML", а Netscape - "dynamic HTML". Разница в написании первой буквы (строчная или прописная) не слишком бросается в глаза, однако под одним и тем же именем предлагаются сильно отличающиеся спецификации, плохо совместимые между собой.
В некоторых основных принципах построения будущего гипертекстового языка компании, кажется, имеют точки соприкосновения. Как Dynamic HTML (с большой буквы), так и dynamic HTML (с маленькой) будут поддерживать следующие две новые возможности: многослойность (Layering) и абсолютное позиционирование объектов на странице (Absolute positioning).
Документ будет состоять из неограниченного количества слоев, содержащих текст, графику и т. д. В простейшем случае, например, это позволит создавать для различных участков страницы свой фоновое оформление. В обычном HTML было возможно задавать только единый фон для всей страницы, исключения делались лишь для ячеек таблиц. Слегка углубляясь, отмечу, что некоторые детали реализации отличаются - например, тэг <Layer>, предложенный Netscape, Microsoft поддерживать отказалась. Он был отклонен также и W3C.
Благодаря абсолютному позиционированию, отныне пользователь сможет увидеть страницу именно в том виде, в каком ее сделал автор. Размещение текстовых и графических объектов будет задаваться с пиксельной точностью и конечный результат станет независимым от особенностей системы клиента. Необходимость этого нововведения давно назрела, косвенным свидетельством чему является распространенность в Интернете передачи файлов Adobe Acrobat. Хотя документы в этом формате и являются точным отражением замыслов создателя, их использование пока затруднено по целому ряду причин.
С размещением графических объектов все более или менее понятно: они полностью определяют сами себя. А вот как быть с текстом? Каждый, наверное, испытывал трудности с воспроизведением своих документов на другом компьютере, где установлены "чуть-чуть" отличающиеся шрифты. Чтобы обойти эту трудность, единственным средством являются единые для всего Интернета Web-шрифты (Web fonts).
В поставке Netscape Communicator будут содержаться четыре предопределенных шрифта различных начертаний. Internet Explorer также предложит похожее решение. Если вдруг в системе не окажется шрифта нужного начертания, он будет оперативно подгружен из Интернета. Эта функция получила название динамических шрифтов (dynamic fonts). Конкретные характеристики шрифтов в окончательных версиях Explorer и Communicator, впрочем, могут отличаться, что создаст определенные трудности.
Все вместе - многослойность, позиционирование и Web-шрифты - позволит перейти к модели расположения объектов (здесь уже можно употребить термин "верстка"), называемой Cascading Style Sheet (CSS), что можно перевести как "последовательность инструкций для верстки". О поддержке предложенного стандарта (CSS1) говорят и Netscape, и Microsoft. Последняя, правда, сообщает, что Explorer сможет использовать также "дополнительные возможности" CSS. В свою модель Dynamic HTML Microsoft вводит еще одну функцию под названием data awareness (осведомленность о данных), которая позволит размещать и организовывать данные (например, в таблицах) без дополнительного обращения к серверу.
Как видно, даже в общих чертах браузеров есть различия, затрудняющие создание страниц, которые бы подходили всем. Основная причина несовместимости не в том, что Netscape хочет досадить Microsoft, и наоборот. Она состоит, скорее, в различной направленности продуктов. Netscape хочет создать универсальный коммуникационный пакет, дающий один и тот же результат на различных платформах, будь это Windows, OS/2, Unix или Macintosh. Microsoft Internet Explorer 4.0 же, напротив, ориентирован в основном на Windows, хотя в будущем и обещается поддержка других платформ. Более того, он заявлен как чуть ли не основная часть будущей операционной системы, которая придет на смену Windows 95. Тесная интеграция с конкретной платформой дает, конечно, определенные преимущества, но с универсальностью приходится проститься.
Поговорим теперь о том, чем отличаются два варианта динамического HTML. Различия, прежде всего, проявляются в использовании языков скриптов. Netscape собирается строго придерживаться JavaScript, который будет составлять основу объектной модели dynamic HTML. В Internet Explorer же будет использоваться как JavaScript (вернее, его версия от Microsoft, называемая Jscript), так и Visual Basic script (VBscript). Как заявляют представители Netscape, только JavaScript является по-настоящему межплатформенным, VBscript же представляет собой продукт исключительно для Win32. Тем не менее, несмотря на поношения Win32, Netscape введет в Communicator поддержку ActiveX и просмотр документов в форматах Word, Excel и PowerPoint: как ни ругают Windows, они все же составляют большинство.
Из посещений сайтов обеих компаний складывается впечатление, что Microsoft сейчас ведет по отношению к Netscape гораздо более агрессивную пропаганду. На www.microsoft.com можно найти множество обвинений Netscape в том, что ее dynamic HTML не поддерживает (в отличие, разумеется, от Dynamic HTML) истинно объектные модели и что страницы, написанные на нем, не могут быть по-настоящему интерактивными. В частности, Microsoft очень любит приводить пример с "живым" оглавлением. Когда пользователь проводит мышкой над пунктами такого оглавления, они автоматически раскрываются, показывая подзаголовки. По мнению Netscape, имеющихся в Communicator средств (например, JavaScript Accessible Style Sheets) вполне достаточно для достижения этих целей. Что же касается отношения Netscape к Microsoft, то компания делает вид, словно альтернативной модели Dynamic HTML не существует.
Таким образом, если конкуренты не достигнут договоренности по стандартам, Интернет рискует быть разделенным на две части. Совершенно очевидно, что в нынешнем состоянии Dynamic HTML и dynamic HTML, при некоторых общих свойствах, несовместимы друг с другом. Чтобы не загромождать статью, я специально старался не касаться деталей конкретных тэгов и спецификаций. При желании их можно отыскать на сайтах www.microsoft.com и home.netscape.com. Обе компании представили свои предложения на рассмотрение W3C. Какое решение примет Консорциум, еще неизвестно, однако Microsoft весьма часто апеллирует к тому, что ее модель наилучшим образом соответствует черновому варианту (working draft) готовящегося в W3C документа. Может сложиться впечатление, что Консорциум является единственной стороной, которая должна сказать последнее слово и установить, наконец, единый стандарт.
Представим, однако, что решение по dynamic HTML принято, но оно затрагивает основы спецификации или Netscape, или Microsoft. Не затронуть их практически невозможно - различия слишком существенны. В этом случае вряд ли можно рассчитывать, что одна из сторон добровольно откажется от своих предложений. Скорее всего, она будет стараться перетащить на свою сторону пользователей и разработчиков, чтобы утвердить свой подход де-факто, что в данном случае гораздо важнее де-юре. Каково официальное мнение W3C по этому вопросу, тогда уже будет вряд ли кого-то интересовать. Прецеденты такого рода уже были, достаточно вспомнить "нестандартные" расширения HTML, которые включила в свой Navigator компания Netscape. Впоследствии они стали общепринятыми и вошли в спецификацию HTML 3.2. Конечно же в конце концов конкуренты должны прийти к некоторому единообразию, либо кто-то из них должен покинуть поле битвы. От двойных стандартов в первую очередь пострадают провайдеры содержания WWW. Тем, кто захочет сделать свои HTML-страницы наиболее "динамичными", придется либо сознательно ограничивать свою аудиторию, либо представлять содержание в двух видах - для Internet Explorer и для Communicator.
А может, есть что-то получше?
Само название dynamic HTML указывает на то, что этот язык является прямым наследником HTML. В этом его слабость и сила одновременно. Сила заключается в простоте и распространенности - HTML стал так популярен именно из-за того, что он не требует программирования. Чтобы понять, как устроена та или иная страница, достаточно просто взглянуть на ее исходный текст. Как уже отмечалось выше, придумать что-либо лучшее, чем HTML, относительно несложно. Одной из таких идей и является язык XML, предложенный группой крупных компаний и научных организаций. В их число вошли Adobe, SoftQuad, Sun Microsystems, Novell и Hewlett-Packard, а также Оксфордский и Бостонский университеты.
Основная черта XML состоит в том, что он позволяет описывать и размещать структурированное содержание, что не было доступно средствами HTML. Используя специальные тэги для определения типов документов (Document Type Definitions), списки стилей (stylesheets) и ссылки на приложения (называемые XML процессорами - XML processors), разработчики содержания WWW получат новые гибкие возможности для управления содержанием. Пользователи могут легко осуществлять поиск по базам данных, спискам рассылки или многим страницам в Интернете - все эти возможности основаны на стандартных свойствах XML. Одним из таких важных свойств является концентрация ключевой информации о документе, (автор, тема, краткая характеристика и т. д.), что в терминологии XML называется метаданными (meta data).
Подобно динамическому HTML, XML также имеет своего предшественника. Им является стандарт более чем десятилетней давности под названием SGML. Однако в данном случае эволюция шла по пути упрощения. В XML сокращено количество инструкций для форматирования данных, которых было в SGML излишне много, а синтаксис сделан интуитивно более понятным. XML также поддерживает стандарты HTML для создания гиперсвязей между документами (тэги <HREF... >).
Идея создать структурированный язык, на первый взгляд, весьма неплоха (да и вряд ли станут Sun, HP и Оксфорд ерундой заниматься). Однако возникает все тот же вопрос: чем же просматривать документы XML? Очевидно, что двух существующих, написанных на Java "гляделок" (в отличие от браузеров их называют парсерами, parsers) недостаточно для того, чтобы XML стал общепризнанным стандартом. В этом отношении XML, можно сказать, повезло. Хотя динамический HTML сегодня в большем фаворе, XML может получить хорошую поддержку со стороны как Microsoft, так и Netscape. Причем, Microsoft прямо говорит о том, что в Internet Explorer 4.0 будет включена возможность просмотра XML. Что касается Netscape, то о планах включения (или не включения) XML в Communicator еще ничего не известно. Представители компании, однако, высказываются в том ключе, что встраивание поддержки XML не займет много времени. Возникает, однако, опасение, что здесь может повториться история с динамическим HTML (см. раздел "Хотели как лучше...")
Почему вымерли динозавры?
Динамический HTML, XML, различные скрипты, plug-ins... стремление поддерживать все это привело к тому, что браузеры (ах, нет, уже коммуникационные пакеты) достигли огромных размеров. Тот же Internet Explorer через Интернет получить нелегко (если иметь в виду качество модемных линий). Его размер составляет по меньшей мере 11 Мбайт, причем, это, надо заметить, минимальная, то есть урезанная до предела поставка. Развернувшись на диске, Internet Explorer займет от 43 до 59 Мбайт. Окончательная версия, в которую будут включены все опции, растолстеет еще на несколько мегабайт. Communicator, хотя и несколько поменьше, но тоже имеет приличные габариты (архив занимает от 8 до 15 Мбайт в зависимости от комплектации). Невольно вспоминается, что когда-то, давным-давно (пару лет назад, тогда еще была жива Mosaic), Netscape Navigator с запасом влезал на одну дискетку.
Безудержный рост размеров браузеров вызывает некоторые опасения, и тому есть несколько причин. Во-первых, коммуникативные пакеты, имеющие столь солидный размер, несовместимы с изначальной идеей сетевого компьютера (NC). NC задумывался как легкая альтернатива PC и предназначался для взаимодействия с сетью. Браузер (простите, коммуникативный пакет) для сетевого компьютера является основным приложением. А теперь представьте себе бездисковую станцию, которой для того, чтобы изобразить маленький документ нужно закачивать из сети несколько мегабайт программы его просмотра.
Во-вторых, возникают аналогии с миром живой природы. Когда-то давно по Земле передвигались исполинские ящеры, которые были как нельзя лучше приспособлены к своим условиям существования. Когда же эти условия слегка изменились, гигантам ничего не осталось, как вымереть. Как знать, где та критическая масса, которая не позволит браузерам (чем не имя для нового вида ящера) нормально развиваться и заведет их в эволюционный тупик?
С автором можно связаться по адресу mpopov@cterra.com
|