Open Source Culture

1. Открытый код (Open Source)

Движение Open Source зародилось в академических кругах Computer Science. Собственно, первоначально никакого движения не было — а была лишь обычная, принятая в науке, практика свободного обмена результатами своей работы. Благо ARPANET, а затем и Интернет предоставил к тому практически неограниченные возможности.

В первой половине 80-х годов Ричард М. Столлмен, сотрудник MIT AI (в миру он более известен как RMS), боролся с прикручиванием принтера от HP к своей системе. И боролся безуспешно — поскольку товарищи от Хьюлетта и Паккарда отказались предоставить ему «исходники» на свое firmware, что привело Столлмена к убеждению — закрытые исходники ― тормоз прогресса, и все программное обеспечение (ПО) должно быть открытым и свободным.

К середине 80-х годов прошлого тысячелетия RMS создает Фонд свободного программного обеспечения (FSF — Free Software Foundation), начинает проект GNU — воспроизведение функциональности Unix “с чистого листа”, но в свободном исполнении, а главное — формулирует принципы Free Software: свобода использования, свобода изучения и модификации, свобода распространения.

Ричард М. Столлмен так определил критерии свободного программного обеспечения:

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

Открытый доступ к исходным текстам программ является ключевым признаком свободного ПО, поэтому предложенный несколько позднее Эриком Реймондом термин «open source software» (ПО с открытым исходным текстом) некоторым представляется даже более удачным для обозначения феномена свободного программного обеспечения, чем изначально предложенный Столлменом «free software». Хотя стоит отметить, что Столлмен настаивает на различии этих двух понятий, так как open source обладает только одной, а не всеми четырьмя свободами, присущими Свободному ПО.

В 1992 году молодой финский программист Линус Торвальдс написал новое ядро операционной системы Linux и выложил коды в сеть для доработки совместно с международным сообществом программистов и хакеров.

Кроме того, Линус оказался создателем уникального метода разработки масштабных проектов Open Source, того самого, который Эрик Реймонд позднее назовет методом «большого базара». Это стало возможным благодаря Интернету.

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

В настоящее время Open Source ПО получило широкое распространение и используется в Министерстве юстиции Бельгии, в котором уже половина компьютеров работает под управлением GNU/Linux, и полицией Франции, которая к 2014 году планирует полностью перейти на Ubuntu Linux. О переходе на программное обеспечение с открытым исходным кодом объявило также Патентное ведомство Нидерландов. Перевести все компьютеры этого учреждения на свободное ПО планируется до конца 2009 года.

2. Потенциальные преимущества «открытого кода»

    • Стоимость. Часто ПО с открытым кодом вообще безплатно, например дистрибутивы Linux можно скачать из Интернета и самостоятельно установить на компьютер. В условиях усиливающегося давления поборников «авторского права», чему примером является известное уголовное дело директора школы Поносова за использование нелицензионной ОС «Windows», данное преимущество является определяющим для школ, бюджетных организаций, учащейся молодежи.
    • Независимость. Человеку свойственно стремление к независимости. Диктат производителей проприетарного, озабоченных только собственной прибылью, заменяется добровольной взаимозависимостью участников открытого проекта. При необходимости есть возможность самому разобраться в коде и внести необходимые изменения. ПО с открытым кодом вместе с Интернетом дают более высокую степень независимости и свободы по сравнению с традиционными технологиями.
    • Функциональность. Свободный обмен идеями приводит к тому, что продукт аккумулирует в себе все лучшее, что наработано множеством участников проекта. Общественная экспертиза способствует самоконтролю участников за своим вкладом в проект.
    • Скорость внесения улучшений. Все изменения вносимые в проект тестируются множеством участников, что существенно сокращает сроки внесения полезных изменений.
    • Отсутствие ошибок. Практически невозможно создать ПО без ошибок, но когда на код смотрят тысячи глаз, то ошибке невозможно спрятаться, в случае злонамеренности, её невозможно спрятать.
    • Безопасность. Открытое ПО практически не подвержено атакам вирусов, так как дыры в безопасности устраняются сообществом в течение нескольких часов. Написание вирусов становиться безсмысленным занятием.

Следует заметить, что преимущества Open source не проявляются автоматически при соблюдении правил. Есть много примеров неуспешных Open source проектов. Основная причина этого ― люди, их нравственно-психологическая мотивация и профессионализм.

3. Культура с «закрытым кодом»

То обстоятельство, что современное человеческое общество и компьютерная сеть являются информационными системами, позволяет проводить между ними глубокие аналогии. Ключевым элементом компьютера является операционная система, ядро которой, содержит в себе алгоритмы и исходные данные, необходимые для функционирования и взаимодействия прикладных программ. Аналогом операционной системы в человеческом обществе является культура. Ядро культуры содержит упорядоченную систему базовых ценностей, определяющих объективную (а не декларируемую) нравственность и соответствующие ей стереотипы отношения к явлениям внутреннего и внешнего мира, которые проявляются в поведении людей в реальных жизненных ситуациях. Большая часть ядра доминирующей в современном обществе культуры является системой с «закрытым исходным кодом», в которой информация по умолчанию зачастую подавляет информацию по оглашению. Можно предположить, что это сделано с целью защиты «авторских прав» разработчиков и владельцев «исходных кодов» в корыстных целях.

Все виды информационных систем с «закрытым кодом», независимо от элементной базы и языков программирования, на которых они реализованы, обладают объективно существующим значительным недостатком: они утрачивают устойчивость по предсказуемости в определенных обстоятельствах. Начиная с определенного уровня сложности системы, внесение в нее изменений и поддержка работоспособности становится нетривиальной задачей. Очень непросто обеспечить согласованные действия массы людей, часто не знакомых друг с другом, работающих в различных местах и часто говорящих на разных языках. Закрытость кодов или их фрагментов приводит к росту противоречий внутри системы и она на сленге программистов начинает «сыпаться». Часто, возникающие проблемы начинают решать методом локальных «заплаток», что приводит к дальнейшему усложнению системы и утратой ею устойчивости вплоть до окончательной потери работоспособности. Аналогично описанному алгоритму, существуют риски обрушения культуры построенной на принципах «эзотеризма», когда ресурсов «посвященых» не хватает, чтобы «латать дыры», т.е. решать проблемы в темпе их возникновения. Наступает «цейтнот» и система «падает». В отличие от компьютерных систем, нажать клавишу «reset», без непредсказуемых последствий практически нереально.

4. Культура с «открытым кодом»

Для решения подобных проблем наиболее эффективной является концепция «открытого кода», о котором говорилось ранее. Культуру с "открытым кодом" еще предстоит создать .

Включайтесь в процесс создания культуры с открытым кодом!