Изменить стиль страницы

Стандарт, еще стандарт

Автор: Илья Щуров Voyager

Занимаясь тематикой свободного ПО уже несколько лет, я успел привыкнуть к некоторым простым и очевидным вещам. Например, к тому, что открытые стандарты для интерфейсов и форматов - это не только хорошо, но и очень важно. Причем важно для всех. Ну, скажем, любая блондинка из анекдота должна испытывать неописуемые нравственные страдания, пересылая своей знакомой файл в проприетарном формате DOC - а вдруг у той не окажется MS Windows или MS Office и она не сможет его прочитать или отредактировать? И уж конечно, я полагал, что за противостоянием "ODF vs. OOXML" следит все прогрессивное человечество.

Журнал

Тем неожиданнее было обнаружить, что идея темы, посвященной стандартизации офисных форматов, встретила определенное сопротивление. "А кого это вообще волнует - какие там форматы файлов разработчики используют?" - спрашивал Володя Гуриев. Ответ на этот вопрос был мне столь очевиден, что я не нашел слов, чтобы его выразить. Пришлось писать статью.

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

Чтобы попытаться если не ответить, то хотя бы поместить в правильный контекст все эти и многие другие вопросы, нам придется поговорить о стандартах вообще, слегка погрузиться в историю, вспомнить браузерные войны и проанализировать события, происходящие буквально на наших глазах.

Что такое открытый стандарт

Вообще говоря, единого определения "открытого стандарта" не существует - разные источники приводят немного разные формулировки, и зачастую обсуждаются разные степени или аспекты "открытости". Тем не менее можно выделить основные свойства, которым должен удовлетворять "открытый стандарт". Спецификации стандарта должны быть доступны для ознакомления и использования - бесплатно или за некоторую фиксированную цену. Любой разработчик без какой-либо дискриминации должен иметь возможность реализовать стандарт. Стандарт не должен требовать лицензионных или патентных отчислений для своей реализации (отсутствие роялти). Еще одно важное требование: принятие стандарта и его новых версий должно происходить путем обсуждения и поиска консенсуса, по понятным и прозрачным правилам, чтобы любая заинтересованная сторона имела возможность повлиять на его развитие.

То, каким образом стандарт разрабатывается и поддерживается, является критически важным. Даже если одна компания опубликует спецификации какой-то технологии и даже если эта технология достаточно популярна, чтобы на нее ориентировались другие разработчики, спецификация не станет стандартом до тех пор, пока к процессу ее разработки не обеспечен равный доступ всех заинтересованных лиц. Например, если с выпуском новой версии некоторого ПО меняется и завязанная на него спецификация, производители конкурирующих продуктов, которые хотят поддерживать совместимость с этим ПО, оказываются в положении догоняющих, а "владелец" спецификации имеет преимущество.

В связи с этим разработкой стандартов в большинстве случаев занимаются отраслевые консорциумы (такие как IETF, W3C, OASIS, Ecma и т. д.) по своим внутренним правилам, а окончательное утверждение многих международных стандартов происходит в ISO (International Organization for Standartization).

Стандарты "де-факто"

Журнал

Разные объекты как материального, так и информационного миров должны уметь взаимодействовать друг с другом, а для этого обладать "общим языком" в том или ином виде. Гайки должны накручиваться на болты, вагоны - не сходить с рельс, сотовые телефоны - уметь связываться с базовыми станциями. Это очевидно. Для всего этого должны быть разработаны и соблюдаться стандарты - договоренности между производителями о том, какими должны быть вагоны, гайки и сотовые телефоны и как они должны "общаться" с другими объектами.

Но новые технологии редко начинаются со стандарта. Чтобы что-то стандартизовать, это "что-то" нужно сначала сделать (хоть в каком-то виде). До тех пор, пока не изобретены болты и гайки, вряд ли кому-то придет в голову договариваться о том, какого они должны быть размера и с каким шагом должна идти резьба.

А когда новая технология появилась хотя бы в общих чертах, у многих производителей возникает вполне естественное желание "срубить бабла" - или, говоря по-научному, быстро захватить рынок. И это желание ничего знать не хочет ни о какой "пользе для индустрии". Если кому-то это удается и технология (в его реализации) получает массовое распространение - она и становится "стандартной" без всякой оглядки на других участников рынка. Получается то, что иногда называют "стандартом де-факто". Обычно подобные стандарты появляются вместе с монополиями, их обслуживающими.

Процесс подобного захвата рынка тесно связан с так называемыми сетевыми эффектами, когда ценность некоторого продукта или технологии возрастает вместе с количеством людей, которые ею пользуются. Часто упоминаемый "закон Меткалфа" гласит: ценность любой сети растет как квадрат числа узлов (пользователей) в ней. При этом каждый участник рыночной борьбы заинтересован в том, чтобы противодействовать совместимости с продуктами конкурентов (то есть объединению сетей)[Я писал об этих сетевых эффектах в "13 комнате" в прошлом номере.]. Это приводит к появлению сильных положительных обратных связей в сложной динамической системе под названием "рынок" - и делает ее неустойчивой в условиях существования нескольких несовместимых конкурирующих решений. Единственное устойчивое состояние подобной системы, к которому она неминуемо стремится, - весь рынок захвачен одним производителем-монополистом. Ценность сети, порожденной продуктом монополиста, достигает (локального!) максимума, а отсутствие совместимости блокирует появленияе конкурентов. Особенностью рынка программного обеспечения является возможность длительное время противодействовать совместимости благодаря закрытости исходных кодов программ и использованию закрытых (проприетарных) форматов и протоколов, которые легко менять (монополисту) и трудно анализировать (его конкурентам). Проблему еще больше усугубляет возможность использования патентов для борьбы с совместимостью.