История свободного ПО — история протеста. «GNU is Not Unix» — так звучал манифест Ричарда Столлмена в середине восьмидесятых годов прошлого века. Всем энтузиастам предлагалось объединиться вокруг создания свободной (не бесплатной, а именно свободной) операционной системы и набора приложений для нее. К середине девяностых у этой операционной системы наконец-то появилось свое собственное, вполне функциональное ядро — Linux. Но ИТ, к тому моменту проникнувшие в бизнес практически повсеместно, были основаны на проприетарном ПО. Бизнесменов мало интересовали лозунги про свободу пользователя, им была нужна надежность и масштабируемость в решении бизнес-задач. Революция свершилась тихо и незаметно в двухтысячных годах с повсеместным внедрением интернет-технологий, которые в большинстве своем основывались именно на свободном ПО. LAMP (Linux, Apache, MySQL, PHP) стал промышленным стандартом для развертывания интернет-сайтов, браузер Mozilla Firefox занял достойное место на рабочих станциях пользователей. При этом потребитель опять выбирал не свободу как таковую, его главным критерием было качество ПО, которое для многих свободных продуктов оказалось выше проприетарных аналогов. Компания Google, к примеру, по соображениям безопасности рекомендовала всем своим сотрудникам на рабочих местах в 2010 году перейти от использования операционной системы Microsoft Windows к использованию Mac OS или Linux. Однако массового вытеснения проприетарного ПО во многих областях не происходит, несмотря на регулярные заверения различных аналитиков в области СПО.
Свободное ПО в бизнесе
Сегодня даже в далеком от ИТ бизнесе можно встретить широкий набор свободного ПО. В первую очередь популярностью пользуются различные инфраструктурные решения на базе СПО: шлюзы, прокси-серверы и почтовые серверы, интернет-серверы. Однако такие сервисы, как identity management, файловые серверы, внутрикорпоративные порталы, на СПО, несмотря на обилие подобных свободных решений, встречаются достаточно редко. Основной причиной является сложность интеграции последних с уже существующими системами. Инфраструктурные сервисы на свободном ПО легко интегрируются в существующую инфраструктуру потому, что реализуют открытые сетевые протоколы (IP, DHCP, SMTP), поддерживающиеся остальным ПО. Сложности интеграции возникают там, где используются проприетарные (закрытые для сторонних разработчиков) протоколы либо расширения к открытым протоколам. Если, к примеру, почтовая система организации построена на базе Microsoft Exchange с клиентами Microsoft Outlook и пользователи используют не только электронную почту, но и общие списки контактов, календари и задачи, то заменить такой почтовый сервер свободным аналогом без потери функционала не получится. Exchange и Outlook взаимодействуют по проприетарному (закрытому) протоколу MAPI, а не по открытым SMTP/IMAP/POP3, которые не предназначены для обмена списками контактов, календарями и задачами.
Большой популярностью в бизнесе у нас в стране и за рубежом в настоящее время пользуется офисный пакет OpenOffice.org. Переход на него с Microsoft Office позволяет сэкономить несколько сотен долларов на каждом рабочем месте. При этом для рядового пользователя, использующего лишь основные функции текстового редактора и электронных таблиц, практически ничего не меняется. Однако при использовании в документах сложного форматирования, макросов в электронных таблицах, эффектов в презентациях, несмотря на формальную поддержку данного функционала со стороны OpenOffice.org, переход может быть достаточно болезненным. Некоторые организации выбирают путь «частичного замещения» — офисный пакет от Microsoft приобретается только на те рабочие места, где требуется расширенный функционал. Интеграция, пусть и не всегда абсолютно гладкая, обеспечивается взаимной поддержкой форматов файлов между OpenOffice.org и Microsoft Office.
Интересная ситуация складывается сейчас на рынке систем резервного копирования. В бизнесе традиционно использовались различные проприетарные дорогостоящие системы от Symantec, CA Technologies, IBM. Некоторое время назад на рынке появилась свободная система резервного копирования Bacula. Но до настоящего времени ее массового внедрения в бизнесе не происходило большей частью потому, что в ней отсутствовала интеграция со ставшими де-факто стандартными проприетарными СУБД, такими как Oracle, DB2 и Microsoft SQL Server, а в этих БД принято хранить самую важную информацию, требующую резервного копирования. В ближайшее время ожидается выпуск компанией-разработчиком соответствующих проприетарных плагинов для резервного копирования СУБД. Это должно открыть дорогу для Bacula на массовый рынок.
На самом рынке СУБД наблюдается расслоение по нишам. В нише крупного бизнеса используются проприетарные Oracle, IBM DB2 и Microsoft SQL Server, в малом и среднем бизнесе, а также для интернет-решений применяются в основном свободные MySQL и PostgreSQL. Встречаются также гибридные применения: продукты «1С» в настоящее время могут работать как поверх Microsoft SQL и IBM DB2 — что может требоваться, к примеру, в головном офисе крупной компании, — так и поверх свободной PostgreSQL, которая может применяться, скажем, в региональных филиалах.
Свободное ПО — средство производства продуктов и услуг
Раньше, чем на рабочей станции рядового пользователя и внутрикорпоративных серверах, свободное ПО прижилось в ИТ-компаниях. Большой популярностью у компаний-разработчиков пользуются свободные инструменты управления версиями исходного кода: CVS, SVN, Mercurial, Git. Популярность этих средств объясняется не только их функционалом, но и интеграцией с популярными свободными (Eclipse, NetBeans) и проприетарными (Microsoft VisualStudio) средами интегрированной разработки.
ИТ-компании используют продукты для производства других программных решений или различных сервисов. Одной из двух основных платформ индустриальной разработки программного обеспечения наряду с проприетарной Microsoft.NET является свободная платформа Java. Процесс разработки новых программных продуктов во многом опирается на существующие библиотеки и инструментальные средства. В мире разработано большое количество свободных библиотек под различными лицензиями. Библиотеки под такими лицензиями, как BSD, Apache, LGPL и прочими, не требующими в отличие от лицензий GPL различных версий того, чтобы комплексный продукт сохранял те же лицензионные характеристики, что и использованная библиотека, широко применяются программистами в разработке не только свободных, но и проприетарных продуктов.
Поддержка изменений: менять ли свободный код?
Одно из основных достоинств свободного ПО — открытый исходный код продукта. Его наличие в совокупности с правом вносить изменения и распространять полученный результат дает вам как пользователю очень широкие возможности. Вы можете провести доработку необходимого вам функционала или исправление мешающей именно вам ошибки либо собственными силами, если у вас есть разработчики с соответствующими компетенциями, либо с помощью привлеченных подрядчиков. Однако, решаясь на использование в бизнесе СПО, следует задуматься о дальнейшей поддержке продукта. Существуют два варианта: вы оставляете все изменения у себя либо пытаетесь внедрить их в основную ветку разработки. В первом случае вам придется поддерживать релевантность ваших изменений относительно каждого нового выпуска продукта. Это может оказаться далеко не тривиальной задачей, особенно если ваши изменения достаточно глубоки. Если же вы решите передать ваши доработки в основную ветку разработки программного продукта, то вам придется предпринять дополнительные усилия: исходный код должен быть приведен к виду, принятому в проекте, должна быть произведена доработка документации и, самое главное, вы должны убедить разработчиков основной ветки проекта принять ваши изменения. Все эти действия могут потребовать работы, в несколько раз превышающей по объему ту, которая требовалась на саму разработку, но, проделав ее, вы перекладываете с себя груз поддержки на разработчиков основной ветки проекта.
Мифы о свободном ПО
В 1999 году Тим О’Рейли сформулировал десять мифов о свободном ПО. С тех пор прошло двенадцать лет, но большинство из них еще достаточно сильны даже среди ИТ-руководителей. Попробуем посмотреть на эти мифы с сегодняшней точки зрения.
• «СПО — это конкуренция Windows и Linux, RedHat — конкурент Microsoft». Несмотря на то что конкуренция между Microsoft и RedHat существует, мир СПО сегодня гораздо шире. Достаточно упомянуть OpenOffice.org, Mozilla Firefox и MySQL, работающие как под свободными платформами, так и под платформами от Microsoft.
• «СПО не надежно и никем не поддерживается», «Большие компании не используют свободное ПО». Сервисы Google, Facebook, Yandex и многих других крупных интернет-компаний основаны на свободном ПО и работают достаточно надежно. Недавно Белый дом в США начал использовать Wordpress для публичного сайта с большим числом посетителей.
• «СПО враждебно интеллектуальной собственности». Патентные проблемы в США действительно существуют, но, как показывает практика, патентные иски подаются вне зависимости от открытости того или иного проекта. Последние события вокруг проприетарных мобильных платформ iOS, Windows Phone 7 и свободной Android — лишь подтверждение сложившейся практики.
• «СПО отличается только лицензией». С точки зрения разработчика свободное ПО — это скорее коллективный, основанный на деятельности сообщества способ разработки ПО, чем способ его распространения. Однако последние исследования показывают все возрастающий вклад коммерческих компаний в разработку свободных проектов, доля кода, разрабатываемого энтузиастами свободного ПО, постоянно снижается.
• «Открытие исходных кодов произвольного проекта разработки программного проекта автоматически привлекает к нему разработчиков». Многие тысячи свободных проектов, размещаемые, к примеру, на SourceForge, имеют не более одного активного разработчика. Для привлечения сторонних усилий проект должен обладать несколькими свойствами: быть полезным пользователю, достаточно документированным, восприимчивым к внешним сообщениям об ошибках, пожеланиям новой функциональности.
• «Открытый код имеет значение только для разработчиков», «Нельзя заработать на свободном ПО». В настоящее время в США и Европе существует достаточно много сервисных фирм, оказывающих платную поддержку по свободному ПО. В России покупка поддержки пока распространена мало,
в большинстве своем свободное ПО поддерживается внутрикорпоративными силами.
• «Свободное ПО лишь догоняет Microsoft и остальной проприетарный мир». В последние годы появились проекты, аналогов которым в проприетарном мире не создается. Как пример можно привести уникальную инфраструктуру работы с большими объемами данных Apache Hadoop, поддержка которой предоставляется многими компаниями, в том числе таким гигантом, как IBM.
• «Движение СПО ненадежно и скоро закончится, люди захотят получать деньги». Наверное, это единственный миф, полностью развеянный за прошедшие годы. Свободное ПО лишь глубже проникает в нашу жизнь.
«Свой путь» России
У нас в стране в настоящее время складывается уникальная в мировой практике ситуация. В 2010 году правительство Российской Федерации приняло поэтапный план перехода органов исполнительной власти и федеральных бюджетных учреждений на использование свободного программного обеспечения. В 2011 году утвержден список технологических платформ, куда вошла во многом ориентированная на свободное программное обеспечение Национальная программная платформа. Из последних выступлений причастных к процессу создания этой платформы специалистов можно сделать отрадный вывод, что задачи полного вытеснения проприетарного ПО из государственного сектора не ставится. Ставится логичная задача повысить долю отечественных решений и сервисов в структуре ИТ-поддержки органов государственной власти в сочетании с обеспечением совместимости с существующими проприетарными решениями. К сожалению, опыта внедрения свободного ПО в государственном секторе пока не очень много: широкой публике известен только частично (ввиду различных организационных моментов) успешный проект внедрения СПО в школы России. В любом случае стоит пожелать удачи решающим столь непростую, учитывая особенности нашего государственного управления, задачу.
Свободное ПО в настоящее время органично занимает свою нишу — как на рабочей станции рядового пользователя, так и в качестве инструмента создания продуктов и услуг в ИТ-компаниях. Будет ли эта ниша расти? Учитывая повышение доли сервисов, основанных в большинстве своем на свободном ПО, — безусловно, будет. Произойдет ли в ближайшее время массовое вытеснение проприетарного ПО из его традиционных ниш? Вряд ли. Это будет не революция, а крах индустрии. Очень вероятно, что в ближайшее время мы будем видеть возрастающую интеграцию различного ПО, как свободного, так и проприетарного. Пользователю от этого будет только лучше.