Свободные программы стали еще важнее
Ричард СтолменС 1983 года движение за свободные программы выступает за свободу пользователей компьютеров — за то, чтобы пользователи контролировали программы, которыми пользуются, а не наоборот. Когда программа уважает свободу и сообщество пользователей, мы называем ее “свободной программой”.
Мы также подчеркиваем, что мы говорим о свободе, а не стоимости. Некоторые несвободные программы, такие как Photoshop, очень дороги; другие, такие как приложение Uber, доступны бесплатно — но это второстепенная подробность. В любом случае они дают разработчику программы власть над пользователями — власть, которой не должно быть ни у кого.
Эти две программы объединяет другое: и та, и другая вредоносна. Другими словами, в обеих есть функции для ущемления пользователя. В наши дни несвободные программы часто вредоносны потому, что власть развращает разработчиков. На апрель 2023 года в этом каталоге перечислены около 600 примеров различных вредоносных функций, но это, безусловно, только верхушка айсберга.
Когда программы свободны, пользователи их контролируют, как лично, так и коллективно. Так что они контролируют то, что делают их компьютеры (в предположении, что эти компьютеры лояльны и выполняют то, что им велят программы пользователей).
Когда программы несвободны, программа контролирует пользователей, а какое-то другое лицо (разработчик или “владелец”) контролирует программу. Так что несвободная программа дает своему разработчику власть над пользователями. Это само по себе несправедливо, более того, это подталкивает разработчика на другие несправедливости в отношении пользователя.
Даже когда несвободные программы не откровенно вредоносны, у их разработчиков есть стимул делать их вызывающими зависимость, контролирующими и манипулирующими пользователем. Можно говорить, как это делает автор статьи, что у разработчиков есть моральная обязанность не делать этого, но обычно они преследуют свои интересы. Если вы не хотите, чтобы это происходило, убедитесь, что программу контролируют ее пользователи.
Свобода означает контроль над своей собственной жизнью. Если вы применяете программу в процессе своей жизнедеятельности, ваша свобода зависит от того, контролируете ли вы эту программу. Вы заслуживаете контроля над программами, которыми пользуетесь, тем более — когда вы применяете их для того, что в вашей жизни важно.
Для того, чтобы пользователи контролировали программу, требуется четыре важнейших свободы.
(0) Свобода выполнять программу как вам угодно, в любых целях.
(1) Свобода изучать “исходный текст” программы и править его, чтобы программа проводила ваши вычисления как вам угодно. Программы пишутся программистами на языках программирования (сочетающих естественные языки с алгеброй) — и это образует форму программы, которую называют “исходный текст”. Всякий, кто умеет программировать и у кого есть программа в форме исходного текста, может прочесть исходный текст и понять, как она работает, а также внести изменение. Когда все, что у вас есть — это исполняемая форма, последовательность чисел, которые компьютер эффективно выполняет, но которые человеку понимать крайне трудно, то разбираться в программе и править ее в этом виде трудно до невозможности.
(2) Свобода копировать и распространять свободные копии когда вам угодно. (Это не обязанность; вы делаете это по своему выбору. Если программа свободна, это не значит, что кто-то обязан предлагать вам копию или что вы обязаны предлагать копию ему. Распространение программы среди пользователей без свободы несправедливо по отношению к ним; однако решение не распространять программу — пользоваться ею частным порядком — не сопряжено с несправедливостью в отношении кого-либо.)
(3) Свобода копировать и распространять свои измененные версии когда вам угодно.
Первые две свободы означают, что каждый пользователь может осуществлять индивидуальный контроль над программой. Другие две свободы позволяют любой группе пользователей вместе осуществлять коллективный контроль над программой. Если есть все четыре свободы, пользователи полностью контролируют программу. Если хотя бы одной из них недостает, программа является несвободной.
Для практической деятельности применяются также другие виды произведений, в том числе рецепты приготовления блюд, такие образовательные произведения, как учебники, такие справочные произведения, как словари и энциклопедии, а также шрифты для отображения абзацев текста, электрические схемы, по которым люди делают аппаратуру, шаблоны для изготовления прикладных (не только декоративных) объектов на трехмерном принтере. Поскольку это не программы, движение за свободные программы, строго говоря, на них не распространяется; однако к ним применимы те же самые рассуждения, которые приводят к тому же самому выводу: эти произведения должны нести те же четыре свободы.
Свободная программа позволяет вам копаться в ней, чтобы заставить ее делать то, что вы хотите (или чтобы она прекратила делать то, что вам не по вкусу). Может быть, это звучит смешно, если вы привыкли к несвободным программам, опечатанному ящику, но в мире свободы это обычное дело; это хороший способ учиться программировать. Даже традиционному американскому развлечению, самодеятельной доработке автомобилей, мешает то, что машины теперь содержат несвободные программы.
Несправедливость несвободных программ
Если пользователи не контролируют программу, программа контролирует пользователей. Если программа несвободна, есть какое-то лицо, разработчик или “владелец” программы, которое контролирует программу — и таким образом осуществляет власть над ее пользователями. Несвободная программа — иго, орудие несправедливой власти.
В возмутительных случаях (хотя такие случаи стали вполне обычными) несвободные программы составляют так, чтобы они шпионили за пользователями, ограничивали их, подвергали цензуре и злоупотребляли ими. Например, операционная система ай-штучек Apple делает все это, как и Windows на портативных устройствах с процессорами ARM. В Windows, встроенных программах мобильных телефонов и Google Chrome для Windows есть универсальный черный ход, который позволяет некоторой компании удаленно изменять программы, не спрашивая разрешения. В Amazon Kindle есть черный ход для удаления книг.
Применение несвободных программ в “Интернете вещей” обратило бы его в “Интернет телеторговцев”, а также “Интернет соглядатаев”.
С целью покончить с несправедливостью несвободных программ движение за свободные программы разрабатывает свободные программы с тем, чтобы пользователи могли освободить себя. Мы приступили к этому в 1984 году, разрабатывая свободную операционную систему GNU. Сегодня GNU работает на миллионах компьютеров, главным образом в виде комбинации GNU/Linux.
Передача программы пользователям без свободы несправедлива по отношению к ним; однако решение не распространять программу не сопряжено с несправедливостью в отношении кого-либо. Если вы пишете программу и пользуетесь ею частным порядком, это не делает другим ничего плохого (вы упускаете возможность сделать добро, но это не то же самое, что делать зло). Таким образом, когда мы говорим, что все программы должны быть свободны, мы подразумеваем, что каждая копия должна приходить с четырьмя свободами, но не подразумеваем, что у кого-то есть обязанность предлагать вам копию.
Несвободные программы и услуги-замены программ
Несвободные программы были первым способом, которым компании могли отнять у людей контроль над вычислениями. Сегодня есть другой способ под названием услуга-замена программ. Это значит, что вы даете чужому серверу решать ваши собственные вычислительные задачи.
Услуга-замена программ не означает, что программы на сервере несвободны (хотя часто так и есть). Однако пользование ею приводит к тем же несправедливостям, что и пользование несвободной программой: это две дороги в одно и то же нехорошее место. Возьмем в качестве примера такой услуги службу перевода: пользователь посылает текст на сервер, а сервер переводит его (скажем, с английского на испанский) и отсылает перевод пользователю. Так вот, выполнение перевода находится под контролем оператора сервера, а не пользователя.
Если вы пользуетесь услугой-заменой программ, оператор сервера контролирует ваши вычисления. Это требует вверять все участвующие в обработке данные оператору сервера, которого будут также принуждать показывать их государству — так кого же, в конце концов, этот сервер обслуживает?
Первичные и вторичные несправедливости
Когда вы пользуетесь несвободными программами или услугами-заменами программ, прежде всего вы поступаете дурно с самим собой, потому что это дает какому-то лицу несправедливую власть над вами. Вы должны уйти от этого ради самих себя. Это также означает несправедливость в отношении других, если вы обещаете не обмениваться. Держать такое обещание — зло, а не сдержать его — меньшее зло; чтобы быть по-настоящему честным, вам вообще не следует давать этого обещания.
Есть случаи, когда пользование несвободными программами оказывает прямое давление, под которым другие делают то же. Характерный пример — Skype: когда один человек пользуется несвободной программой-клиентом Skype, от другого человека тоже требуется пользоваться этой программой — таким образом оба уступают свою свободу (эта же проблема есть у Google Hangouts). Пользоваться такими программами нельзя даже предлагать. Мы должны отказываться от пользования такими программами даже на короткий срок, даже на чужом компьютере.
Другой вред от применения несвободных программ и услуг-замен программ заключается в том, что это вознаграждает агрессора, поощряя дальнейшее развитие этой программы или “службы” и подводя в свою очередь еще большее число людей под пяту компании.
Все формы косвенного вреда усиливаются, когда пользователь представляет собой общественное учреждение или учебное заведение.
Свободные программы и государство
Общественные органы существуют для народа, а не сами для себя. Когда они проводят вычисления, они делают это для народа. Их обязанность — поддерживать полный контроль над этими вычислениями, чтобы они могли гарантировать, что они проводятся для народа должным образом (в этом состоит вычислительный суверенитет государства). Они никогда не должны допускать, чтобы контроль над государственными вычислениями попал в частные руки.
Чтобы поддерживать контроль над народными вычислениями, общественные органы не должны делать это с помощью несвободных программ (программ, контролируемых кем-либо, кроме государства). И они не должны доверять вычисления службам, запрограммированным и управляемым кем-то, отличным от государства, поскольку это была бы услуга-замена программы.
В одном жизненно важном случае у несвободной программы нет вообще никакой защиты — при защите от ее разработчика. А разработчик может помогать другим обходить меры безопасности. Microsoft показывает ошибки в Windows АНБ (государственному агентству цифрового шпионажа США), перед тем как их исправить. Мы не знаем, поступает ли так же Apple, но эта компания находится под таким же давлением государства, как и Microsoft. Если правительство любой другой страны пользуется такими программами, это ставит под угрозу национальную безопасность. Вы хотите, чтобы АНБ взломала компьютеры вашего правительства?См. наши рекомендации по государственной политике поддержки свободных программ.
Свободные программы и образование
Школы (т.е. вся образовательная деятельность) оказывают влияние на будущее общества посредством того, чему они учат. Они должны обучать исключительно свободным программам, чтобы использовать свое влияние во благо. Обучать несвободной программе — все равно что прививать зависимость, а это идет вразрез с задачами образования. Обучая пользоваться свободными программами, школы будут направлять общество к свободному будущему и помогать талантливым программистам овладеть этим мастерством.
Они будут вырабатывать у учащихся привычку сотрудничать, помогать другим. В каждом классе должно быть правило: “Учащиеся! Этот класс — место, где мы обмениваемся своими знаниями. Если вы приносите в класс программу, вы не можете держать ее при себе — вы должны обмениваться копиями с остальным классом — в том числе исходным текстом программы на случай, если кто-то еще захочет изучить его. Стало быть, приносить в класс несвободные программы не позволено, кроме как для обратной разработки этих программ”.
Разработчики несвободных программ хотели бы, чтобы мы наказывали учащихся, у которых в душе достаточно добра, чтобы обмениваться программами, и пресекать действия тех, кто достаточно любознателен и хочет изменить программы. Это означает плохое образование. Более подробно см. наш раздел о применении свободных программ в школах.
Свободные программы: не просто “преимущества”
Меня часто просят описать “преимущества” свободных программ. Но слово “преимущества” слишком слабо, когда речь идет о свободе. Жизнь без свободы — угнетение, и к вычислительной технике это относится так же, как и к любой другой деятельности в нашей жизни. Мы должны отказываться передавать разработчикам программ или вычислительных услуг контроль над вычислениями, которые мы проводим. Это правильно из эгоистических соображений; но не только из эгоистических.
В свободу входит свобода сотрудничества с другими. Отказ людям в этой свободе означает, что их оставляют беспомощными, а это начало системы угнетения их. Мы, члены сообщества свободного программного обеспечения, очень хорошо знаем о том, как важна свобода сотрудничества, поскольку наша работа состоит в организованном сотрудничестве. Если знакомая приходит к вам в гости и видит, что вы пользуетесь программой, она может попросить копию. Программа, которая не дает вам себя перераспространять или заявляет, что вам этого “не полагается”, антисоциальна.
В вычислительной технике сотрудничество подразумевает перераспространение точных копий программы среди других пользователей. Оно подразумевает также распространение среди них версий с вашими изменениями. Свободные программы поощряют эти формы сотрудничества, в то время как несвободные программы их запрещают. Они запрещают перераспространение копий, а отказывая пользователям в исходном тексте, они не дают им вносить изменения. Услуги-замены программ приводят к тому же: если ваши вычисления проводятся в сети на чужом сервере, чужой копией программы, то вы не можете заглянуть в нее, потрогать программу, которая проводит ваши вычисления, так что вы не можете ни перераспространять, ни изменять ее.
Заключение
Мы заслуживаем того, чтобы иметь контроль над своими вычислениями. Как мы можем завоевать его?
- Отвергая несвободные программы на компьютерах, которыми мы владеем или регулярно пользуемся, и отвергая услуги-замены программ.
- Разрабатывая свободные программы (когда мы программисты).
- Отказываясь разрабатывать или содействовать несвободным программам или услугам-заменам программ.
- Распространяя эти идеи среди других.
- аргументированно отказываясь, когда нас приглашают работать с несвободной программой.
Вместе с тысячами пользователей мы делаем это с 1984 года, и именно поэтому у нас теперь есть свободная операционная система GNU/Linux, которой может пользоваться каждый — и программист, и непрограммист. Вступайте в наши ряды в качестве программиста или активиста. Сделаем свободными всех пользователей компьютеров!
Существенно отредактированная версия этой статьи была опубликована в Уайеред.
См. 14-минутный видеодоклад по этим вопросам.