Почему программы не должны ограничивать сферу своего применения
Ричард СтолменСлова “свободные программы” означают, что программы контролируются их пользователями, а не наоборот. В точности это означает, что программы приходят с четырьмя существенными свободами, которых заслуживают пользователи программ. В начале этого списка стоит свобода 0 — свобода выполнять программу, как вам угодно, чтобы делать то, что вам угодно.
Некоторые разработчики предлагают помещать в лицензии программ ограничения на пользование, чтобы запретить применение программ в некоторых целях, но этот путь был бы катастрофичен. В этой статье разъясняется, почему свобода 0 не должна ограничиваться. Условия, ограничивающие применение программы, не сильно помогли бы в достижении их целей, но могли бы разрушить сообщество свободного программного обеспечения.
Прежде всего рассмотрим, что означает свобода 0. Она означает, что при распространении программы не ограничивается то, как вы ею пользуетесь. Это не позволяет вам нарушать законы. Например, мошенничество является в США преступлением — это закон, который, как я думаю, уместен и правилен. Что бы ни говорилось в лицензии свободной программы, применение свободной программы для совершения вами мошеннических действий не избавит вас от судебного преследования.
Условие против мошенничества в лицензии было бы избыточным в стране, где мошенничество является преступлением. Но почему бы не добавить условие против применения программы для пыток — практики, на которую государства часто закрывают глаза, когда она проводится “органами безопасности”?
Условие против пыток не работало бы, потому что соблюдения требований любой лицензии свободных программ добиваются с помощью государства. Государство, которое желает проводить пытки, будет игнорировать лицензию. Когда жертвы пыток в США пытаются подать в суд на государственные органы США, суды закрывают дело на том основании, что обращение с ними составляет секрет национальной безопасности. Если бы разработчик программы попытался подать в суд на государственные органы США за применение программы для пыток вопреки условиям лицензии, это дело тоже закрыли бы. Государства вообще очень изобретательны, когда нужно сфабриковать юридические оправдания того, что они хотят делать, как бы ужасно это ни было. Предприятия с сильным политическим влиянием тоже это умеют.
А что, если бы условие было против какой-то особой частной деятельности? Например, в PETA предложили лицензию, которая запрещала бы применение программ для причинения страданий позвоночным животным. Или могло бы быть условие против применения определенной программы для создания и публикации изображений Магомета. Или против ее применения в экспериментах с эмбриональными стволовыми клетками. Или против применения для несанкционированного копирования музыкальных записей.
Неясно, можно ли было бы обеспечить соблюдение этого. Лицензии свободных программ опираются на авторское право, а пытаться таким образом наложить условия на применение значит раздвигать пределы того, что допускает авторское право,— и раздвигать опасным образом. Хотели бы вы, чтобы в книгах были лицензионные условия относительно того, как вы можете применять сведения из этих книг?
Что, если бы можно было законным образом требовать соблюдения таких условий — было ли бы это хорошо?
На самом деле у разных людей есть очень разные этические представления о деятельности, которую можно проводить с помощью программ. Я, например, думаю, что эти четыре необычных вида деятельности законны и не должны быть запрещены. В частности, я поддерживаю применение программ для медицинских экспериментов над животными и для обработки мяса. Я защищаю права человека в отношении активистов прав животных, но я не согласен с ними; я бы не хотел, чтобы PETA добились введения таких ограничений на применение программ.
Поскольку я не пацифист, я также не согласен с пунктом о “запрете на военное применение”. Я порицаю вооруженную агрессию, но я не порицаю ответную оборону. На самом деле мне доводилось оказывать поддержку действиям, предпринимавшимся с целью убедить различные армии перейти на свободные программы, поскольку они могут проверить их на лазейки и функции слежки, которые могли бы поставить национальную безопасность под угрозу.
Поскольку я не против предпринимательства вообще, я выступал бы против ограничений коммерческого применения. Система, которой мы могли бы пользоваться только для отдыха, досуга и обучения, недоступна для большей части из того, что мы делаем на компьютерах.
Выше я высказал кое-что из своих взглядов на другие политические проблемы, не связанные с проблемой свободных программ — на то, какие виды деятельности являются, а какие не являются несправедливыми. Ваши взгляды на них могут быть другими, и в этом-то все и дело. Если бы мы допускали программы с ограничениями на применение в качестве частей такой свободной операционной системы, как GNU, люди выдвинули бы множество различных ограничений на применение. Были бы программы, запрещенные для применения в обработке мяса, программы, запрещенные только для свинины, программы, запрещенные только для говядины, и программы, ограниченные кошерной пищей. Кто-нибудь, кто ненавидит шпинат, мог бы лицензировать программу, допускающую применение с любыми овощами, кроме шпината, а программа поклонника Попая могла бы разрешить применение только для шпината. Были бы музыкальные программы, допускающие только поп-музыку, и другие, допускающие только классическую музыку.
Результатом была бы система, на которую нельзя было бы рассчитывать для применения ни в каких целях. Для каждой задачи, которую вы хотите решать, вам пришлось бы проверять множество лицензий, чтобы понять, какие части вашей системы недоступны для решения этой задачи. Не только для компонентов, которые вы применяете непосредственно, но и для сотен компонентов, с которыми они компонуются, вызываются или общаются.
Чем на это ответили бы пользователи? Я думаю, большинство из них стало бы пользоваться несвободными системами. Допущение в свободных программах ограничений на применение главным образом подталкивало бы пользователей к несвободным программам. Пытаться с помощью ограничений на применение заставить пользователей прекратить что-то делать было бы также нерезультативно, как проталкивать что-нибудь сквозь длинную прямую мягкую вареную макаронину. Как об этом сказал один остряк, это как если бы “кто-то с очень маленьким молоточком смотрел на всякую проблему как на гвоздь, не признавая даже, что гвоздь непомерно велик для этого молоточка”.
Это хуже, чем нерезультативно: это гнусно, потому что разработчики программ не должны пользоваться такой властью над тем, что делают пользователи. Представьте себе продажу ручек с условиями о том, что вы можете ими писать; это было бы омерзительно, и мы не должны поддерживать этого. Так же и с программами общего назначения. Если вы делаете что-то, что полезно в общем, например ручку, то люди будут пользоваться этим, чтобы писать всевозможные вещи, даже такие ужасные, как приказы применить пытки к диссиденту; но у вас не должно быть власти контролировать деятельность людей с помощью ваших ручек. То же самое и с текстовым редактором, компилятором или ядром.
Возможность определить, для чего можно применять ваши программы, у вас есть: когда вы решаете, какие функции реализовать. Вы можете написать программы, которые предназначаются главным образом для целей, которые вы считаете положительными, и у вас нет обязательств добавлять какие бы то ни было особенности, которые могли бы быть полезны именно для тех видов деятельности, которых вы не одобряете.
Вывод прост: программа не должна ограничивать то, какие задачи ее пользователи решают с ее помощью. Свобода 0 должна быть полной. Нам нужно остановить пытки, но нам нельзя делать это с помощью лицензий на программы. Настоящая задача лицензий на программы — устанавливать и защищать свободу пользователей.