Особенно в этом отношении не повезло языку разметки текстов XML. Может сложиться такое впечатление, что он возник из ничего и должен стать серебряной пулей для электронного бизнеса. На самом деле, как известно, ничего из ничего не возникает, у каждого явления есть свои корни. Если говорить об XML, то этот язык действительно появился в ответ на сиюминутные нужды, но своим появлением он обязан динамике культурных процессов вообще и конкретным предшествующим изобретениям, особенно SGML.
За последние пару лет язык разметки текстов Extensible Markup Language приобретает популярность, пожалуй, еще более стремительно, чем в свое время Java. Ожидаемый эффект от его внедрения в области работы с данными сравнивают с теми революционными изменениями, которые вызывал Java в части прикладных решений.
Однако признание к двум языкам пришло разными путями. Представители программистского сообщества первыми проявили интерес к Java, достаточно вспомнить бурные события 1995 года. Напротив, к XML со стороны программистов отношение более спокойное, и наибольшую заинтересованность в нем демонстрируют представители бизнеса. Вероятно поэтому ситуация, складывающаяся вокруг языка XML, отличается заметной непрофессиональностью, не вполне оправданной демонстративностью, к тому же ее освещение явно страдает гипертрофированным предвосхищением светлого будущего и массой неточностей.
Наибольшим энтузиазмом заражены авторы, популяризующие бизнес-решения, они-то и создают нездоровый ажиотаж вокруг XML. Наделенные профессиональным оптимизмом, они в своих статьях называют язык «смазкой для колес электронного бизнеса» и утверждают, что электронный бизнес просто никак не сможет существовать без XML и многое иное.
Популярным стало яркое сравнение языка XML с Розеттским камнем, на котором была высечена трехязычная надпись, позволившая Шампольону раскрыть тайну египетских иероглифов. Обычно этой метафорой пользуются тогда, когда хотят выразить довольно распространенную точку зрения, согласно которой XML со временем позволит превратить World Wide Web в одну гигантскую базу данных, объединив все виды представления информации. Еще его называют лингва-франка (lingua franka), подразумевая под этим новый язык для бизнес-приложений, что-то вроде имевшего небольшое распространение в первой половине века языка эсперанто.
Практики информационных технологий, наделенные здоровым прагматизмом, а, следовательно, и необходимым пессимизмом, довольно спокойно, без излишнего шума воспринимают появление еще одного средства работы с текстами. В их высказываниях нередко встречается выражение «buzzword», вероятно не нуждающееся в переводе. Например, один очень уважаемый мною коллега сказал так: «Ну что вы все XML, XML? Это просто еще один язык, да к тому же всего-навсего подмножество SGML». Вся эта суета напоминает ему шутку Жванецкого, что, дескать, много лет пугали нас кока-кола, кока-кола, а когда попробовали, то оказалось — простой лимонад. Что ж, и такая точка зрения имеет право на существование, но почему-то, согласитесь, в таком случае странно, что одной из самых богатых фирм в мире не стал московский завод безалкогольных напитков.
Практики нередко выражают желание развеять облака тумана вокруг XML, поэтому распространилось словосочетание «мифы XML», оно встречается и в статьях, и в устных высказываниях. Так что же это такое, XML — всего лишь еще один сорт лимонада или на самом деле панацея для электронного бизнеса, особенно для той его части, которую называют business-to-business (B2B)?
Отделяем мух от варенья
Как всегда истина лежит где-то посередине и объяснения не так сложны. В тот момент, когда бизнес, назвавшись e-бизнесом, подошел к полноценному использованию компьютеров, и выяснилось, что нужно не просто хранить данные и подготавливать документы, потребовалось принципиально иное представление текстовых документов. Из имеющегося инструментария, удовлетворяющего новым условиям, в наличие оказался XML, и дальше началась раскрутка маховика.
Процедура рождения XML детально описана в статьях одного из его самых яростных евангелистов Йона Босака (Jon Bosak), он был в составе группы создателей XML. Вопросы, связанные с предпосылками появления языка и его первыми шагами, по мнению некоторых, не вполне объективно изложены в его статье «Рождение XML: собственные мемуары» (The Birth of XML: Personal Recollection).
Из нее можно узнать, что стремление внедрить нечто похожее на Standard Generalized Markup Language (SGML) в среду Web возникло почти одновременно у нескольких людей, объединившихся в сообщество, названное ими Web SGML Activity. Название же для нового языка было предложено лидером этой инициативы и признанным техническим гуру Джеймсом Кларком (James Clark).
Создание черновой версии языка потребовало нескольких недель работы в летний период 1996 года, и уже на ноябрьской конференции SGML ?96 членам Web SGML Activity удалось сделать первое сообщение о XML. Таким образом язык, который вызвал заметный переполох, не имеет и четырех лет от роду. Из этих статей следует, что непосредственное отношение к появлению нового языка имеет корпорация Sun Microsystems, финансировавшая начальные этапы работы.
Как ни странно, но при чтении мемуаров ученых и инженеров, которые были причастны к созданию наиболее интересных новаций, обнаруживается не просто много, а слишком много фактографического материала, но весьма редко можно обнаружить объяснение причин, вызывавших появление этих новаций. Так, например, среди опубликованных работ по еще очень короткой истории XML, мне не удалось найти анализа фундаментальных причин феноменально быстрого общественного признания языка. Здесь явно кроется какая-то загадка, для решения которой необходимо выйти за узкие технологические рамки. Рискну предложить свои собственные соображения на этот счет.
Вероятно настал момент, сформировалась массовая потребность в простом и удобном средстве нового типа для работы с документами, в том числе и гипертекстовыми, и тут «под рукой» оказался XML. До этого в мире не так уж много велось работ, связанных с языками разметки текстов, и у языка не оказалось конкурентов. Не исключено, что при другом повороте событий на месте XML мог оказаться и какой-то иной аналогичный язык, но появление чего-то подобного является объективной закономерностью.
XML относится к той категории изобретений, которую можно назвать «объективно» обоснованной, из подобных новаций складывается интеллектуальный багаж человечества и материальный образ нашего бытия. Возможно первым среди таких изобретений было каменное рубило, потом колесо и многое, многое другое. Такие вещи появляются, потому что нужны именно они и потому что дальнейший прогресс без них невозможен, попробуем это обосновать.
Масштабы изобретений могут различаться, среди них есть и вечные, и временные. К числу последних можно, например, отнести компакт-диск, что стало очевидно в последнее время. В 70-80-е механика проигрывателей для виниловых дисков достигла невероятного совершенства, но при этом бросалось в глаза несоответствие примитивной техники записи выштампованными дорожками (способа хранения данных) сложнейшему воспроизводящему устройству. Может быть кто-то еще помнит эти тяжелые диски со стробоскопами, на которые накладывался виниловый диск, сложные системы стабилизации скорости вращения и силы давления на иглу. Хорошие изделия были изрядно дороги, и массовому слушателю хороший звук был недоступен, возникла потребность в новом способе записи звука. Произошедший за несколько лет переход к «цифре» решил все проблемы. Некоторые эстеты, правда, сохраняют привязанность к винилу, но скорее это просто ностальгия.
Еще одна неплохая параллель — замена фотографической пленки цифровой записью. Этот способ хранения данных открывает совершенно новые возможности. В любой области человеческой деятельности необходимо соблюдать баланс между тем, на что ориентирована технология, и самой технологией, только так достигается наивысший эффект. Чтобы осуществлять массовые перевозки, нужны и хорошие дороги, и хорошие автомобили чтобы слушать высококачественную музыку, нужен соответствующий способ записи и воспроизводящая аппаратура и т.д. В информационной сфере баланс достигается путем массового перехода к дискретным системам. Цифра радикально меняет почти все: от систем питания автомобильных двигателей до телефонии. Сейчас трудно назвать область приложений, которая бы не испытывала влияния цифровых технологий.
Однако пристальный взгляд позволяет обнаружить одну очень любопытную деталь. Движение к цифре наиболее эффектно там, где данные изначально были представлены в аналоговой форме, будь то снимаемые показатели каких-то процессов или аналоговые форматы записи изображения или звука. Текст же всегда в информационных системах был в цифровой форме. Простота перевода в код, написанных на большинстве языков, обеспечена алфавитом и, на первый взгляд, нет никакой нужды в радикальных изменениях. Исторически так случилось, что почти все известные способы записи текста по определению дискретны, поэтому уж что-что, а проблема работы с ними на компьютере решена как нельзя лучше. Все оказалось просто: еще со времен изобретения телетайпа любому знаку ставится в соответствие двоичная последовательность по определенной таблице кодировки, а дальше - неисчислимые способы хранения и обработки цифровой информации, образующие целый мир того, что мы называем информационными технологиями.
Тем не менее, нельзя не признать, что с точки зрения машинного представления текстов современные технологии не ушли далеко от первых попыток передачи на расстояние и по сути своей остаются на теоретической базе, созданной Клодом Шенноном и его соратниками. Переведенные в последовательность кодов и загнанные на машинные носители тексты остались по сути такими же, как на бумаге, приспособленными для работы с ними людьми. Очевидно, что следующий шаг предполагает адаптацию текста к компьютеру, а это размеченный текст и гипертекст, они позволяют в полной мере использовать преимущества цифрового представления, но пока этот шаг еще сделан едва ли наполовину. Использование размеченных текстов и гипертекстов все еще ограничено относительно небольшим спектром приложений: в системах управления информацией на базе языка SGML и, естественно, информацией на HTML в Web.
То место, которое машинному представлению текстов еще в 1945 году предрекал Ванневар Буш, автор идеи переноса текстов с бумаги на более эффективные носители, оно пока еще не заняло, но очевидно, что должно занять. Именно поэтому в системах управления информацией на рубеже веков возникла потребность в простом, надежном и удобном средстве. Нужна была замена «винилу», и ею стал язык XML.
Гипертекст как средство для преодоления линейного мышления
Термин гипертекст (сверхтекст) датируется 1965 годом, но реально использоваться он стал двадцать лет спустя. Тот факт, что более сорока лет, имея техническую возможность работать с гипертекстом, информационное сообщество игнорировало ее, не может не показаться странным и поэтому нуждается в объяснении. Не исключено, что одна из причин запоздалого обращения к гипертексту коренится в глубинных традициях европейского образования и соответственно отношения к тексту, основанных на книжной культуре.
Книга как форма передачи знаний и информации стала одной из основных технологических новаций эпохи Возрождения. Задумаемся над тем, что по существу было сделано замечательным немецким механиком Иоганном Гутенбергом, когда в 1444 году он напечатал первую книгу? Обычно говорят об изобретении им технологии печати, но не секрет, что печатный пресс и наборный шрифт существовали задолго до него, это не его собственные изобретения. В Китае, например, они были известны несколько тысяч лет назад.
Неоценимый вклад Гутенберга заключается в том, что он изобрел технологию изготовления книг. То есть, переводя на наш профессиональный язык, вполне допустимо сказать, что он предложил книгу в качестве стандартного формата для упаковки, представления и хранения информации. Таким образом, изобретение Гутенберга стало фактическим стандартом на способ распространения информации, существующий несколько столетий. На практике книги могут сильно различаться по полиграфическому исполнению, но при этом все он имеют указание на автора, название, оглавление, обычно выполнены в более или менее близких размерах, следовательно, их можно упорядоченно размещать на полках.
Только с появлением полиграфии открылась возможность для создания библиотек в современном понимании этого слова, где есть каталоги: алфавитные, систематические и т.д. До этого, во времена средневековья, рукописи, хранившиеся в монастырских библиотеках, не были стандартизованы, не было никакой систематики, и роль монаха-библиотекаря в поддержании существования библиотеки была невероятно велика. Ни о каком серьезном доступе к информации, хранившейся в рукописях, говорить было невозможно. (Монастырская библиотека замечательно описана в романе Умберто Эко «Имя Роза».)
Как единственный способ хранения и передачи информации, книга существенным образом повлияла на формирование культуры вообще и способа мышления образованных людей. Наиболее полно воздействие печатной продукции на трансформацию общества описал Маршалл Маклюэн в книге «Галактика Гутенберга» («The Gutenberg Galaxy», 1962). Это серьезный философский и обществоведческий труд, но в данном контексте важна одна из мыслей, принадлежащих автору. Он говорит, что книгопечатание способствовало тому, что среди европейцев преобладающим стал линейный способ мышления, потому что с детства их учили и учат читать книги последовательно.
Под влиянием альтернативных источников информации (газет, журналов и более современных технологий) современное мышление меняется, но все же не перестает быть только линейным. Возможно, именно этим объясняется специфика «заторможенного» отношения к тексту. Линейный подход к записи информации был напрямую перенесен в компьютерную среду, где он благополучно просуществовал более пятидесяти лет и продолжает существовать поныне, что и стало причиной задержки появления гипертекста.
Невольно напрашивается аналогия с живописью. Практически вся европейская живопись построена на школе линейной перспективы, но она далеко не единственная, например, в русской иконописи и других школах используется так называемая обратная перспектива. Иногда картины, выполненные в обратной перспективе, кажутся неумело примитивными, но это вовсе не так: обратная перспектива, как голограмма позволяет увидеть скрытые детали.
Интерес к гипертексту иногда выходит за чисто технические рамки, в последние десятилетия им увлечены многие литераторы. Появляются гипертекстовые романы, например, недавно изданный на русском языке «Хазарский словарь» Павлича. Мне трудно представить себе, что гипертекст может занять такое же место, как собственно текст в художественной литературе, хотя кто знает, роман «Мастер и Маргарита» имеет отчасти гипертекстовый характер, но это тема для совсем другого разговора.
Еще одна особенность книги как носителя информации заключается в том, что все книги одного тиража идентичны. Отсюда следует, что почти одновременно с первой печатной книгой появился еще один элемент современной текстовой культуры: метод доступа по индексу, остающийся до сих пор основной возможностью для нелинейного обращения к данным вообще и внутри книги, в частности. В простейшем случае индекс - это просто оглавление; в большинстве случаев в книгах иных указателей просто нет, но чем профессиональнее подготовлено издание, тем полнее в нем набор индексов. При формировании академических изданий работают индексаторы — специальные люди, которые создают целую систему для доступа (к сожалению, она никогда не бывает полной). Например, совсем недавно мне пришлось искать рассказ «Кавказский пленник» (не путайте с творением М.Ю. Лермонтова) в академическом собрании Л.Н. Толстого. Его не было нигде, ни в одном указателе, и только методом направленного перебора удалось найти его в одной из «Книг для чтения».
И еще одно: почти одновременно с книгой в Венеции были изобретены основы современной бухгалтерии. Среди прочего бухгалтерия одарила человечество формами документов, теми самыми бланками- «пустографками» с оставленными для заполнения полями.
Итак, если вернуться в современность, то окажется, как ни удивительно, что, несмотря на совершенство технических средств, по сути, в работе с текстами до сих пор доминируют все те же древние составляющие: линейное мышление, доступ по индексу и заполнение форм.
Книжной традицией, по сути, ограничены практически все современные технологии работы с текстами, где оформление (форматирование) неразрывно связано с содержимым (контентом), чудесный пример what you see — what you get.
В конце XX века под влиянием новых информационных технологий возник кризис линейного мышления, одним из проявлений которого становится замена линейного текста гипертекстом. Интерес к XML - одно из частных проявлений более общей закономерности.
Рождение языка разметки
Не обижая инженеров, необходимо признать, что многие радикальные новации в области интерфейса человека с машиной были предложены не ими, а специалистами с гуманитарным складом ума: Норбертом Винером, Дагом Энгельбартом, Джозефом Ликлайдером. Продолжателем этого ряд великих имен стал изобретатель не только языка SGML, но и самого термина mark-up Чарльз Гольдфарб (Charles F. Goldfarb).
Гольдфарб начинал свою деятельность в 60-е годы как юрист, но самым примечательным и полезным не только для него, но и всего просвещенного человечества оказалось его хобби. Юный Чарльз увлекался автомобильным спортом, среди прочего он готовил легенды, то есть описания трасс для участников автомобильных ралли. Для этого он придумал собственную оригинальную методику, а когда этот необычный способ описания дистанции соревнований попал на глаза спортсменам, знакомым с программированием, то они обнаружили удивительное сходство языка для текстов легенд с языком программирования.
Далее, как всегда в истории изобретений, не обошлось без удачных совпадений. В 1967 году Гольдфарб перешел на работу в IBM, где ему пришлось разрабатывать, если можно так сказать, систему документооборота, используя для этого один из первых компьютеров IBM 1130 в следующей комплектации: 8 Кбайт оперативной памяти, диск 512 Кбайт плюс соответствующая периферия. Благодаря своему хобби ему удалось избежать стереотипного подхода и, не будучи специалистом в программировании, Гольдфарб смог предложить решение, которое стало предпосылкой к созданию языков разметки текстов.
В то время существовало два метода кодирования текстов. Более простой (specific coding) заключался в том, что в текст помимо букв, цифр и знаков препинания в последовательность символов включались специальные символы, предназначенные для форматирования. Параллельно с эти подходом в нескольких университетах велись работы по обобщенному кодированию (generic coding), в этом случае в текст включали описательные метки (descriptive tag). Таким образом получается, что метка (tag) появилась раньше, чем язык разметки.
На основе этих работ и собственных выкладок Гольдфарб вместе с коллегами Эдом Мошером (Ed Mosher) и Рэем Лурье (Ray Lorie) создали новый тип языка, который в последующем развился в «язык разметки текстов. Однако поначалу он назывался скромнее: «Язык описания текстов» (Text Description Language) и предназначался исключительно для юридических приложений. Тут возник еще один удачный момент — руководство IBM проявив прозорливость и просчитав перспективность новинки, решило развить инициативу исследователей. Со временем она трансформировалась в проект «Integrated Textual Information Management Experiment» (InTIME). Спустя несколько лет, в 1971 году обновленный язык получил название Generalized Markup Language (GML): эта аббревиатура состоит из первых букв фамилий авторов языка.
Уже тогда Гольдфарб писал: «Если отделить описание документа от прикладных функций, то появляется возможность выделить атрибуты, общие для документов одного типа. Наличие описания типов (type description) позволяет обогатить систему обработки текстов новыми функциями. Используемый для этого язык обобщенной разметки помогает сохранить всю необходимую информацию о документе вне зависимости от того, как этот документ представлен и используется». Сегодня многие авторы буквально дословно повторяют эту мысль, приписывая перечисленные качества исключительно XML.
В 1978 году Гольдфарб опубликовал «GML Markup Guide», где впервые фигурировал термин спецификация документа document type definition (DTD). Это руководство стало основополагающим в работе комитета по стандартизации ANSI SGML и нескольких групп в швейцарском институте СERN. С этого момента в работу над новым языком разметки включились сотни людей, что привело в последующем к появлению стандарта ISO 8879 и соответственно слова standard (SGML) - в названии языка.
После этого ситуация с языками разметки надолго стабилизировалась, вплоть до появления XML. С ее созданием для Гольдфарба настала пора второй молодости: он руководит изданием серии книг в издательстве Prentice-Hall, «Definitive XML Series from Charles F. Goldfarb» и недавно выпустил в соавторстве собственную книгу «The XML Handbook».
Дорога ложка...
Подобная ситуация периодически встречается в процессе эволюционного развития технологий, возникает новая потребность, которая должна быть чем-то удовлетворена, и тот вариант (не всегда наилучший), который оказывается в нужное время в нужном месте, становится победителем. Когда появился Java, то множество специалистов стали доказывать свой приоритет в изобретении подобных языков, но есть объективная реальность и удачная маркетинговая политика, они и вывели язык в лидеры
Несколько слов о мифах и легендах
Из истории известно, что иррациональные объяснения возникают тогда, когда люди не могут истолковать природные явления или какие-то иные проявления окружающей среды. Рождение доступного языка разметки тестов XML оказалось и неожиданным, и долгожданным одновременно. Для кого-то оно действительно могло показаться чудом, не имеющим рационального объяснения и источником для мифотворчества
XML глазами автора SGML
В интервью журналу «Web Techniques Magazine (ноябрь 1998, том 3, вып. 11) Чарльз Гольдфарб ответил на вопросы, связанные с XML. Этот человек, как никто другой, может развенчать мифы, окружающие XML. Мы приводим три небольших отрывка из этого интервью.
Почему XML оказался лучше приспособленным к Web, чем SGML?
SGML имеет множество возможностей на все случаи жизни. Чаще всего его используют для специализированных рыночных ниш, например аэрокосмической промышленности, телекоммуникаций, производства полупроводников. Исходя из практической и экономической целесообразности, стоит адаптировать язык, чтобы он соответствовал требованиям приложений. Любая «узкая» ниша может иметь большее разнообразие типов документов, чем Web.
XML committee пошел обычным путем, он оптимизировал SGML под нужды Web. Прежде всего, исключил несущественные для данного приложения синтаксические области, что позволило на 80-90% сократить размер синтаксического анализатора и упростить процесс внедрения. При этом язык потерял часть выразительных средств. Например, в полном SGML можно пропускать разметку, если при этом не возникает неоднозначности, а в XML это запрещено. В XML усилены требования, связанные с сохранением целостности документа, что очень важно для сетевой среды.
При сравнении XML с SGML говорят разное. Одни считают, что XML этот тот же SGML, из которого удалены некоторые экзотические возможности, другие называют XML весьма ограниченной формой SGML. Где истина, как определить области приложений?
Прежде всего, если документ соответствует спецификации XML, то он соответствует и спецификации SGML, в этом смысле XML ничто иное, как подмножество SGML. А дальше все зависит от приложений. Если вас устраивает то, что есть в XML (скажем, вы разработчик приложений для Web), то это язык для вас. Но если вы, работаете в корпорации Боинг, и вам приходится ежеквартально обрабатывать четыре миллиона страниц документов, то стоит использовать SGML.
Говорят, что XML заменит SGML.
Массовые изделия никогда не вытеснят эксклюзивные. Вы можете заказать концертный костюм у портного, а купить джинсы в магазине, что чаще всего и происходит. SGML — средство для кутюрье. Если у вас большая компания и объем работы с документами таков, что можно позволить себе иметь консультантов и тратить значительные суммы, то он для вас. XML — продукт для массового рынка, где ваш выбор ограничен готовыми изделиями, но этот рынок удовлетворяет потребности 99% населения.