Движение свободного ПО, по сути, сформировано проектами, которые направлены на разработку отдельных свободных программ. Каждый проект объединяет вокруг себя разработчиков и пользователей и вместе с тем является частью целого - сообщества свободного ПО.
Сегодня свободные программы перестали быть уделом технических специалистов и энтузиастов компьютерных технологий: за последние несколько лет существенно возросло как количество, так и качество свободных программ. В результате даже обычный пользователь, который обладает лишь поверхностными знаниями о свободных программах и операционных системах, может полноценно работать в свободной программной среде.
В настоящей публикации даны общие сведения о порядке разработки свободного ПО и кратко описаны важнейшие свободные проекты.
Кто инициирует разработку свободных программ
Изначально создание свободных программ происходило в сообществе разработчиков, с чем связана относительно более высокая зрелость тех из них, которые решают инфраструктурные задачи или упрощают работу программистов. Стала хрестоматийной популярность проекта Apache, широкое распространение получил язык создания веб-страниц PHP. Инфраструктура доменных имен Интернета основана на свободном сервере BIND. Успех этих и других проектов, выросших из отдельных инициатив сообщества, привел к появлению проектов иного рода, источником развития которых стало масштабное целенаправленное обеспечение ресурсами со стороны крупных компаний. Сюда следует отнести проект корпорации IBM по созданию модульной среды разработки Eclipse, проект Sun Microsystems по созданию свободной реализации Java и другие.
Существует множество вариантов инициирования свободных проектов. Иногда их основой являются личные наработки, созданные в качестве «профессиональной разминки» (например, так начиналась разработка ядра Linux). Некоторые проекты берут своё начало из университетских исследовательских работ (так, в Калифорнийском университете в Беркли зародились операционная система BSD, сервер имен BIND, библиотека для создания графических пользовательских приложений GTK+ и Tk и др.). Широко распространен вариант инициирования свободного проекта, при котором коммерческая фирма осознает, что открытие исходных текстов является оптимальным способом привлечения новых идей и участников, снижения расходов на поддержку и развитие программы, хотя таким проектам и не всегда удается создать сообщество, необходимое для устойчивого развития. Примерами успешных начинаний такого рода являются веб-браузер Mozilla, офисный пакет OpenOffice.org (приобретенный Sun Microsystems у немецкой компании StarDivision и впоследствии раскрытый), среда разработки Eclipse и многие другие. Показательна история проекта Blender, посвященного созданию свободного инструмента для трехмерного дизайна и моделирования. Blender был опубликован на условиях свободной лицензии после того, как участники сообщества в порядке добровольных пожертвований собрали $100 000 для выплаты правообладателю.
Жизнеспособность свободных проектов
Не каждый свободный проект оказывается жизнеспособным. Залогом успеха служат востребованность проекта сообществом и эффективная координация разработки лидерами проекта. Важно понимать, что проект по разработке свободных программ — это в первую очередь люди и лишь во вторую — создаваемый ими программный код. Группа разработчиков, которых объединяет общая цель, способна создать новую программу, необходимую для решения некоторой задачи, тогда как пакет исходных текстов, ни для кого не представляющий интереса, обречен на забвение, несмотря на формальную «открытость».
У перечисленных ниже свободных проектов есть одна общая черта: они постоянно развиваются, расширяют функциональные возможности и улучшают качественные характеристики. В результате они собрали обширнейшую инсталляционную базу, в которую входят десятки и сотни миллионов пользователей по всему миру. Причина такого широкого распространения заключается именно в том, что за каждым из проектов стоит стабильная группа разработчиков, которые работают над ними на регулярной основе. Причём как в рабочее, так и в свободное время.
В первом случае участие разработчика в создании свободного ПО представляет интерес для работодателя. Этот интерес может быть непосредственным, когда разработка программного обеспечения является составной частью бизнеса фирмы (например, популярная СУБД MySQL практически полностью разрабатывается сотрудниками компании MySQL AB), или косвенным, когда работодателю важен сам факт взаимодействия сотрудников и сообщества свободного ПО. Так, корпоративная политика Google позволяет сотрудникам уделять один день в неделю участию в проектах по созданию свободного ПО. Такое взаимодействие не является благотворительностью: оно позволяет компаниям наладить неформальные связи с компетентными и активными представителями сообщества.
Если же участие в свободном проекте представляет собой хобби разработчика, он занимается проектом в свободное от учёбы и работы время. Сообщество разработчиков таких проектов не такое устойчивое: для некоторых разработчиков проект является более стабильным элементом в жизни, нежели основная работа, а другие теряют интерес уже через несколько месяцев после запуска проекта.
В целом для проектов по разработке свободного ПО текучесть состава участников - нормальное и даже плодотворное явление: она способствует притоку свежих идей и омолаживанию команды. Но текучка бывает и пагубна, особенно если затрагивает ведущих разработчиков. В зависимости от масштабов проекта это может быть один или несколько человек, участие которых носит регулярный характер, а передача полномочий лидера происходит в организованном порядке. Таким образом, наличие в проекте стабильного «ядра» ведущих разработчиков, которые занимаются координацией проекта, является важнейшей гарантией его устойчивости и жизнеспособности.
О составе участников многих свободных проектов, достигнутых результатах и новостях можно узнать на таких сайтах, как SourceForge, Tigris, RubyForge, Apache Foundation, каждый их которых представляет собой своего рода «фабрику» свободных проектов. Там же можно загрузить исходные тексты и бинарные версии программ. Кроме того, существуют специализированные проекты Ohloh и Sourcekibitzer (последний посвящен проектам, написанным на языке Java), которые на основе автоматизированного анализа исходных текстов проектов позволяют получить сводную информацию о динамике развития проекта, объеме исходных текстов, возможных лицензионных проблемах, географии разработчиков и т. д.
Обзор свободных проектов
В настоящий обзор включено несколько свободных проектов наиболее важных для сообщества свободного ПО и рынка ИТ в целом. В обзоре приведены краткие описания проектов и сведения о масштабах их распространения. К сожалению, во многих случаях нам не удалось собрать сведения о рыночной доле соответствующих проектов, поскольку свободные программы распространяются множеством различных способов, и точный подсчет установок практически невозможен. Волей-неволей пришлось прибегать к косвенным оценочным (и менее надежным) данным.
В то же время рыночная доля не может считаться универсальным индикатором качества и важности программы. Масштабы признания конкретного вида ПО в значительной мере определяются действием так называемых сетевых эффектов, когда после преодоления некоторого критического порога программа завоёвывает и удерживает свои рыночные позиции как бы по инерции, и люди начинают использовать эти программы не потому, что они более совершенны в техническом отношении, а потому, что встречают их в образовательных учреждениях, на работе, у знакомых и т. д. Если в условиях формирующегося рынка преодоление критического порога, после которого начинается положительное действие сетевых эффектов, является довольно простой задачей, то для сформированного рынка оно связано со значительными трудностями. В этом случае до преодоления критического порога сетевые эффекты действуют против «новичка» и сильно затрудняют выход на рынок. Многие свободные программы сегодня находятся именно в этом положении.
Проект создан в 1995 г. на основе распространенного в то время веб-сервера NCSA HTTPd (разработка которого родительской организацией прекращена). Apache стал самым популярным на планете веб-сервером уже в 1996 г. и удерживает свои позиции до сих пор. По статистике NetCraft, Apache установлен на 58,9% веб-серверов по всему миру.
В настоящее время проект по разработке веб-сервера является лишь одним из множества проектов, которые поддерживает Фонд программного обеспечения Apache (Apache Software Foundation). Фонд представляет собой некоммерческую организацию с достаточно жесткой структурой, основанной на принципе «меритократии» (роль и вес каждого участника зависит от его вклада в проекты Фонда), во главе которой стоит выборный совет директоров.
Eclipse — проект по созданию универсальной свободной среды разработки приложений на различных языках для различных платформ. Инициирован компанией IBM в 2001 г. В 2004 г. руководство проектом передано в независимый от IBM самоуправляемый Фонд Eclipse (Eclipse Foundation), который возглавляет выборный совет директоров.
Сегодня на основе проекта Eclipse созданы среды разработки, поддерживаемые и предлагаемые компаниями IBM, Sybase, Borland, Intel, Palm, Adobe, Nokia и др. Существует множество дополнительных модулей, которые позволяют приспособить Eclipse для решения самых разных задач, возникающих перед разработчиками.
Проект основан компанией Sun Microsystems в 2001 г., когда на условиях свободной лицензии LGPL был опубликован офисный пакет StarOffice, приобретенный в 1999 г. у немецкой компании StarDivision. Свободная версия StarOffice получила название OpenOffice.org. Отличительная черта OpenOffice.org — качественная поддержка форматов файлов распространенного офисного пакета Microsoft Office, что существенно упрощает переход пользователей на свободное ПО.
Несмотря на то что Microsoft Office удерживает около 95% рынка, OpenOffice.org в 2004 г. завоевал 14% рынка офисных пакетов в крупных корпоративных внедрениях, а в 2005 г. — 19% рынка в секторе малого и среднего бизнеса. Офисный пакет OpenOffice получил широкое распространение в мировом (особенно в европейском) государственном секторе, причем есть устойчивая тенденция роста его доли.
В 1998 г. корпорация Netscape опубликовала исходные тексты находящейся в разработке новой версии своего веб-браузера. Со временем руководство и координация проекта перешли к независимой организации Фонд Mozilla (Mozilla Foundation). В рамках проекта разрабатывается веб-браузер Firefox, почтовый клиент Thunderbird и некоторые другие приложения.
По статистике MarketShare, в марте 2007 г. доля Firefox среди используемых веб-браузеров составила 15,1%.
Проект X.org представляет собой свободную реализацию протокола X Window System для графических приложений под управлением большинства свободных и несвободных UNIX-систем. X.org отпочковался в 2004 г. от основанного в 1992 г. проекта XFree86 в связи с разногласиями, возникшими по вопросам порядка разработки и лицензирования результатов проекта.
Сегодня X.org используется в большинстве распространенных дистрибутивов Linux и других свободных операционных систем (BSD, OpenSolaris и др.), его инсталляционная база насчитывает сотни миллионов экземпляров программ.
Проект по разработке ядра операционной системы Linux инициирован в 1991 г. Линусом Торвалдсом, в то время студентом Хельсинского университета. Проект был с готовностью принят проектом GNU, для которого создание свободного ядра операционной системы представляло первоочередную важность. С тех пор, благодаря взаимодействию с проектом GNU, популярность ОС Linux среди разработчиков и пользователей неуклонно росла.
Сегодня Linux является самой популярной из свободных операционных систем, несмотря на наличие таких альтернатив, как OpenSolaris, FreeBSD, GNU/Hurd. По сведениям IDC, в 2004 г. она использовалась на 25% серверов и 2,8% настольных компьютеров по всему миру, с тех пор доля Linux только увеличилась.
Набор компиляторов GNU (GCC — GNU Compiler Collection) впервые был опубликован в 1987 г. Ричардом Столлманом. В то время проект носил название «компилятор C проекта GNU» (GNU C Compiler) и поддерживал лишь один язык программирования. В 1999 г. проект был передан группе разработчиков усовершенствованного набора компиляторов GNU (EGCC — Enhanced GNU Compiler Collection), которые создали свою, более динамично развивающуюся и совершенную версию пакета, названную GCC.
GCC используется как основной компилятор в свободных и несвободных операционных системах, включая Linux, BSD, Mac OS X, BeOS и др., поддерживает множество языков программирования и аппаратных архитектур.
Проект GIMP (GNU Image Manipulation Program — «программа по обработке изображений GNU») основан в 1995 г. двумя студентами — участниками клуба «Экспериментальная компьютерная лаборатория» Калифорнийского университета в Беркли. Сегодня GIMP — одна из самых популярных программ для работы с растровой графикой, специализированная версия CinePaint используется при создании кинофильмов.
Подсчет числа установок и рыночной доли GIMP — непростая задача, особенно если принимать во внимание наличие различных версий программы.
Проект по созданию системы управления базами данных MySQL инициирован в 1995 г. группой шведских программистов. Он быстро завоевал сердца веб-разработчиков благодаря скорости работы, стабильности и возможности бесплатной загрузки. В частности, MySQL является составной частью известной комбинации LAMP (Linux, Apache, MySQL, PHP), которая обеспечила популярность свободного ПО на рынке платформ для создания динамических веб-приложений. MySQL представляет собой один из самых интересных примеров успешного бизнеса на основе свободного ПО. Сегодня практически вся разработка осуществляется компанией MySQL AB, которая владеет полными авторскими правами на исходные тексты СУБД. Это позволяет компании распространять систему не только на условиях лицензии GNU GPL, но и лицензировать ее на традиционных (несвободных) условиях тем заказчикам, которые в таких условиях заинтересованы.
По сведениям Evans Data Corporation от марта 2007 г., рыночная доля СУБД достигла 40%, а ее рост на протяжении предшествующих двух лет составил 25%. Общее число установок, по информации MySQL AB, превышает 11 млн.
Проект POSTGRES был инициирован сотрудником Калифорнийского университета в Беркли Майклом Стоунбрейкером после того, как разработанная под его руководством СУБД Ingres добилась успеха и коммерческого признания (на основе Ingres были разработаны коммерческие СУБД SQL Server, Sybase и др.). В самом названии POSTGRES, то есть post-Ingres, отражено стремление к развитию и доработке более ранних идей. Первая версия СУБД опубликована в 1989 г., но в 1993 г. проект был официально объявлен закрытым, поскольку разработчики не справлялись с потоком пользовательских пожеланий и сообщений об ошибках. Несмотря на это, в 1994 г. два аспиранта того же университета, воспользовавшись доступностью исходных текстов, переработали проект, добавив интерпретатор языка SQL. Новый проект получил название PostgreSQL.
По данным Evans Data Corporation, PostgreSQL, наряду с MySQL и Firebird, является одной из трёх самых распространенных свободных СУБД. В начале 2005 г. свободные СУБД использовали 64% администраторов БД американских компаний, на долю PostgreSQL приходилось 15%.