Начну с нескольких небольших эпизодов в духе фильма X Files, но с некоторыми озадачивающими цифрами.
Студент университета в Финляндии пишет ядро операционной системы и раздает всем желающим. В течение шести лет Linux приобретает более семи миллионов пользователей и становится самой быстрораспростроняющейся серверной операционной системой.
В компании, разрабатывающей Web-сервера, администратор создает список для электронной рассылки "заплаток" к бесплатному серверу, более не поддерживаемому своими создателями. Через пару лет "заплаточный" сервер работает более чем на половине всех наблюдаемых Web-узлов, заняв таким образом доминирующую долю рынка вопреки желаниям коммерческих организаций, затративших сотни миллионов долларов специально на осуществление этих же желаний.
Наиболее важный в мире комитет по компьютерным стандартам состоит из любых желающих присоединиться к спискам рассылки, и физически являет себя трижды в год на специально устраиваемых встречах.
Воистину, нечто странное происходит прямо у нас под носом. О том, что именно, и почему об этом нужно знать, пойдет речь в настоящей статье.
Всего год назад, если бы вы спросили у руководящего специалиста информационной службы большой компании мнение о свободно-распространяемом программном обеспечении, он бы ответил, что не использует его. Причина? Оно не поддерживается никакой фирмой, оно недостаточно отлажено. Оно не имеет коммерческой ценности.
Но вот внезапно события в самом эпицентре компьютерной активности вдруг заставили пересмотреть такую точку зрения.
В январе 1998 года промышленность была потрясена решением Netscape Communications задаром опубликовать исходные тексты своего основного продукта, Communicator. Отныне, параллельно с продолжающей существовать "фирменной" коммерческой версией продукта Netscape любому желающему давалась свобода бесплатно брать опубликованные коды, переделывать их по своему усмотрению и распространять полученные таким образом продукты дальше - хотя бы и продавать. Неожиданное решение Netscape было инспирировано громоподобной статьей Эрика Рэймонда под названием "Собор и базар" (Eric Raymond, www.tuxedo.org/~esr/writings/cathedral-bazaar), в которой автор доказывал, что ключом к техническому и рыночному успеху Linux послужила методология распределенной разработки, базирующаяся на свободном распространении исходных текстов программ. По утверждению Рэймонда, программное обеспечение открытых текстов не только отлажено лучше своих функциональных аналогов - разработок коммерческих фирм, но к тому же и лучше поддерживается и является более современным.
В апреле 1998 года O'Reilly & Associates организовала встречу ведущих разработчиков программного обеспечения открытых текстов с целью обсудить последствия, вызванные статьей Рэймонда, и подтолкнуть развитие подобного ПО. Ключевым результатом встречи стало соглашение об использовании термина "ПО открытых текстов" (open-source software) во избежание путаницы из-за устоявшихся ассоциаций, связанных с термином "свободное ПО" (free software)2. Довольно скоро после этого фирмы Corel, Informix и Oracle объявили о планируемом или уже состоявшемся переносе своих продуктов под Linux. В июле 1998 года о своем присоединении к Группе Apache объявила IBM, включившая Web-сервер Apache в состав своего продукта WebShpere. Фирма выделила команду программистов для помощи в перенесении Apache на платформу NT.
В сентябре 1998 года Intel, Netscape и две ведущие фирмы венчурного капитала - Greylock и Benchmark Partners - вложили свои инвестиции в фирму Red Hat Software, распространяющую Linux.
На фоне этих событий мало-помалу стало заметно, как много ПО открытых текстов используется в самой сердцевине инфраструктуры Internet. Служба DNS использует BIND, "Берклеевский демон имен в Internet"; практически вся электронная почта в Сети проходит через sendmail; языки Perl, Tcl и Python интенсивно используются в таких узлах, как Yahoo!, C|NET и Amazon.com.
Внезапно открытые тексты стали новой "большой вещью".
Но все же что они есть такое, и что от них толку работающим в отрасли компаниям?
На ранних стадиях развития Unix и Internet программисты делились своими исходными текстами по заведенному порядку. Фирме AT&T было запрещено вести коммерческую деятельность в компьютерной области, и поэтому Кен Томпсон (Ken Thompson) и Деннис Ричи (Dennis Ritchie) высылали желающим магнитные ленты с "исходниками" Unix со своего места работы - Bell Labs - только за стоимость расходных материалов. Благодаря этому сначала сотни, а затем тысячи программистов получали возможность добавлять к этой ОС свои программы, переносить ее на все новые платформы, и, вообще, всячески приспосабливать к собственным конкретным нуждам.
Одной из наиболее насущных таких нужд была необходимость более простого и быстрого способа обмениваться результатами работы. Так из потребности обеспечить связь и обмен кодами программ появилась компьютерная сеть, базировавшаяся поначалу на протоколе UUCP работы с коммутируемыми телефонными линиями. Подключиться к сети мог кто угодно: требовалось только найти другую установку, желающую соединиться с вами.
Тем временем в университетах и исследовательских институтах компьютеры соединялись друг с другом по выделенным высокоскоростным линиям, оплату которых взяло на себя правительство США, и использовали другой протокол, TCP/IP. Так UUCPnet и ориентированная на TCP/IP Arpanet сформировали сильно избыточную сеть передачи сообщений под названием Usenet. Первоначальным назначением Usenet было обеспечивать распространение исходных текстов программ и связанной с этим информации, в том числе дискуссий. Но Usenet быстро приобрела и социальное звучание.
В 1991 году произошли два события, преобразившие компьютерную индустрию. Во-первых, Рик Эдемс (Rick Adams), системный администратор в Геологической экспедиции США, располагавшей самым крупным узлом для службы новостей в Usenet, решил, что самое время начать коммерческое использование инфраструктуры Usenet. Он основал UUNet, которая должна была предоставлять коммерческие сетевые услуги на базе UUCP и TCP/IP.
Во-вторых, программист из института ЦЕРН физики высоких энергий, что в Женеве, Тим Бернерс-Ли (Tim Berners-Lee) создал клиент-серверную гипертекстовую систему для распространения информации, которую окрестил Всемирная Паутина (World Wide Web).
История коммерческой Сети с этого момента известна, пожалуй, всем. Группа разработчиков в университете штата Иллинойс построила на основе работы Бернерса-Ли "браузер" Mosaic; потом эта группа образовала фирму Netscape. В "религию" Internet "обратилась" Microsoft, появились коммерческие Web-узлы, и к 1997 году развернулась борьба между Netscape и Microsoft за контроль над Сетью, так что многие стали думать, что Internet - это продукт одной из этих двух компаний.
На самом же деле Internet был создан сообществом независимых разработчиков, которые построили себе более эффективное средство обеспечения совместной работы.
Вот несколько выдержек из статьи Рэймонда "Собор и базар", хорошо описывающих ситуацию:
"Большинство программных находок начинались как решения, найденные авторами для своих обыденных проблем. Но они получали распространение, потому что оказывалось, что те же проблемы есть и у многих других пользователей."
"Сообщество [открытых текстов] во многих отношениях ведет себя как общество свободного рынка. Оно состоит из эгоистичных агентов, пытающихся максимизировать для себя полезность, и в развитии это создает самопроизвольный саморегулируемый порядок, более разработанный и эффективный, нежели чем возможный для достижения любой системой централизованного планирования".
"Хороший программист знает, что нужно писать. Великий программист знает, что нужно переписать заново и использовать дальше. ... Программист знает, что он получает не за свои старания, а за результат, и что почти всегда проще начать с хорошего частичного решения, чем с нуля."
"Выпускайте ранние версии. Выпускайте часто. И выслушивайте мнения клиентов ... Воспринимайте своих пользователей как соразработчиков; это наиболее надежной путь к быстрому улучшению кода и эффективной отладке. ... Если база бета-тестировщиков и соразработчиков достаточно велика, почти любую проблему можно будет обнаружить быстро, и всегда найдется кто-то, кому ее решение покажется очевидным. ... Говоря по-простому, `От многих глаз ошибке не спрятаться.'"
Сегодня существуют тысячи проектов, выполняемых по принципу открытых текстов, каждый объединяющий многих разработчиков. Вот некоторые наиболее важные:
Однако перечисление наиболее известных систем может ввести в заблуждение. Поскребите поверхность - и вы обнаружите ПО открытых текстов везде. Стек TCP/IP практически любого производителя (не исключение и Microsoft) основан на стеке, бывшем первоначально частью сетевого пакета в Берклеевском Unix. Инфраструктура Internet и процесс ее стандартизации являют собой типичнейшие образчики проявления движения открытых текстов. А что касается самых последних веяний, то большинство коммерческих пакетов по XML базируются на трансляторе xml, построенном независимым программистом Джеймсом Кларком (James Clark), живущем в Тайланде, и написавшем к тому же много программ обработки текстов в рамках проекта GNU.
Следующее поколение информационного обеспечения
Всякий спрашивает, есть ли у Linux реальные шансы сбросить Windows с трона. Но это не тот вопрос, который следует задавать. Открытые тексты уже радикально изменили правила компьютерной игры, сместив целой серией "ударов" центр тяжести в сторону от Microsoft.
Вот что любопытно: новые приложения, ради которых человек готов оторваться от стула и пойти покупать компьютер, не являются сегодня ни какими-то эффективными программами для персональных компьютеров, ни даже эффективными корпоративными информационными системами. Речь идет о совершенно новой разновидности, которую можно было бы окрестить "информационным приложением", или даже "infoware".
Информационные приложения используются для компьютеризации тех задач, с которыми не могла справиться прежняя модель вычислений. Всего несколько лет назад, когда вам хотелось найти книгу в базе данных из миллиона наименований, нужно было обратиться к библиотекарю. Используя потаенный синтаксис языка запросов, тот обращался к компьютерной системе, и система, быть может, находила требуемое.
Если вы хотели книгу купить, то нужно было отправляться в книжный магазин с его значительно более скромным выбором наименований. Но вот сегодня десятки тысяч людей ежедневно ищут необходимые книги и покупают их, не отрываясь от компьютера, обращаясь при этом к базе данных из многих миллионов наименований.
Секрет в том, что способ общения с компьютером стал на шаг, да ближе к человеческому. Приложения, разработанные для Сети, используют в своем взаимодействии с человеком естественный язык и рисунки, а не специальные символы, открывающие свой смысл только после изучения программного обеспечения.
В традиционном ПО небольшие количества информации растворены в больших объемах кода; в информационных приложениях небольшие кусочки кода растворены в больших объемах информации. Собственно "действия" в продуктах infoware в общем достаточно просты: выбрать, купить/продать, ввести некоторые данные и получить им соответствующий результат. Такие действия часто выполняются по сценариям, прикрепленным к гипертекстовым ссылкам.
Сценарии в свою очередь могут обращаться к полномасштабному серверному приложению, но все же основное взаимодействие с пользователем осуществляется преимущественно в пределах Web-страницы (сама страница может быть прекрасно создана писателем, редактором или дизайнером, а не программистом и программирования в ней может быть сравнительно немного).
Обычно информационные интерфейсы легко изменяемы. К примеру, расположение информации о книгах на страницах Amazon управляется текущим рейтингом продаж, а он перевычисляется каждый час. Клиенты могут с компьютера добавлять свои комментарии и выставлять свои оценки, и последние тут же становятся ключевой частью информационно-насыщенного интерфейса, помогающего покупателю принять решение. За кулисами скрыта целая армия администраторов и программистов, постоянно перестраивающая продукт. Динамическое содержание не полностью генерируется автоматически: оно часто еще и "подгоняется" вручную, а для этого в типичном случае используется арсенал средств быстрой, "на скорую руку", подготовки сценариев. Большинство средств из этого арсенала - ПО открытых текстов.
Информационные интерфейсы не очень эффективны для задач, выполняемых регулярно - для этого хороши обычные программные интерфейсы. Однако они намного превосходят последние в случаях, когда задачи выполняются изредка или всякий раз по-новому. В частности, они хороши для тех случаев, когда пользователь делает выбор на основе высвеченной на экране информации. Независимо от того, покупаете ли вы книгу или компакт-диск в Amazon, или же акцию в E*Trade, сам акт приобретения - достаточно тривиальная часть процесса взаимодействия. "Сердцевиной" приложения, с которым вы взаимодействуете, является качество информации, предъявляемой для принятия вами решения.
Сеть преобразует всю схему вычислений. Информация внезапно становится не конечным пунктом активности, а интерфейсом, позволяющим пользователю управлять прикладной областью намного более сложной, нежели те, с которыми в состоянии справляться традиционные прикладные системы.
Информационные интерфейсы особенно хороши в приложениях для поддержки принятия решений, но не только. Их также имеет смысл использовать для разовых задач. Примером таких задач может служить использование пресловутых "волшебников" ("wizards") при установке ПО.
Кроме того, имеется класс информационных приложений, которые используют более простые интерфейсы, близкие к традиционным программным, но обеспечивают динамическую выдачу информации.
Мой любимый пример такого приложения относится к тому, что было практически немыслимо еще несколько лет назад: к работающей системе выбора карт и направлений движения. Например, на странице maps.yahoo.com вам предлагается ввести пару адресов, и в ответ вы получите карту и последовательность движения (где куда повернуть), чтобы доехать на автомобиле от одного адреса к другому.
Ответ коренится в способе, которым сменяются парадигмы компьютерной индустрии. Когда какой-нибудь сегмент рынка набирает силу, присутствующие на нем игроки приобретают колоссальную заинтересованность в сохранении сложившегося порядка вещей. Из-за этого им трудно воспринимать что-либо действительно новое, и для создания новых рынков почти что необходимо пришествие новых игроков - "варваров", по выражению Филиппа Кана (Philippe Kahn).
На самом деле уход старых игроков нередко "запрограммирован" ими же самими, когда они и пытаются выйти на новый рынок, да не в состоянии полностью принять новые правила игры. Классическим примером того, как это происходит, является выдвижение Microsoft вперед IBM в качестве законодателя компьютерной индустрии. IBM уступила первенство на рынке Microsoft, потому что вовремя не увидела, что центр тяжести не только переместился от "гермозон" к настольным компьютерам, но еще и от "фирменного" аппаратного обеспечения к "аппаратуре" повседневного спроса, и от аппаратного обеспечения к ПО вообще.
Точно так же, несмотря на все свои попытки "раскрутиться" в разных областях информационного бизнеса, Microsoft, кажется, еще не осознала, что ПО, как эта фирма его понимает, больше не является основным ценностнобразующим фактором в компьютерном бизнесе.
Во времена доминирования IBM бал правило аппаратное обеспечение, и барьеры для вхождения в компьютерный бизнес были велики. ПО в основном создавалось производителями аппаратного обеспечения, или же их программными фирмами-спутниками.
С появлением персонального компьютера как повседневной платформы (и с разработкой открытых систем типа Unix) правила радикально изменились. Барьеры для вхождения в бизнес вдруг снизились, и там оказались новички-пришельцы типа Митчела Капора (Mitchell Kapor) из Lotus и Билла Гейтса (Bill Gates).
Если посмотреть на начальный период истории Сети, мы увидим схожую картину. Microsoft, со своей монополией на настольное ПО, выставила наказуемо высокий барьер на вхождение в бизнес создания ПО. Сверх того, прикладные системы существенно усложнились не без намеренных стараний Microsoft установить барьеры на вхождение потенциальных конкурентов. Теперь программисту-одиночке стало невозможно произвести что-нибудь потрясающее "на коленке в гараже".
Напротив, подход открытых текстов позволяет опустить барьеры на вхождение. Вы получаете возможность поработать с новым продуктом бесплатно; более того, вы можете модифицировать его применительно к своим условиям, и за это вам опять никому не нужно ничего платить. Исходный текст открыт для обозрения широким независимым массам. Если кому-то не понравится какая-то особенность продукта, он может добавить что-то свое, убрать существующее, или переписать что-то заново. И тогда если исправленный вариант вернуть обратно широкой общественности, он имеет хороший шанс очень быстро получить ее признание.
Но возможно более важен тот факт, что благодаря невовлеченности разработчиков открытого ПО в конкурентную бизнес-деятельность (по крайней мере на начальном этапе), они получают возможность фокусироваться просто на решении реальных проблем и экспериментировать в более спокойной обстановке. В открытом исходном тексте каждый получает шанс оставить свой след. Новые свойства добавляются пользователями в распределенной среде, так что получается, что ПО открытых текстов и развивается, и проектируется одновременно.
Силу многих программ открытых текстов составляет именно их идиосинкратическая природа. Возможно, что самый ясный тому пример - язык Perl, который иногда называют "клейкой лентой Internet".
Первоначально Лэри Уолл создал Perl с целью автоматизировать выполнение повторяющихся процедур системного администрирования, с которыми он сталкивался в работе. Когда эта система была обнародована в Сети, она стала приобретать все новые и новые применения, и, таким образом, язык рос, причем часто в непредсказуемых направлениях.
Perl называли "языком для кухни", потому что его качества казались едва ли не произвольными разработчикам "ортодоксальных" языков программирования. Уолл специально остановился на этом моменте в своем выступлении на последней, второй конференции по Perl, проведенной O'Reilly & Associates. Уолл показал изображение, напоминающее каракули, и пояснил:
"Это изображение сразу многих вещей. Это изображение молекул воздуха, проносящихся вокруг. Это изображение экономики. Это изображение всех взаимосвязей присутствующих здесь в комнате. Это изображение того, как выглядит типичный язык человеческого общения. Это изображение информационной системы, работающей в вашей компании. Это изображение Всемирной Паутины. Это изображение хаоса и сложности..."
"Это несомненно есть изображение того, как организован Perl, потому что Perl смоделирован на языках людей. А человеческие языки сложны по той причине, что они вынуждены иметь дело с реальностью..."
"Это важно, хотя и немного трудно понять. Английский язык полезен потому, что он беспорядочен. Из-за того, что он беспорядочен, он хорошо "ложится" на проблемную область, которая также являет собой беспорядок. ... Точно так же Perl был задуман как беспорядочный язык (хотя его беспорядок - и самый замечательный из всех возможных)."
Метод разработки открытыми текстами - неправдоподобно эффективный способ сорганизовать деятельность разработчиков вокруг действительно значимых вещей. Новое ПО разрабатывается в тесной обратной связи с требованиями потребителей, не нарушаемой маркетинговыми встрясками или решениями о закупках, идущими сверху. Разработка ПО снизу вверх идеальна для решения идущих снизу вверх задач.
То, что сделали новички в своей области Джерри Янь (Jerry Yang) и Дэвид Файлоу (David Filo), стало возможным благодаря применению ПО открытых текстов в самой сердцевине Сети, благодаря более простой схеме ведения разработок, присущей этому ПО. Совсем не случайно Yahoo!, самый крупный и самый удачный Web-узел на свете, построен на основе свободно распространяемого ПО открытых текстов: ОС FreeBSD, Apache и Perl.
Точно как и прошлый раз, ключевым для формирования нового уровня компьютерной индустрии стал переход в разряд повседневного использования достигнутого на предшествующем уровне. Как отметил Боб Янг (Bob Young) из фирмы Red Hat, являющейся лидирующим распространителем Linux, его цель как руководителя этой фирмы не в том, чтобы сбросить Microsoft с трона на вершине вороха операционных систем, а в том, чтобы сократить размер рынка ОС в долларовом выражении.
ПО открытых текстов не пытается победить Microsoft в ее собственной игре. Вместо этого оно изменяет суть игры.
Не надо иллюзий: такие поставщики информационного обеспечения, как Amazon или Yahoo!, несмотря на свои астрономические масштабы присутствия на рынке все же являются крошечными в сравнении с Microsoft.
Но предначертание ясно. Передний край организации взаимодействия человека с машиной, возможность решать на компьютере не решавшиеся ранее задачи, связаны с infoware, а не с software.
С появлением новых приложений роль ПО будет все больше смещаться в сторону средства обеспечения infoware. Заметьте, что с перемещением в компьютерной индустрии центра тяжести с оборудования на ПО, первое не исчезло.
Как компания, IBM продолжает процветать (хотя большинство из ее клиентов перешли на технику меньших размеров). Однако на рынке аппаратного обеспечения возникли другие игроки, приспособленные к игре уже по новым правилам: Dell, Compaq и, в особенности, Intel.
В Intel поняли, что реальный их шанс не в том, чтобы участвовать в войнах компьютерных систем, а в том, чтобы поставлять оружие воюющим сторонам.
Реальная миссия ПО открытых текстов не в том, чтобы заменить на настольных системах доминирующую там Microsoft, а скорее в том, чтобы построить такую модель бизнеса, которая бы напоминала лозунг "Intel Inside", но для следующего поколения компьютерных приложений.
В противном случае пионеры открытых текстов будут отброшены в сторону кем-нибудь, кто лучше их понимает, где сегодня находятся настоящие возможности, - подобно тому, как в прошлом была отброшена производитель ОС CP/M для персональных ЭВМ компания Digital Research.
Тем не менее, похоже, что ПО открытых текстов уже удалось организовать развилку на дороге. Точно так же, как пионеры микрокомпьютеров (и по части аппаратного обеспечения, и по части ПО) подготовили сцену для существующей сегодня промышленности, ПО открытых текстов возвело подмостки для драмы, только разворачивающейся, и которая через пять-десять лет радикально преобразит ландшафт компьютерной индустрии.
Примечания:
Дайсон - известная журналистка и общественная деятельница в компьютерной области. К ее мнению прислушиваются видные фигуры компьютерной промышленности США, и, что не всегда широко известно, Российского нового бизнеса, с которым она имеет уже давние и прочные связи. Темы, обсуждаемые ею на страницах своего издания и на ежегодных конференциях, всегда концептуальны и касаются того, какими путями развивается, может или должен (по некоторым вопросам у Эстер Дайсон имеется очень четко выраженное мнение) развиваться компьютерный рынок во всем его многообразии. Она много пишет про Internet, и ее последняя книга Release 2.0 в прошлом году была переведена на русский язык (кстати, январский номер Release 1.0 за этот год посвящен обсуждению очень важной, насущной и большой проблеме поиска в Internet).
Для обсуждения темы "открытых текстов" на страницах своего журнала Эстер Дайсон выбрала специалистов из фирмы O'Reilly & Associates во главе с ее лидером Тимом О'Рейли, что не случайно. Как отмечает Дайсон в предисловии к статье, Тим О'Рейли - "партизан, но идеи, а не продукта"; можно добавить: "знаменитый партизан", а идея - как раз набирающий обороты метод "открытых текстов" разработки ПО. Тим О'Рейли много сделал для популяризации и укрепления этой идеи. Она замечательно изложена в предлагаемом материале; в предисловии же хотелось бы отметить следующее.
Движение открытых текстов формировалось под влиянием многих событий, из которых трое важных последнего времени лежат на поверхности. Это опубликование известного анти-Microsoft'ского Хэлоуин-документа на странице www.opensource/halloween1.html, опубликование статьи Эрика Рэймонда (о ней говорится в публикуемом здесь материале) и шумный успех Linux. Смысл движения часто формулируется "от противного" - это способ разработки ПО, альтернативный принятому в крупных компаниях, и получивший на современном этапе наиболее выраженное воплощение в разработках Microsoft. Как отмечает в предисловии Эстер Дайсон, Microsoft блестяще проявила себя в построении преуспевающей компании, из чего вовсе не следует наличие столь же блестящих ее успехов в построении ПО для массового пользователя.
В противоположность частнособственнической разработке "сверху вниз", традиционной для крупных компаний, разработки методом открытых текстов делаются абсолютно общедоступно и "снизу вверх". Как отмечает Эстер Дайсон вслед за Эриком Рэймондом, Microsoft [пока] не понимает, что преимущества разработки с использованием открытых текстов не сводятся только к наличию тестирования широкими массами (то есть к лучшей надежности), но им присуща еще инновационная соревновательность, при которой выживают только решения, принимаемые пользователями как наилучшие. Инновационный потенциал движения, как это раскрывается в статье, действительно велик: им "придуман" Internet, а Microsoft научился делать на Internet деньги.
Субъективно, публикуемый материал не обязательно выглядит безупречным. Не все места могут быть до конца понятны, а с какими-то утверждениями хочется поспорить. Неочевидна, например, универсальность подхода к разработке ПО: может показаться его преимущественная ориентация на профессионалов, а не конечных пользователей (энтузиасты, возможно, нашли бы доводы развеять и эти сомнения). Но на что хотелось бы обратить внимание читателей, так это на дух движения открытых текстов, отразившийся и в предлагаемом материале. Мне он напоминает дух революционного молодежного движения на исходе 60-х годов. Он столь же характерен своей бескомпромиссной борьбой за свободу и индивидуальные права - на этот раз в компьютерном сообществе. Есть что-то в нем и от духа времен формирования США, явно ощущаемого иногда и в сегодняшнем северо-американском обществе (ср., например, с характерным вопросом в журнале Delphi Developer за N 11/97, заданным его редактором Биллом Хэтфилдом, Bill Hatfield, своему тезке: "Послушай, Билл, а как насчет места для других желающих делать деньги в этом мире ?"), но обоснования движения открытых текстов, представленные в статье, гораздо шире и затрагивают еще и гуманитарную область.
Самое интригующее в движении - его будущее. Сумеет ли горстка добровольцев (хотя и имеющая за спиной миллионы сочувствующих) противостоять финансовому потенциалу большого бизнеса и превратить свое дело в незаменимый элемент действительности? Не развалится ли она от внутренних противоречий и от соблазна заняться большими деньгами? Молодежная революция 60-х годов реализовала свои цели в лучшем случае на 10%, современное западное общество сумело ее "переварить". Но без ее завоеваний оно уже немыслимо. Не исключено, что похожее ждет и "революцию открытых текстов": что-то произойдет, хотя и не обязательно в тех объемах и в том виде, как задумывалось (Эстер Дайсон не отрицает возможности самой Microsoft взять на вооружение идею движения), но станущее неотъемлемым элементом культуры разработки ПО будущего. Но, как указывает Тим О'Рейли в своей статье, за это будущее надо побороться.
Перевод за недостатком места выполнен с сокращениями. В частности, опущен раздел "Модели ведения бизнеса". Это сделано с сожалением, потому что экономическое обоснование метода открытых текстов для авторов, живущих в самой гуще рыночной экономики, весьма немаловажно. Тим О'Рейли подчеркивает, что разработки способом открытых текстов не отрицают рынка, и приводит примеры трех разных моделей ведения бизнеса вокруг такого рода работ. Также с сожалением и за недостатком места опущена некоторая персональная информация, что несколько затушевывает разноплановый личностный характер движения.
С полным исходным текстом статьи можно ознакомиться на Web-узле Edventure Holdings www.edventure.com. Рекомендуется также ознакомиться в Internet с упоминавшейся статьей Эрика Реймонда (на его страницах присутствует еще и дискуссия вокруг его статьи) и с Хэлоуин-документом. Желающим еще более плотного знакомства с историей, идеями и персоналией движения открытых текстов незаменимой окажется книжка "Open Sources: Voices from the Open Source Revolution", вышедшая в январе этого года в издательстве O'Reilly & Associates.
Мы сравнили число пользователей, отправивших сообщения во всевозможные группы новостей по разным продуктам открытых текстов (была использована программа анализа Netscan, доступная по адресу netscan.sscnet.ucla.edu, и рассмотрен период со 2 сентября по 2 октября 1998 года). Далее мы промасштабировали получившиеся числа сообщений для всех продуктов, отталкиваясь от числа в 7 миллионов для пользователей Linux.
Число сообщений Оценка количества пользователей Linux 13231 7000000 Perl 2023 1000000 BSD 1820 960000 Apache 738 400000 Sendmail 670 350000 Python 612 325000 Tcl/tk 563 300000 Samba 309 160000
Многие из получившихся оценок не противоречат имеющим хождение среди самих пользователей соответствующих продуктов. Кроме того, они согласуются с числом участников конференций: по Perl - проводимой O'Reilly; ApacheCon, проводимой Apache Group; по Tkl/Tk, проводимой Usenix и по Python, проводимой PSA. Короче, хотя эти прикидки статистически не очень-то и обоснованы, они на удивление правдоподобны.
Есть, однако, и две аномалии: оценки числа пользователей Apache и Sendmail. В конце концов, автообзор Netcraft обнаружил в Сети более миллиона серверов на базе Apache. Что же касается Sendmail, то фирма Sendmail, основываясь на данных о числе хостов в обзоре имен доменов, подготовленном Network Wizards (www.nw.com/zone/WWW/top.html), делает заключение о минимум 600000 серверах Sendmail в открытой части Интернета, и, вероятно, о вдвое большем их количестве во внутрифирменных сетях.
Оценки, полученные нами, будут выглядеть более обоснованными, если принять во внимание, что и Apache, и Sendmail не являются продуктами для конечного пользователя. Например, Apache - самый популярный сервер для поставщиков услуг в Internet и для компаний, организующих на своей технике узлы Web. Приняв это во внимание, соотношение 2,5 : 1 числа Web-узлов к числу администраторов этих узлов не кажется удивительным. Точно так же, в большой компании десятки почтовых серверов могут администрироваться небольшим числом специалистов.
Лицензия "типа BSD" (название идет от вида лицензии, использованного для распространения BSD-версии Unix) - самый старый и наименее ограничительный вид лицензии. В такой лицензии разрешается на базе полученного продукта создавать свой собственный, в том числе коммерческого характера и с непубликуемыми вставками. Опубликование сделанных изменений возможно, но не требуется.
Некоторые представители сообщества открытых текстов возмущаются поведением фирм, только забирающих программы из общедоступных источников, и ничего не возвращающих обратно. И тем не менее, несмотря на отсутствие подобного рода обязательных условий, добровольное взаимодействие процветает. Лицензия типа BSD широко используется в Inter в таких продуктах, как BIND, Apache и Sendmail.
Лицензию GNU GPL придумал Ричард Столман (Richard Stallman) в 1983 году. Она представляет собой реализацию в рамках проекта GNU так называемой "концепции Copyleft". В то время как традиционное copyright (дословно - право на воспроизведение) обеспечивает монополию права на создание копий и производных объектов, Copyleft дарует возможности неограниченного копирования и модификации. Однако Copyleft обязывает пользователя распространять исходный текст всех произведенных изменений бесплатно и без дополнительных к праву Copyleft ограничений.
Идея проекта GNU состоит в "свободном распространении ПО, где слово `свободное' понимается в смысле свободы действий, а не `бесплатности'". Свободно распространяемое (free) ПО не запрещается продавать, но обязательно нужно публиковать исходные тексты. GPL - лицензия "с иммунитетом" в том смысле, что работы, выполняемые в ее рамках, нельзя комбинировать с работами, выполняемыми в рамках других лицензий. Если вы внесли какие-то улучшения в работу, защищенную лицензией GPL, то результат тоже подпадает под эту лицензию. Имеется и более мягкая разновидность GPL, LGPL, используемая для функциональных библиотек.
GPL прекрасно предохраняет от дробления продукта на варианты, возникающего от внесения закрытых от широкой публики изменений, что нанесло так много вреда распространению Unix. Среди успешных реализаций GPL можно отметить ядро Linux, С-компилятор GNU и файл-сервер Samba.
Этот вид лицензии придумала фирма Netscape при опубликовании исходных текстов своей программы Communicator 5. Он является компромиссом между лицензией типа BSD и GPL. Разрешается делать свои собственные закрытые производные исходного продукта, в то время как изменения, вносимые в подпадающий под MPL код, должны предоставляться в открытый доступ в Internet. MPL "не имеет иммунитета": добавления к исходному коду (не путать с изменениями) могут лицензироваться отдельно и вовсе не обязаны быть опубликованными.
Можно сказать, что по мере развития экономики ПО открытых текстов развиваются и подходы к его лицензированию.
Когда многие слышат о Perl в Сети, то вспоминают в первую очередь о CGI, о внешних программах, запускаемых на Web-сервере для динамической генерации страниц. Однако, даже если учесть, что Perl чаще всего используется для генерации сценариев CGI, важность этого языка для infoware следующего поколения существенно этим не ограничивается.
"В Yahoo! мы не создаем содержание узла. Мы агрегируем его; - говорит Джефри Фридл (Jeffrey Friedl), автор книги Mastering Regular Expressions и штатный программист на Perl в Yahoo!; - Мы берем данные из тысяч разных источников, и у каждого свой формат. Мы обрабатываем огромные количества входной информации для того, чтобы выделить из нее нужное содержание и поставить на нужное место узла." Например, для того, чтобы соединить персональную динамически обновляемую страницу пользователя ("личный телеграфный аппарат", "ticker") с соответствующими текстами новостей (см. quote.yahoo.com), Фридлу потребовалось написать программу поиска в базе из более чем 15000 названий компаний. Для этой программы возможности Perl по обработке текстов с помощью регулярных выражений оказались неоценимы.
Perl также используется как центральный компонент инфраструктуры администрирования системой, обеспечивая изменения на узле с течением времени. Большое число сценариев, написанных на Perl, постоянно "ползают" по серверам Yahoo! и по внешним ссылкам в другие узлы, сигнализируя персоналу об отсутствии ожидаемого отклика от URL. Больше всего из таких "пауков" известен так называемый "the Grim Reaper"2. Если автоматический выход на URL не удается достаточно долгое время, страница удаляется из каталога Yahoo!.
В Amazon.com Perl демонстрирует свою уникальную способность связывать воедино рассредоточенные программные средства; в этом качестве он является превосходным "языковым клеем". Пользователь с помощью формы создает новый документ; форма вызывает программу на Perl; эта программа создает частично завершенный SGML-документ и запускает Microsoft Word либо GNU emacs (выбирает пользователь). К собственным средствами работы с SGML-документами разработки Amazon.com Perl тут же подключает систему одновременного ведения версий CVS. Для образования разных секций Web-узла из одной и той же базы источников (например, HTML-страницы с графикой или без) используются собственные SGML-классы Amazon.com. Перед тем, как автор подтвердит внесение изменений, специальный транслятор на Perl покажет ему сгенерированный по SGML-документу HTML-текст.
Примечания: