Это перевод страницы, написанной на английском языке.

Почему “открытый исходный текст” не передает понятия “свободная программа”

Выражения “свободные программы” и “открытый исходный текст” описывают почти один и тот же диапазон программ. Однако они говорят об этих программах глубоко различные вещи, основанные на разных ценностях. Движение за свободные программы выступает за свободу пользователей вычислительной техники; это движение за свободу и справедливость. Напротив, идея открытого исходного текста опирается главным образом на ценность практического превосходства и не выступает за принципы. Вот почему мы не согласны с открытым исходным текстом и не употребляем это выражение.

Когда мы называем программу “свободной”, мы имеем в виду, что она уважает основные свободы пользователей: свободу исполнять ее, изучать и править ее, а также распространять с изменениями или без них. Это вопрос свободы, а не цены, так что представляйте себе “вольную речь”, а не “бесплатное пиво”.

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

Десятки миллионов людей по всему миру используют сегодня свободные программы: общественные школы некоторых штатов Индии и провинций Испании теперь преподают всем учащимся работу в свободной операционной системе GNU/Linux. Однако большинство этих пользователей никогда не слышало об этических причинах, по которым мы разработали эту систему и построили сообщество свободного программного обеспечения, потому что сегодня об этой системе и сообществе говорят как об “открытом исходном тексте”, соотнося их с другой философией, в которой эти свободы едва упоминаются.

Движение за свободное программное обеспечение боролось за свободу пользователей с 1983 года. В 1984 году мы дали старт разработке свободной операционной системы GNU, чтобы мы могли обходиться без несвободных операционных систем, которые отказывают своим пользователям в свободе. За восьмидесятые годы XX века мы разработали большинство основных компонентов такой системы и составили Стандартную общественную лицензию GNU (GNU GPL), чтобы выпускать их под этой лицензией,— лицензию, созданную специально для того, чтобы защитить свободу всех пользователей программы.

Не все пользователи и разработчики свободных программ сочувствовали целям движения за свободное программное обеспечение. В 1998 году часть сообщества свободного программного обеспечения откололась и начала кампанию от имени “открытого исходного текста”. Этот термин первоначально был предложен, чтобы избежать возможного неверного толкования термина “свободная программа”, но очень скоро он начал ассоциироваться с философскими взглядами, совершенно отличными от взглядов движения за свободное программное обеспечение.

Одни сторонники открытого исходного текста рассматривали этот термин как “рекламную кампанию за свободное программное обеспечение”, которая привлекла бы внимание предпринимателей, подчеркивая практические выгоды, связанные с этими программами, не затрагивая в то же время вопросов добра и зла, о которых они, возможно, не хотели бы слушать. Другие сторонники просто отвергали этические и социальные ценности движения за свободное программное обеспечение. Какими бы ни были их взгляды, когда они ратовали за открытый исходный текст, они не упоминали и не защищали эти ценности. Термин “открытый исходный текст” быстро стал ассоциироваться с идеями и аргументами, основанными только на практических ценностях, таких, как создание и обладание эффективными надежными программами. Впоследствии к этому пришло большинство сторонников открытого исходного текста, и они ассоциируются с тем же. В большинстве обсуждений “открытого исходного текста” не обращают внимания на то, что хорошо и что плохо, а только на популярность и успешность; типичный пример — заметка о последних тенденциях в LinuxInsider. Небольшая часть сторонников открытого исходного текста действительно говорит, что свобода входит в состав проблемы, но их не очень-то видно за теми многими, кто этого не делает.

Эти два термина сейчас описывают почти одну и ту же категорию программ, но они отвечают взглядам, основанным на принципиально различных ценностях. Для движения за свободное программное обеспечение свободные программы — это этический императив — необходимое уважение свободы пользователей. Напротив, философия открытого исходного текста рассматривает проблемы с точки зрения того, как сделать программы “лучше” — только в практическом смысле. Согласно этой философии, несвободная программа — это неудовлетворительное решение поставленной практической задачи.

Однако для движения за свободное программное обеспечение несвободные программы — это социальная проблема, и решение — прекратить пользоваться ими и перейти на свободные программы.

“Свободная программа”. “Открытый исходный текст”. Если это одни и те же программы (или почти одни и те же), разве имеет значение, каким из двух названий вы пользуетесь? Имеет, потому что разные слова передают разные понятия. Хотя свободная программа под любым другим названием даст вам ту же свободу сегодня, установление свободы на постоянной основе зависит прежде всего от того, будут ли людей приучать ценить свободу. Если вы хотите помочь этому, то важно говорить о “свободных программах”.

Мы, участники движения за свободное программное обеспечение, не думаем о лагере открытого исходного текста как о противнике: противник — несвободные программы. Но мы хотим, чтобы люди знали, что мы стоим за свободу, так что мы не допускаем неверного причисления нас к сторонникам открытого исходного текста. Мы выступаем не за “открытый исходный текст” и не против “закрытого исходного текста”. Чтобы это было понятнее, мы избегаем этих выражений.

Практические различия между свободными программами и открытым исходным текстом

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

Во-первых, некоторые лицензии открытого исходного текста слишком жестки, так что они не могут считаться лицензиями свободных программ. Например, Open Watcom несвободен, потому что его лицензия не допускает изготовление измененных версий для частного пользования. К счастью, программ с такими лицензиями мало.

Во-вторых, требования товарных знаков, добавленные сверх авторско-правовой лицензии могут сделать программу несвободной. Например, компилятор Rust может быть несвободен, потому что условия товарного знака запрещают продавать копии, а также распространять измененные версии, если вы полностью не удалите все случаи применения товарного знака. Что же это означает на практике, неясно.

В-третьих, критерии открытого текста рассматривают только применение исходного текста. Действительно, почти все пункты Определения открытого исходного текста формулируются как условия, касающиеся лицензии исходного текста, а не того, что пользователи вольны делать. Однако люди часто описывают исполняемый файл как “открытый исходный текст” из-за того, что его исходный текст доступен в таком виде. Это приводит к путанице в парадоксальных ситуациях, когда исходный текст является открытым исходным текстом (и свободной программой), но сам исполняемый файл несвободен.

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

Более сложный случай вреден и существен. Многие продукты, содержащие компьютеры, проверяют подписи на файлах исполняемых ими программ и фактически не дают пользователям применять другие исполняемые файлы; только одна привилегированная компания может делать исполняемые файлы, которые могут работать в устройстве или пользоваться всеми его возможностями. Мы называем эти устройства “тиранами”, а практика называется “тивоизацией” — по названию продукта (TiVo), в котором мы впервые это увидели. Даже если исполняемый файл сделан из свободного исходного текста и номинально несет свободную лицензию, пользователи не могут извлекать пользу из работы с его измененными версиями, так что исполняемый файл фактически несвободен.

Многие продукты под Android содержат несвободные тивоизованные исполняемые файлы Linux, несмотря на то что его исходный текст распространяется под GNU GPL версии 2. (Чтобы запретить эту практику, мы составили GNU GPL версии 3; к несчастью, в Linux не приняли новую лицензию.) Эти исполняемые файлы, собранные из исходного текста, являющимся открытым исходным тестом и свободной программой, принято называть “открытым исходным текстом”, но это не свободные программы.

Распространенные заблуждения относительно “свободных программ” и “открытого исходного текста”

Термин “свободная программа” подвержен неверному толкованию: непреднамеренное значение “программа, которую вы можете получить по нулевой цене” подходит под этот термин так же, как подразумеваемое значение “программа, которая дает пользователю определенные свободы”. Мы решаем эту проблему, публикуя определение свободных программ и говоря: “Думайте о ‘вольной речи’, а не о ‘бесплатном пиве’”. Это не идеальное решение; оно не может полностью устранить проблему. Однозначный и корректный термин был бы лучше, если бы он не заключал в себе других проблем.

К сожалению, у всех альтернатив в английском языке есть свои проблемы. Мы рассмотрели многое из того, что нам предлагали, но ничто не было так явно “правильно”, чтобы переход на это был бы хорошей идеей. (Например, в некоторых контекстах французское и испанское слово “libre” хорошо подходит, но в Индии люди с ним совсем не знакомы). У каждой предлагавшейся замены термина “свободная программа” есть та или иная семантическая проблема — в том числе и у “открытого исходного текста”.

Официальное определение программы с открытым исходным текстом (которое опубликовано Инициативной группой открытого исходного текста и слишком длинно, чтобы приводить его здесь) было выведено (косвенно) из наших критериев свободных программ. Это не одно и тоже, оно немного шире в некоторых аспектах. Тем не менее их определение согласуется с нашим в большинстве случаев.

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

Почему люди неверно понимают это в таком смысле? Потому что таково естественное значение слов “открытый исходный текст”. Но понятием, для которого сторонники открытого исходного текста искали другое название, была вариация а тему свободной программы.

Поскольку наивное толкование “открытого исходного текста” не означает того, что подразумевают его защитники, это приводит к тому, что большинство людей неверно понимают термин. Согласно писателю Нилу Стефенсону, “Linux — это программа с ‘открытым исходным текстом’, что попросту означает, что каждый может получить копии файлов исходного текста”. Я не думаю, что он преднамеренно стремился отвергнуть или оспорить официальное определение. Я полагаю, он просто применил правила английского языка, чтобы получить смысл термина. Штат Канзас опубликовал сходное определение: “Применение программ с открытым исходным текстом (ПОИТ). ПОИТ — это программа, исходный текст которой свободно и публично доступен, хотя разные лицензионные соглашения по-разному определяют, что позволено делать с этим исходным текстом”.

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

Термин был растянут так, что включил в себя проекты оборудования, которые публикуются без патента. Свободные от патентов проекты могут быть похвальным вкладом в общество, но термин “исходный текст” не имеет к ним прямого отношения.

Сторонники открытого исходного текста пытаются бороться с этим, указывая на свое официальное определение, но для них этот корректирующий подход менее эффективен, чем для нас. У термина “свободная программа” есть два естественных значения, одно из которых мы подразумеваем, так что человек, который ухватил идею “вольная речь, а не бесплатное пиво”, никогда больше не поймет его неправильно. У термина же “открытый исходный текст” только одно естественное значение, и оно отлично от значения, которое подразумевают его сторонники. Так что нет внятного способа объяснить и оправдать его официальное определение. Это приводит к еще большей неразберихе.

Еще одно заблуждение относительно “открытого исходного текста” — мысль, что это значит “не использующее GNU GPL”. Это имеет тенденцию сочетаться с другим заблуждением,— что “свободная программа” значит “программа под GPL”. Ни то, ни другое не верно, поскольку GNU GPL удовлетворяет критериям открытого исходного текста, и большинство лицензий программ с открытым исходным текстом можно признать лицензиями свободных программ. Есть много лицензий свободных программ, отличных от GNU GPL.

Понятие “открытый исходный текст” впоследствии было перенесено на другую деятельность, например государственную, образовательную, научную, где такого понятия, как “исходный текст”, не существует, и где критерии лицензирования программ просто бессмысленны. Единственное, что объединяет эти виды деятельности — это что они тем или иным образом приглашают людей к участию. Они растянули это понятие до того, что оно означает только участие со стороны, прозрачность или даже менее того. В худших случаях оно становится пустым модным словечком.

Различные ценности могут вести к сходным заключениям— но не всегда

Радикальные группы шестидесятых годов XX века были известны своей склонностью к расколам: организации разбивались из-за несогласия в деталях стратегии, и две дочерние группы считали друг друга противниками несмотря на то, что основные цели и ценности у них были сходны. Правое крыло всячески раздувало это и пользовалось этим для критики левых вообще.

Некоторые пытаются умалить движение за свободное программное обеспечение, сравнивая наши разногласия с “открытым исходным текстом” с разногласиями между теми радикальными группами. Они переворачивают всё с ног на голову. Мы не согласны с лагерем открытого исходного текста в основных целях и ценностях, но их и наши взгляды приводят во многих случаях к одному и тому же практическому поведению — такому, как разработка свободных программ.

В результате люди из движения за свободное программное обеспечение и из лагеря открытого исходного текста часто работают вместе над практическими проектами — такими, как разработка программ. Замечательно, что такие разные философские взгляды могут так часто мотивировать разных людей на участие в одних и тех же проектах. Тем не менее есть ситуации, в которых эти принципиально различные взгляды ведут к совершенно разным действиям.

Идея открытого исходного текста состоит в том, что разрешение пользователям изменять и распространять программы сделает их эффективнее и надежнее. Но это не гарантировано. Разработчики несвободных программ не обязательно некомпетентны. Иногда они выпускают программу, которая эффективна и надежна, хотя она и не уважает свободу пользователей. Активисты свободного программного обеспечения и энтузиасты открытого исходного текста реагируют на это очень по-разному.

Чистый энтузиаст открытого исходного текста — тот, кто совершенно не подвержен влиянию идеалов свободного программного обеспечения, скажет: “Я не думал, что вы сумеете заставить программу работать так хорошо без применения нашей модели разработки, но вы это сделали. Как мне получить копию?” Такое отношение будет поощрять схемы, которые отнимают у нас свободу, и приведет к ее утрате.

Активист свободного программного обеспечения скажет: “Ваша программа очень привлекательна, но не стоит моей свободы. Так что я обойдусь без нее. Я буду выполнять свою работу как-то по-другому и поддержу проект, который развивает свободную замену вашей программе”. Раз мы ценим свою свободу, мы должны действовать, чтобы поддержать и защитить ее.

Эффективная надежная программа может быть плохой

Мысль, будто мы хотим, чтобы программы были эффективны и надежны, следует из предположения, что они создаются, чтобы служить своим пользователям. Если программа эффективна и надежна, это значит, что она служит им лучше.

Но говорить, что программа служит своим пользователям, можно только тогда, когда она уважает их свободу. Что, если программа разрабатывается для того, чтобы заковать пользователей в кандалы? Тогда эффективность означает, что цепи жмут сильнее, а надежность — что их труднее сбросить. Вредоносные функции, такие, как слежка за пользователями, ограничение пользователей, лазейки и принудительные обновления обычны для несвободных программ, и некоторые сторонники открытого исходного текста пытаются реализовать их в программах с открытым исходным текстом.

Под давлением компаний видео- и звукозаписи программы для личного пользования разрабатываются всё в большей степени специально для того, чтобы ограничить пользователей. Эта злонамеренная черта известна как DRM, или “цифровое управление ограничениями” (см. DefectiveByDesign.org). Это противоположно духу свободы, которую свободные программы стремятся предоставить. И не только духу: поскольку цель DRM состоит в том, чтобы попрать вашу свободу, разработчики DRM стараются затруднить, сделать невозможным или даже противозаконным для вас внесение изменений в программу, которая реализует DRM.

И все же некоторые сторонники открытого исходного текста предложили программы с “DRM с открытым исходным текстом”. Их идея — в том, что, публикуя исходный текст программ, разработанных, чтобы ограничивать вам доступ к шифрованным носителям, и позволяя другим править его, они произведут более эффективные и надежные программы для ограничения пользователей — таких, как вы. А потом такая программа была бы доставлена вам в устройствах, которые не позволяют вам изменять ее.

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

Боязнь свободы

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

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

Когда приверженцы открытого исходного текста говорят о чем-либо более глубоком, обычно это бывает мысль о том, что исходный текст приносится “в дар” человечеству. Если представлять это как особое доброе деяние, идущее дальше нравственных требований, то это предполагает, что распространение несвободных программ без исходного кода правомерно с точки зрения нравственности.

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

Рано или поздно этих пользователей пригласят вернуться назад к несвободным программам ради какой-нибудь практической выгоды. Бесчисленные компании стремятся предложить такое искушение, некоторые даже предлагают бесплатные копии. В каком случае пользователи будут отказываться? Только если они научились ценить свободу, которую им дают свободные программы,— ценить свободу как таковую, а не технические и практические удобства конкретной свободной программы. Чтобы разнести эту мысль, нам необходимо говорить о свободе. Подход “умалчивания” по отношению к предпринимателям в определенной мере может быть полезен для сообщества, но это опасно, если становится настолько обычным, что любовь к свободе начинают считать эксцентричностью.

Эта опасная ситуация — в точности то, что у нас есть. Большинство людей, занимающихся свободными программами, особенно поставщики, мало говорят о свободе — обычно по причине стремления быть “более приемлемыми для деловых кругов”. Почти все дистрибутивы операционной системы GNU/Linux добавляют несвободные пакеты программ к основной свободной системе, и они приглашают пользователей рассматривать это как достоинство, а не изъян.

Несвободные дополнительные программы и частично несвободные дистрибутивы операционной системы GNU/Linux находят благодатную почву потому, что большинство в нашем сообществе не настаивает на свободе своих программ. Это не случайно. Большинство пользователей GNU/Linux познакомилось с системой через обсуждение “открытого исходного текста”, в ходе которого не говорится, что свобода — это цель. Подходы, которые не отстаивают свободу, и слова, которые не говорят о свободе, идут рука об руку, поддерживая друг друга. Чтобы преодолеть эту тенденцию, нам нужно больше, а не меньше, говорить о свободе.

“FLOSS” и “FOSS”

Выражения “FLOSS” и “FOSS” используются, чтобы сохранять нейтралитет между свободными программами и открытым исходным текстом. Если ваша цель — нейтралитет, то “FLOSS” достигает этого лучше, чем “FOSS”, потому что оно действительно нейтрально. Но если вы хотите отстаивать свободу, то нейтральные выражения не подходят. В этом случае вам нужно показывать людям, что вы выступаете в поддержку свободы.

Соперничество в умах

“Свободный” и “открытый” борются за известность. Свободные программы и открытый исходный текст — разные идеи, но большинство людей подходят к программам так, что эти идеи соревнуются за одну и ту же нишу понятий. Когда люди привыкают говорить и думать “открытый исходный текст”, это мешает им вникать в философию движения за свободные программы и думать о ней. Если они уже стали ассоциировать нас и наши программы со словом “открытый”, нам потребоваться встряхнуть их в интеллектуальном отношении, прежде чем они признают, что мы отстаиваем что-то другое. Любая деятельность, которая выдвигает слово “открытый”, как правило, расширяет занавес, который скрывает идеи движения за свободные программы.

Таким образом, активисты свободных программ благоразумно уменьшают свое участие в деятельности, которая называет себя “открытой”. Даже если деятельность сама в себе и по себе хороша, каждый вклад, который вы вносите, причиняет небольшой вред с этой стороны содействием идее открытого исходного текста. Есть большое количество другой деятельности, которая называет себя “свободной”. Каждый вклад в эти проекты приносит небольшую дополнительную пользу с этой стороны. Когда можно выбирать из такого количества проектов, почему не выбрать тот, который приносит дополнительную пользу?

Заключение

Когда сторонники открытого исходного текста втягивают новых пользователей в наше сообщество, мы, активисты свободного программного обеспечения, должны взять на свои плечи задачу привлечения их внимания к вопросу свободы. Чаще и громче, чем когда-либо, мы должны говорить: “Это свободная программа, она дает вам свободу!” Каждый раз, когда вы говорите “свободная программа” а не “открытый исходный текст”, вы помогаете нашему делу.

Примечания

  • Джо Барр написал статью под заглавием Живи и позволь разрешать, которая отражает его точку зрения на этот вопрос.
  • Работа Лакхани и Вольфа о мотивации разработчиков свободных программ говорит, что значительная доля мотивируется взглядами, согласно которым программы должны быть свободными. И это несмотря на то, что они опрашивали разработчиков на SourceForge — сайте, который не разделяет мнения о том, что это — вопрос этики.