Стандарт, еще стандарт
Автор: Илья Щуров Voyager
Занимаясь тематикой свободного ПО уже несколько лет, я успел привыкнуть к некоторым простым и очевидным вещам. Например, к тому, что открытые стандарты для интерфейсов и форматов - это не только хорошо, но и очень важно. Причем важно для всех. Ну, скажем, любая блондинка из анекдота должна испытывать неописуемые нравственные страдания, пересылая своей знакомой файл в проприетарном формате DOC - а вдруг у той не окажется MS Windows или MS Office и она не сможет его прочитать или отредактировать? И уж конечно, я полагал, что за противостоянием "ODF vs. OOXML" следит все прогрессивное человечество.
Тем неожиданнее было обнаружить, что идея темы, посвященной стандартизации офисных форматов, встретила определенное сопротивление. "А кого это вообще волнует - какие там форматы файлов разработчики используют?" - спрашивал Володя Гуриев. Ответ на этот вопрос был мне столь очевиден, что я не нашел слов, чтобы его выразить. Пришлось писать статью.
Впрочем, вопрос действительно не очень простой. С чего бы это вокруг в общем-то технической процедуры стандартизации разгорелись страсти, достойные по накалу даже не мексиканских мыльных опер, а остросюжетных сериалов? Имеют ли какое-то значение стандарты в жизни "простого пользователя", если он зачастую не знает об их существовании? Каковы общие принципы развития информационных технологий - и как мы можем на них повлиять, чтобы извлечь из них максимальную пользу? Какова роль государственного управления в этих процессах?
Чтобы попытаться если не ответить, то хотя бы поместить в правильный контекст все эти и многие другие вопросы, нам придется поговорить о стандартах вообще, слегка погрузиться в историю, вспомнить браузерные войны и проанализировать события, происходящие буквально на наших глазах.
Что такое открытый стандарт
Вообще говоря, единого определения "открытого стандарта" не существует - разные источники приводят немного разные формулировки, и зачастую обсуждаются разные степени или аспекты "открытости". Тем не менее можно выделить основные свойства, которым должен удовлетворять "открытый стандарт". Спецификации стандарта должны быть доступны для ознакомления и использования - бесплатно или за некоторую фиксированную цену. Любой разработчик без какой-либо дискриминации должен иметь возможность реализовать стандарт. Стандарт не должен требовать лицензионных или патентных отчислений для своей реализации (отсутствие роялти). Еще одно важное требование: принятие стандарта и его новых версий должно происходить путем обсуждения и поиска консенсуса, по понятным и прозрачным правилам, чтобы любая заинтересованная сторона имела возможность повлиять на его развитие.
То, каким образом стандарт разрабатывается и поддерживается, является критически важным. Даже если одна компания опубликует спецификации какой-то технологии и даже если эта технология достаточно популярна, чтобы на нее ориентировались другие разработчики, спецификация не станет стандартом до тех пор, пока к процессу ее разработки не обеспечен равный доступ всех заинтересованных лиц. Например, если с выпуском новой версии некоторого ПО меняется и завязанная на него спецификация, производители конкурирующих продуктов, которые хотят поддерживать совместимость с этим ПО, оказываются в положении догоняющих, а "владелец" спецификации имеет преимущество.
В связи с этим разработкой стандартов в большинстве случаев занимаются отраслевые консорциумы (такие как IETF, W3C, OASIS, Ecma и т. д.) по своим внутренним правилам, а окончательное утверждение многих международных стандартов происходит в ISO (International Organization for Standartization).
Стандарты "де-факто"
Разные объекты как материального, так и информационного миров должны уметь взаимодействовать друг с другом, а для этого обладать "общим языком" в том или ином виде. Гайки должны накручиваться на болты, вагоны - не сходить с рельс, сотовые телефоны - уметь связываться с базовыми станциями. Это очевидно. Для всего этого должны быть разработаны и соблюдаться стандарты - договоренности между производителями о том, какими должны быть вагоны, гайки и сотовые телефоны и как они должны "общаться" с другими объектами.
Но новые технологии редко начинаются со стандарта. Чтобы что-то стандартизовать, это "что-то" нужно сначала сделать (хоть в каком-то виде). До тех пор, пока не изобретены болты и гайки, вряд ли кому-то придет в голову договариваться о том, какого они должны быть размера и с каким шагом должна идти резьба.
А когда новая технология появилась хотя бы в общих чертах, у многих производителей возникает вполне естественное желание "срубить бабла" - или, говоря по-научному, быстро захватить рынок. И это желание ничего знать не хочет ни о какой "пользе для индустрии". Если кому-то это удается и технология (в его реализации) получает массовое распространение - она и становится "стандартной" без всякой оглядки на других участников рынка. Получается то, что иногда называют "стандартом де-факто". Обычно подобные стандарты появляются вместе с монополиями, их обслуживающими.
Процесс подобного захвата рынка тесно связан с так называемыми сетевыми эффектами, когда ценность некоторого продукта или технологии возрастает вместе с количеством людей, которые ею пользуются. Часто упоминаемый "закон Меткалфа" гласит: ценность любой сети растет как квадрат числа узлов (пользователей) в ней. При этом каждый участник рыночной борьбы заинтересован в том, чтобы противодействовать совместимости с продуктами конкурентов (то есть объединению сетей)[Я писал об этих сетевых эффектах в "13 комнате" в прошлом номере.]. Это приводит к появлению сильных положительных обратных связей в сложной динамической системе под названием "рынок" - и делает ее неустойчивой в условиях существования нескольких несовместимых конкурирующих решений. Единственное устойчивое состояние подобной системы, к которому она неминуемо стремится, - весь рынок захвачен одним производителем-монополистом. Ценность сети, порожденной продуктом монополиста, достигает (локального!) максимума, а отсутствие совместимости блокирует появленияе конкурентов. Особенностью рынка программного обеспечения является возможность длительное время противодействовать совместимости благодаря закрытости исходных кодов программ и использованию закрытых (проприетарных) форматов и протоколов, которые легко менять (монополисту) и трудно анализировать (его конкурентам). Проблему еще больше усугубляет возможность использования патентов для борьбы с совместимостью.
Для индустрии такая ситуация является крайне нежелательной (как и любая другая монополизация), но рынок зачастую не может самостоятельно из нее выйти. Чтобы это произошло, требуются существенные изменения "правил игры".
Еще не отгремели пушки
Одну "войну стандартов", имевшую если не разрушительные, то по крайней мере весьма неприятные последствия для каждого из нас, многие наши читатели со стажем должны помнить. Речь идет о противостоянии Microsoft и Netscape в середине 90-х годов на зарождавшемся в тот момент рынке браузеров. Причем ситуация тех лет во многом схожа с нынешней, хотя, конечно, есть и существенные отличия.
Браузерная война тоже велась вокруг формата документов - им был HTML (вместе со связанными технологиями, такими как JavaScript и CSS). Но, в отличие от уже устоявшихся офисных приложений сегодня, веб в то время был очень молодой технологией, и каждый разработчик считал своим долгом добавить в нее какую-нибудь "инновацию", которая помогла бы захватить рынок. Попытки стандартизации, по сути, проваливались: даже когда явные спецификации HTML были утверждены консорциумом W3C, разработчики с обеих сторон с удовольствием добавляли к ним нестандартные расширения, поддерживаемые только одним браузером, да и соблюдать написанное явно не торопились. Стандарты отставали от реальности, на разговоры и оглядку на спецификации времени не было. Целью этой гонки были не столько конечные пользователи, сколько веб-разработчики, плодящие многочисленные сайты с кнопками "Best viewed with…".
Microsoft выиграла ту битву (не без помощи "тяжелой артиллерии" в виде подконтрольной операционной системы), и на некоторое время Microsoft Internet Explorer захватил рынок полностью. Даже в Mac OS он был стандартным браузером с 1997 по 2003 год в соответствии с соглашением между Microsoft и Apple. HTML "от Microsoft" стал тем самым пресловутым стандартом де-факто, на который одно время ориентировалось большинство веб-разработчиков. Более того: было написано огромное количество корпоративных клиент-серверных систем, использовавших различные особенности MSIE для реализации клиентской части и тем самым привязывавших пользователей к платформе Microsoft.