Авторы: Константин Курбатов, Владислав Бояров
Наверное, ни в одной отрасли нет такой свободы и, как ни парадоксально, такой несвободы, как в софтостроении. Ситуация и в самом деле сложилась необычная. К тому же совершенно ненормальная. В первую очередь хочется высказать свое несогласие с самой постановкой вопроса о свободном ПО. В посвященных этому материалах[Тема номера «Свобода как ресурс», интервью с А. Давыдовым («КТ» #592 от 31.05.05)] было сформулировано несколько тезисов, с которыми трудно согласиться…
Начнем с терминологии. Первый распространенный тезис среди энтузиастов свободного ПО таков.
Открытый код для многих означает бесплатность программы
Не любой открытый код получится использовать бесплатно. Готовый продукт — это исполняемые файлы (в нынешних условиях, скорее, дистрибутивы). Доступность для потребителя (а именно он платит деньги) исходных текстов программ ничего не меняет — количество пользователей, способных и желающих использовать исходный код, думаю, сравнимо с количеством пользователей, читающих лицензионное соглашение до конца. У специалистов, уверен, ситуация аналогична. Мне как конструктору очевидно, что если, скажем, комплект рабочей документации на новейший аэробус А-380 выложить в открытый доступ, наша авиационная промышленность все равно не сможет их выпускать. Аналогично в бизнесе, связанном с ПО, сопровождение порой является даже более сложным и дорогим процессом, нежели написание программ. Вряд ли имеет смысл делать свой вариант большой системы (совсем простые утилиты из рассмотрения исключим), так как пока вы будете разрабатывать ее с нуля, имея возможность осуществить только базовые возможности, конкурент уже успеет выпустить следующую версию своего ПО с еще более широкой функциональностью.
Термины «открытый код» и «свободное ПО» для нас — синонимы
Это смешение понятий нередко встречается в различных обсуждениях [Яркий пример — ]. На самом деле, техническая защита (недоступность исходников) и правовая могут иметь разные комбинации. Зачастую не так важен код, как идея, заложенная в продукте. Приведу такой пример: знаменитый Norton Commander. Нет смысла перечислять его последователей, но это что-то вроде аранжировок на тему одной мелодии со своими партитурами. Оказалось ли защищено творение Питера Нортона закрытым кодом?
Добавлю, что в технике никого не удивляет, когда для защиты своих прав автор публикует патент, в котором раскрывает исходные принципы разработки (в фармацевтике, например, корпорации точно указывают соотношения компонентов в патентуемых препаратах).
Главное преимущество свободного ПО — создание конкуренции ведущим продуктам
Обычно это утверждение дополняется уверенностью в том, что «монополизация в ИТ при частной модели лицензирования неизбежна: победитель в любом секторе ПО практически всегда становится монополистом»…
Вот она, суть проблемы. Нам предлагают выбор между монопольным и бесплатным продуктом.
Так что же мешает развитию софтостроения? Почему, несмотря на огромное количество не только открытых, но и бесплатных программ, в литературе и в прессе то и дело поднимается вопрос о монополии той или иной компании в этой весьма динамичной отрасли? Каким образом возникают неколебимые глыбы на рынке ПО, о которые разбиваются все попытки конкурентов сделать успешный альтернативный продукт?
Первый среди равных
Снова обратимся к технике. Почему многократный победитель кубка конструкторов скудерия Ferrari не стала «монополистом» в Формуле-1? Когда возникла угроза исчезновения признаков борьбы за первое место, были введены дополнительные требования к командам именно ради поддержания конкуренции. Руководители чемпионата зорко следят за тем, чтобы никакая команда не могла добиться такого положения, когда первое место на пьедестале было бы за ней «закреплено» — это снижает интерес зрителей и вредит имиджу гонки.
Но если взглянуть шире, то вообще нигде и никогда чисто техническая победа не создавала монополии. Скажем, победил производитель видеокарт или мониторов в каких-то тестах — ну и что изменилось? Конечно, сегодня ему шампанское, цветы, а завтра снова на старт.
А судьи кто?
В массовой автотехнике нет монополиста. И объясняется это просто: на то существуют антимонопольные службы, запрещающие слияние самых крупных игроков и разделяющие компании, если им технически невозможно составить конкуренцию (вспомним AT&T, аналогичная ситуация была и с японской корпорацией NTT). Именно антимонопольная политика в первой половине ХХ века вывела промышленно развитые страны из страшных кризисов на путь стабильного развития.
На мой взгляд, единственное отличие софтостроения от всего остального бизнеса заключается в отсутствии реального антимонопольного регулирования, адекватного особенностям отрасли. Является ли причиной тому здоровый консерватизм, непонимание темы или продажность законодателей, обсуждать не хочется. Интересно другое: имеет ли вообще решение проблема монополизма в софтостроении? Или мы и наши потомки обречены на «Единую ОС» и «Единый текстовый редактор»?
На конкурента не нужен нож
Рискну назвать две «болевые точки» (они же ноу-хау) монополистов ПО: это закрытые форматы данных и закрытые межпрограммные интерфейсы.
Начну с первого. Человек создает документы (тексты, деловую графику), формат которых недокументирован (в открытых источниках) и формально никому не известен. Строго говоря, файлы, созданные этим человеком, полностью ему не принадлежат: утрата лицензии на создавший их софт лишает пользователя и законного доступа к данным. Интересное следствие этой ситуации в том, что он не может передать документ[Не бумажную копию, а структуры, зависимости и все, что на самом деле создано автором] своим партнерам, не имеющим этого софта.
Закрытые межпрограммные интерфейсы фактически лишают разработчика возможности написать полноценную программу, поскольку никто не знает, как взаимодействовала с окружением та программа, взамен которой он написал свою. Достаточно вспомнить претензии к пакетам компании Microsoft, которая использовала в них недокументированные функции системы (созданной ею же), тем самым добиваясь большей производительности и, как следствие, несправедливого преимущества над конкурентами, которые вынуждены пользоваться более медленными программными интерфейсами, описанными в документации[Кристина Хаджинс-Бонафилд, «Как обуздать технологического гиганта» // «Сети и системы связи» №8, 1998, а также ]. То же самое касается и справочной системы Windows[PC Magazine, июль, 1995, стр. 317].
И после некоторой критической массы софта его производитель становится неуязвимым для конкурентов: фактически им надо написать весь объем плюс разрушить стереотипы пользователей.
Именно сочетание закрытых форматов и закрытых интерфейсов делает бессмысленными любые инвестиции новичков и навечно закрепляет монополию тех, кто однажды оказался удачливее других.
Точечная терапия
Эта абсурдная ситуация будет сохраняться до тех пор, пока мировые лидеры не начнут проводить реальную антимонопольную политику, адекватную особенностям этого вида бизнеса.
Технически это сделать нетрудно, причем никого не надо наказывать и штрафовать. Можно просто лишить правовой защиты закрытые форматы данных и программы, их создающие[Разумеется, при соблюдении всех процедур и с предупредительным выстрелом в воздух]. Созданный файл (комплект файлов) должен целиком принадлежать пользователю, который должен иметь возможность этот файл дарить, продавать, редактировать, не будучи связанным какими-то обязательствами с владельцами инструментов (разработчиками ПО), с помощью которых этот файл был сделан. Не приходится сомневаться, что любая компания предпочтет открыть свои форматы данных, чтобы не потерять . Так же можно поступить и с межпрограммными интерфейсами. Заверения в том, что их как бы и не существует, а весь этот монстр есть один большой монолит, следует выслушать с сочувствием и ответить, что, к сожалению, законами не предусмотрена защита неделимых монстров. После чего монстр будет немедленно препарирован его владельцами.
Можно ли гарантировать успех этой инициативы? Видимо, нет, но открытое обсуждение может сильно поднять ее шансы.
Предположим, такие решения приняты, а монополия по-прежнему сохраняется. Что делать? Думать дальше! Анализировать, какие дыры нашла монополия в новых законах и как ей удалось туда просочиться. Если она обошла закон с флангов из-за его узости, нужно расширять и модифицировать формулировки.
Не знаю, что должно для этого произойти, но любая ненормальная ситуация в конце концов нормализуется. В качестве первого шага следует просто признать проблему и думать, каким образом можно ее решить. А создание параллельных миров «платного ПО» и «бесплатного ПО» оставить фантастам.