Школьная Компьютерра

№ 7-8 (28 мая 2003 года)


Открытое программное обеспечение

Александр Костинский


Открытое программное обеспечение создается «научными школами» нового типа. Теперь могут работать рука об руку люди из разных стран, которые никогда не видели друг друга. И вот что из этого получается.


КАК И МНОГИЕ яркие события, начало движения за бесплатное распространение компьютерных программ осталось почти незамеченным. В 1984 г. Ричард Столлмен создал GNU — бесплатную версию операционной системы UNIX — и, что может быть еще более важно, основал фонд свободного программного обеспечения — FSF (Free Software Foundation). Операционная система — это несколько связанных вспомогательных программ, которые постоянно находятся в памяти компьютера. Их основная роль — связывать воедино части машины и поддерживать порядок выполнения прикладных программ. UNIX — одна из самых выдающихся операционных систем, которая уже много лет обслуживает миллионы компьютеров (операционные системы были темой в №2 ШК).

Ричард Столлмен во главе Фонда с решимостью Дон Кихота призывал открыть доступ к полным текстам всех программ и последовательно критиковал коммерческие подходы к их распространению. В эпоху триумфального шествия закрытых коммерческих программ его призыв выглядел для многих не очень серьезно.

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

В 1991 г. в рамках проекта GNU Линус Торвальдс (в возрасте 21 года) создал Linux — открытый вариант операционной системы UNIX. В 1993 г. насчитывалось 20 тысяч копий этой программы, а в 1998 г. — уже 5 миллионов. Как и все UNIX-системы, Linux обслуживает множество пользователей и решает много задач одновременно. Операционная система высокопроизводительна, эффективна, стабильна, надежна и расширяема. И при этом требует значительно меньших компьютерных ресурсов, чем контролирующие рынок персоналок Windows или MacOS.

В 1994 г. в Центре суперкомпьютерных исследований Иллинойского университета группа из восьми программистов создала программу для сервера Всемирной паутины — Apache. Свое детище они тоже решили распространять бесплатно вместе с исходным текстом программы.

По мнению специалистов, успехи бесплатных программ в последнее время «меняют на глазах лицо компьютерной индустрии». Программа Apache сейчас занимает более половины рынка серверов, значительно превышая долю всех коммерческих компаний вместе взятых. 80 процентов маршрутов электронной почты в Интернете определяет открытая программа Sendmail. Конечно, Windows еще надолго останется главной операционной системой персональных компьютеров, но и сам Билл Гейтс не на шутку обеспокоен.

В чем же секрет такого успеха открытых программ? Во-первых, в том, что они часто превосходят коммерческие аналоги; например, бесплатный шифровальный пакет GnuPG (клон бесплатного, но сейчас закрытого PGP, см. стр. 4–5) обеспечивает уровень защиты стойкой криптографии. Во-вторых, в надежности, обеспеченной придирчивыми проверками тысяч пользователей во всем мире. Причем, находя ошибки, многие программисты их исправляют, незамедлительно (благодаря Интернету) ставя об этом в известность коллег.

Недостатками многих открытых программ являются плохая документированность кода и не очень удобный интерфейс: исполнять рутинную работу энтузиастам не очень хочется.

Интернет-школа

И тут мы подходим к самому интересному вопросу. Как весь этот хаос интернетовских связей отливается в слаженную работу никогда не видевших друг друга людей?

Принципы организации сообщества открытого программного обеспечения напоминают деятельность редакции журнала. Обычный читатель знакомится с произведением автора, но часто не замечает, что между ним и автором незримо присутствует редактор, который отбирает произведения для публикации, следит за наполнением редакционного портфеля, подгоняет авторов к очередному выпуску. Именно редактор, по большей части, и определяет лицо издания.

 В Linux-сообществе роль редакторов играют диспетчеры-интеграторы. Они, как дирижеры огромного оркестра, раздают партитуру авторам — программистам, которые отвечают за части проекта. Кроме того, интеграторы упорядочивают и организуют работу большого числа программистов. Именно программисты напрямую общаются с пользователями программы, находят и исправляют ошибки, дополняют основной код и иногда расширяют сами возможности исходной программы.

На интеграторов — лидеров проекта — ложатся общее планирование работ и главные идеологические решения. Они поддерживают Интернет-узлы, следят за архивом и листами рассылки. Но, подобно редакторам и режиссерам, интеграторы не пишут текстов программ, не выходят на публику и с ней не общаются.

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

И все-таки: что движет людьми, создающими бесплатный программный продукт? Можно представить, с каким напряжением они работают, если зачастую оставляют за спиной ведущих программистов крупных коммерческих фирм! Справедливости ради заметим, что и от применения открытых программ можно получать деньги. За них платят те заказчики, которые нуждаются в доработке и подгонке программ к своим специфическим условиям. Однако большинство программистов (хотя никто из них об этом не говорит) воодушевлено не деньгами, а причастностью к созданию красивого, нужного и доступного всем продукта программирования. Как и в любой творческой деятельности, большую роль здесь играют самолюбие, амбиции, желание выделиться в сообществе единомышленников. Думается, однако, что и это не главное.

По моему мнению, сообщества открытого софта похожи на научные школы, подобные Афинской. Ведь никто не платил Фалесу, купцу из Милета, за его теоремы; а Пифагор, доказав свое соотношение между катетами и гипотенузой, по преданию, пожертвовал богам сотню быков. Не рассчитывая на вознаграждение, каменотес Сократ и шлифовальщик стекол Спиноза пытались постигнуть природу вещей, побуждая к этому своих учеников и последователей. Список можно продолжать очень долго.

Но у научных Интернет-сообществ есть и преимущества перед великими предшественниками. Те были разнесены друг от друга на тысячи километров и иногда на десятки, сотни, а то и тысячи лет. Теперь же благодаря электронной почте, ICQ и т. д. скорость взаимодействия настолько велика, что подобные «школы», при хорошей идее и организации, могут быстро получать неожиданные, а иногда просто впечатляющие результаты.