«Связующее ПО» (наподобие баз данных, инструментов для программирования, или программ высокого уровня для конфигурации набора протоколов приложений) будут более смешанными. Имеют программы из этой категории тенденцию быть закрытыми или открытыми, вероятно, будет зависеть от стоимости отказов, при этом большая стоимость программы создает давление со стороны участников рынка, направленное на то, чтобы вынудить производителя к открытости.
Чтобы завершить описание, однако, мы должны заметить, что ни «приложения», ни «связующее ПО» не являются действительно устойчивыми категориями. В части «Знать, когда отпустить» выше мы говорили о том, что индивидуальные программные технологии, кажется, проходят естественный цикл жизни от сознательно закрытых, до сознательно открытых. Та же самая логика применяется и для больших категорий.
Приложения имеют тенденцию переходить в категорию «связующего» ПО в той степени, в какой стандартизированные методы развиваются и «сервисы» становятся «предметами потребления». (Базы данных, например, стали «связующим» ПО после появления SQL, отделившего интерфейсы от «движков»). Как только «связующие» службы становятся предметами потребления, они будут в свою очередь иметь тенденцию переходить в открытую инфраструктуру — переход, который мы наблюдаем в области операционных систем прямо сейчас.
В будущем, учитывая предстоящее соревнование открытых программ, мы можем ожидать, что возможной судьбой любой технологии программного обеспечения будет или умирание, или становление непосредственно частью открытой инфраструктуры. В то время как эти новости едва ли обрадуют предпринимателей, которые хотели бы постоянно собирать арендную плату за закрытое программное обеспечение, это также предполагает, что производство программ в целом останется предпринимательским, но с новыми нишами, постоянно открывающимися на верхнем (прикладном) конце и ограничением продолжительности жизни для монополии закрытой интеллектуальной собственности, по мере того, как ее изделия попадают в эту инфраструктуру.
И наконец, разумеется, это равновесие будет полезным для потребителей программного обеспечения, стимулирующих данный процесс. Все более высококачественные программы станут постоянно доступными для использования и создания новых на их основе вместо того, чтобы зачахнуть или быть похороненным в чьем-то архиве. И, наконец, волшебный котел Керидвен — слишком слабая метафора, потому что еда может быть съедена или испортиться, тогда как исходные тексты программ в потенциале существуют вечно. Свободный рынок, в его самом широком либертианском смысле, включая всю добровольную деятельность, торговлю или дарение, может дать каждому непрерывно увеличивающееся программное богатство.
16. Библиография и благодарности
1. Собор и базар: http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/, русский перевод: http://www.osp.ru/os/1999/09-10/071.htm.
2. Заселяя ноосферу: http://www.catb.org/~esr/writings/cathedral-bazaar/homesteading/, русский перевод: http://www.bugtraq.ru/law/articles/noo/index.html.
3. De Marco and Lister, Peopleware: Productive Projects and Teams (New York; Dorset House, 1987; ISBN 0-932633-05-6
4. Шон Харгривс (Shawn Hargreaves) написал хороший анализ применимости методов открытого программирования к теории игр; Playing the Open Source Game (http://www.talula.demon.co.uk/games.html).
Несколько обсуждений стимулирования с Дэвидом Д. Фридманом (David D. Friedman) помогли мне усовершеноствовать модель «общин наоборот» применительно к сотрудничеству в области открытых разработок. Я также весьма обязан Маршалу Ван Эльстину (Marshall van Alstyne), который указал на концептуальную важность конкурирующих информационных ресурсов. Рей Онтко (Ray Ontko) из Indiana Group снабжал меня полезной критикой. Очень много людей при встречах, с которыми я беседовал до июня 1999 года, также помогли мне; если Вы — один из них, Вы знаете, за что я Вам благодарен.
Еще одно свидетельство в пользу открытой модели — то, что эта работа была существенно улучшена благодаря обратной связи с помощью электронных писем, которые я получил в течение нескольких дней после ее публикации. Ллойд Вуд (Lloyd Wood) указал на важность открытого программного обеспечения, являющегося «защищенным от будущего» (future-proof), а Дуг Данте (Doug Dante) напомнил мне о деловой модели «открой потом». Вопрос от Адама Мурхауса (Adam Moorhouse) спровоцировал обсуждение исключений, при которых лучше оставить исходный текст закрытым. Лайонел Оливира Гресс t (Lionel Oliviera Gresse) дал мне лучшее название для одной из деловых моделей. Стивен Тернбалл (Stephen Turnbull) обозвал меня глупым из-за небрежной трактовки «эффектов халявщика».
17. Приложение: почему закрытие драйверов ведет к убыткам
Изготовители периферийных аппаратных средств ЭВМ (карты Ethernet, контроллеры дисков, видеокарт и т. п.) исторически отказались открывать исходные тексты. Сейчас это положение изменяется в случае с фирмами наподобие Adaptec и Cyclades, начинающими систематически раскрывать спецификации и исходный код драйверов своих плат. Однако, все еще существует сопротивление этому процессу. В этом приложении мы попытаемся опровергнуть несколько неправильных с точки зрения экономики представлений, которые подкрепляют эту тенденцию.
Если вы — производитель аппаратных средств ЭВМ, вы можете бояться, что открытие кода может сделать известной важную информацию о том, как работает ваше оборудование и конкуренты смогут ее скопировать, таким образом получая несправедливое преимущество. Раньше, в эпоху трех — и пятилетних циклов разработки, это было весомым аргументом. Сегодня инженеры ваших конкурентов истратили бы на копирование и понимание копии существенную часть цикла разработки изделия, при этом не используя это время для нововведений или создания особенных функций для собственного устройства. Плагиат — западня, в которую Вы должны желать заманить Ваших конкурентов.
В любом случае, эти детали долго не останутся скрытыми в наши дни. Драйверы устройств ЭВМ не похожи на операционные системы или приложения; они маленькие, легко поддаются декомпиляции, и их легко клонировать. Даже подростки, новички в программировании могут сделать это — и часто делают.
Есть буквально тысячи программистов, пишущих под Linux и FreeBSD, которые способны написать драйвер для новой платы, и заинтересованы в этом. Для многих классов устройств, которые имеют относительно простые интерфейсы и известные стандарты (типа контроллеров диска и сетевых карт), эти нетерпеливые хакеры зачастую разрабатывают драйвер почти так же быстро, как ваши собственные программисты, даже без документации и не декомпилируя существующий драйвер.
Даже для сложных устройств наподобие видеокарт, Вы мало что можете сделать, чтобы воспрепятствовать умному программисту, вооруженному дизассемблером. Затраты на такую разработку низки, а юридические барьеры — зыбкие; Linux — международная разработка и есть всегда юрисдикция, в которой дизассемблирование будет законным.
Для того, чтобы убедиться, в верности всех этих утверждений, почитайте список устройств поддерживаемых ядром Linux или в поддеревьях драйверов на сайтах наподобие Metalab, и проследите за закономерностью добавления новых устройств.
Что из этого следует? Сохранение вашего драйвера в тайне сразу же после его выпуска выглядит привлекательным, но, в конечном счете, является плохой стратегией (конечно, если Вы конкурируете с другими продавцами, которые уже открыли код). Но, если Вы должны закрыть код, пропишите его в ПЗУ платы. После этого опубликуйте программный интерфейс к нему. Будьте открытым в максимально возможной степени, для того, чтобы построить свой сектор рынка и продемонстрировать потенциальным клиентам, Вашу веру в способность придумывать новое, и вводить больше новшеств, чем конкуренты.