Почему программы должны быть свободны
Ричард СтолменСуществование программ неизбежно поднимает вопрос о том, как должны приниматься решения по их использованию. Например, представьте, что некто, у кого есть копия программы, встречает того, кто хотел бы скопировать ее себе. Они могут скопировать программу, но кто должен решать, произойдет ли это? Двое участников? Или третья сторона, называемая “правообладателем”?
Разработчики программ обычно рассматривают эти вопросы в предположении, что критерий правильного ответа — максимизация их доходов. Политическая власть деловых кругов привела к тому, что государство признало и этот критерий, и решение, предложенное разработчиками: чтобы у программы был владелец, как правило, корпорация, связанная с ее разработкой.
Я хотел бы взглянуть на этот же вопрос, взяв в качестве критерия процветание и свободу общества в целом.
Не стоит искать ответа на вопрос в сегодняшней системе права: законы должны соответствовать этике, а не наоборот. Точно так же не решает вопроса и существующая практика, хотя она в состоянии подсказать возможные решения. Суждение можно вынести, только поняв, кому помогает, а кому вредит признание прав владельцев программ, почему это происходит и в какой мере. Другими словами, нам следует проанализировать затраты и выигрыш по отношению к обществу в целом, принимая во внимание личную свободу в той же степени, что и производство материальных ценностей.
В этом очерке я опишу последствия существования владельцев и покажу, что это приводит к убыткам. Я прихожу к заключению, что долг программистов — поощрять других обмениваться друг с другом, распространять, изучать и улучшать программы, которые мы пишем; другим словами, писать “свободные” программы(1).
Как владельцы оправдывают свою власть
Те, кому выгодна существующая система, в которой программы являются собственностью, выдвигают два аргумента в поддержку своих претензий на владение программой: эмоциональный и экономический.
Эмоциональный выглядит так: “Я трудился в поте лица, вложил в эту программу свою душу, свое сердце. Она появилась благодаря мне, она моя!”
Этот аргумент не требует серьезного опровержения. Чувство привязанности — одно из тех, которые программисты могут культивировать, когда им это удобно, но его можно избежать. Посмотрите, к примеру, как охотно те же самые программисты обычно уступают все права крупным корпорациям в обмен на заработную плату; эмоциональная привязанность таинственным образом исчезает. Вспомните, напротив, о великих художниках и мастерах средних веков, которые даже не подписывали своих работ. Для них имя художника было не важно. Значение имело то, что работа сделана, и цель, которой она будет служить. Такие взгляды преобладали сотни лет.
Экономический аргумент выглядит так: “Я хочу разбогатеть (обычно это неточно описывают как ‘заработать на жизнь’), а если вы не позволите мне разбогатеть на программировании, я не буду программировать. Все остальные похожи на меня, поэтому никто вообще не будет писать программы. И тогда вы останетесь безо всяких программ!” Эта угроза обычно замаскирована под дружеский совет мудреца.
Позднее я разъясню, почему эта угроза — блеф. Сначала я хочу рассмотреть неявное предположение, которое лучше видно в другой формулировке этого аргумента.
Эта формулировка начинается со сравнения общественной пользы между несвободной программой и отсутствием программы вообще, далее делается вывод, что в целом разработка несвободных программ полезна и должна поощряться. Посылка ошибочна, поскольку сравниваются лишь два возможных исхода — несвободные программы и отсутствие программ — и предполагается, что других возможностей нет.
В условиях авторского права на программы разработка программ обычно связана с наличием владельца, контролирующего их использование. Пока эта связь существует, нам часто приходится выбирать между несвободными программами и отсутствием программ. Однако эта связь не является ни естественной, ни неизбежной; она является следствием конкретного решения в области социально-правовой политики, которое мы оспариваем: решения признать имущественные права. Если ставить вопрос как выбор между несвободными программами и отсутствием программ, то решение напрашивается само собой.
Аргументы против наличия владельцев
Вопрос, который нас интересует — должна ли разработка программ быть связана с наличием владельцев, ограничивающих их использование?
Чтобы решить его, мы должны обсудить социальные последствия обоих видов деятельности независимо: последствия от разработки программ (независимо от условий их распространения) и последствия от ограничения их использования (подразумевается, что программы уже разработаны). Если один из этих видов деятельности полезен, а другой вреден, то нам лучше разорвать связь между ними и заниматься только полезным.
Иначе говоря, если ограничение обмена программой, которая уже разработана, наносит вред всему обществу, то порядочный разработчик откажется от возможности так поступать.
Чтобы определить последствия ограничений на обмен, нам потребуется сравнить ценность для общества ограниченной (т. е. несвободной) программы и той же программы, доступной каждому. Это значит сравнить два возможных мира.
Этот анализ также дает ответ на выдвигаемое иногда простое возражение, что “выгода вашего соседа, которому вы скопируете программу, компенсируется вредом, наносимым владельцу”. Это возражение предполагает, что выгода и ущерб равны по величине. Наш анализ сопоставляет эти величины и показывает, что выгода гораздо больше.
Чтобы разъяснить этот аргумент, давайте применим его к другой отрасли: прокладке дорог.
Можно финансировать строительство всех дорог за счет сбора пошлин. Это привело бы к строительству пунктов сбора пошлин на каждом углу. Такая система предоставила бы прекрасный стимул к улучшению дорог. Она также хороша тем, что пользователи каждой отдельно взятой дороги платят именно за нее. Однако пункт сбора пошлин — это искусственное препятствие размеренной езде,— искусственное потому, что не является следствием принципов действия автомобиля или дороги.
Сравнивая пользу от свободных дорог с пользой от тех, на которых взимается пошлина, мы обнаруживаем, что (при прочих равных условиях) дороги без пунктов сбора дешевле прокладывать и дешевле эксплуатировать, они эффективнее и безопаснее(2). В бедной стране пошлины могут сделать дороги недоступными для многих граждан. Следовательно, беспошлинные дороги предлагают обществу больше выгод при меньшей стоимости, они предпочтительны для общества. Поэтому обществу следует принять решение финансировать строительство дорог по-другому, без помощи пунктов сбора пошлин. Пользование дорогой, как только ее построят, нужно делать свободным.
Когда защитники сбора пошлины предлагают ее исключительно как способ получения средств, они искажают оценку доступных альтернатив. Пункты сбора действительно приносят средства, но они ведут и к другому: фактически, они ухудшают дорогу. Дорога с пошлинами не так хороша, как свободная. Большее количество или технически лучшее качество дорог может не быть улучшением, если означает замену свободных дорог дорогами со сбором пошлин.
Безусловно, деньги для строительства свободной дороги необходимы, и общество должно так или иначе заплатить. Однако из этого не следует, что пункты сбора неизбежны. Мы, кому во всяком случае придется платить, получим больше за те же деньги, если приобретем свободную дорогу.
Я не утверждаю, что дорога, где взимают пошлины, хуже, чем отсутствие дорог вообще. Так было бы, если бы пошлина была столь высока, что почти никто не стал бы пользоваться дорогой — но вряд ли сборщики пошлин будут так поступать. Однако поскольку пункты сбора пошлин вызывают значительные неудобства и расходы, то лучше собирать средства так, чтобы это мешало меньше.
Чтобы применить этот аргумент к разработке программ, сейчас я покажу, что “пункты сбора пошлины” для полезных программ обходятся обществу недешево: они удорожают создание и распространение программ и снижают их эффективность и удобство пользования ими. Отсюда следует, что разработка программ должна стимулироваться как-то по-другому. Затем я изложу другие методы стимулирования и (в пределах действительной необходимости) финансирования разработки программ.
Вред от ограничений на программы
Представим на минуту, что программа уже разработана, все необходимые для ее разработки выплаты уже сделаны, и теперь общество должно решить, сделать ее несвободной или разрешить свободный обмен и пользование. Предположим, что наличие этой программы желательно(3).
Ограничения на передачу и модификацию программы не могут помочь в ее применении. Они могут лишь помешать. Следовательно, эффект может быть только отрицательным. Но насколько он велик? И какого рода?
Из таких препятствий проистекает три вида материального ущерба:
- Меньшее количество людей воспользуется программой.
- Никто из пользователей не сможет исправить или адаптировать программу.
- Другие разработчики не смогут учиться на этой программе или опираться на нее в новых работах.
У каждого вида материального ущерба есть сопутствующая форма психологического вреда. Под этим понимается действие, которое решения людей оказывают на их дальнейшие ощущения, склонности и предрасположенности. Затем эти перемены в стиле мышления влияют на их отношения с окружающими и могут иметь осязаемые последствия.
Упомянутые три вида материального ущерба уничтожают часть пользы, которую могла бы принести программа, но не сводят ее к нулю. Если они уничтожают почти всю ценность программы, то ее написание наносит обществу вред, состоящий по максимуму из затрат на разработку этой программы. Можно показать, что программа, которую выгодно продавать, должна приносить некоторый чистый прямой материальный доход.
Однако с учетом сопутствующего психологического ущерба вред, который может нанести разработка несвободных программ, ничем не ограничен.
Затруднение пользования программами
Первый уровень вреда — затруднение простого пользования программой. Предельная стоимость копии программы близка к нулю (и вы можете оплатить эту стоимость, проделав работу самостоятельно), так что в условиях свободного рынка ее цена была бы почти нулевой. Лицензионная плата значительно сдерживает применение программы. Если полезная многим программа несвободна, гораздо меньшее число людей воспользуется ею.
Легко показать, что общая польза от программы для общества снижается, если ей назначить владельца. Каждый потенциальный пользователь программы, встав перед необходимостью платить, чтобы воспользоваться ею, может принять решение заплатить, но может и отказаться от пользования программой. Когда пользователь решает заплатить, происходит перенос ценностей от одной стороны к другой, суммарное достояние не меняется. Но каждый раз, когда кто-то отказывается от пользования программой, это наносит ему вред, не принося никому выгоды. Сумма отрицательных чисел и нулей всегда отрицательна.
Но это не сокращает затраты труда на разработку программы. В результате производительность процесса в целом, измеренная как удовлетворение нужд пользователей, доставленное часом работы, снижается.
Это отражает принципиальную разницу между копиями программ и автомобилей, стульев или бутербродов. Машина для копирования материальных объектов существует лишь на страницах научно-фантастических книг, а копировать программы легко; любой может произвести столько копий, сколько нужно, с очень небольшими затратами. Для материальных объектов этому мешает закон сохранения вещества — каждую следующую копию приходится создавать из сырья точно так же, как и первую.
В случае материальных объектов сдерживать их использование разумно, поскольку для изготовления меньшего количества объектов нужно меньше сырья и труда. Существуют и начальные затраты, и затраты на разработку, которые распределяются по всей выпускаемой продукции. Но пока предельная стоимость производства значительна, добавление к ней доли затрат на разработку не вносит качественной разницы. И для этого не требуется ограничивать свободу обычных пользователей.
Однако назначение цен на то, что в противном случае было бы бесплатно, приводит к качественному сдвигу. Централизованно установленная плата за распространение программы становится мощным сдерживающим фактором.
Более того, централизованное производство, практикуемое сегодня, неэффективно даже как способ доставки копий программ. Эта система включает укладку физических дисков и лент в ненужные упаковки, доставку больших партий по всему миру и складирование их перед продажей. Стоимость всего этого представляется как накладные расходы; на самом деле это часть растрат, вызванных существованием владельцев программ.
Нарушение сплоченности общества
Предположим, что как вы, так и ваш сосед сочли полезным использовать некую программу. Заботясь о его благе, вы должны ощущать, что правильный выход из положения — позволить вам обоим использовать ее. Если позволить воспользоваться программой лишь одному из вас, запрещая другому, то это разобщит вас; ни вы, ни ваш сосед не должны считать это приемлемым.
Подписать типичное лицензионное соглашение на программу означает предать своего соседа: “Я обещаю лишить моего соседа этой программы, лишь бы у меня самого была копия”. Люди, делающие такой выбор, испытывают внутреннее психологическое побуждение оправдать его, принижая важность помощи окружающим — таким образом, страдает социальная атмосфера. Таков психологический ущерб, связанный с материальным вредом, который вызван затруднением использования программы.
Многие пользователи бессознательно признают безнравственность отказа от обмена, и поэтому они решают все равно обмениваться программами, невзирая на лицензии и законы. Но нередко из-за этого они чувствуют себя виноватыми. Они знают, что должны нарушить закон, чтобы оставаться добрыми соседями, но при этом продолжают признавать авторитет закона и делают вывод, что быть добрыми соседями (какими они являются) гадко и позорно. Это тоже разновидность психологического ущерба, но его можно избежать, решив, что подобные лицензии и законы лишены нравственной силы.
Программисты также несут психологический ущерб, понимая, что многим пользователям их работа будет недоступна. Это ведет к тому, что они склоняются к цинизму и отрицанию. Программист может с энтузиазмом описывать работу, которую находит технически восхитительной, но когда его спросишь: “Можно мне будет воспользоваться ею?” он сникает и соглашается с тем, что ответ будет отрицателен. Чтобы избежать чувства неуверенности, он либо игнорирует этот факт большую часть времени, либо принимает циничную позицию, чтобы умалить его важность.
Со времен Рейгана наибольшим дефицитом в Соединенных Штатах были не технические нововведения, а готовность сотрудничать на благо общества. Нет никакого смысла поощрять первое за счет последнего.
Затруднение индивидуальной доработки программ
Второй уровень материального вреда — отсутствие возможности доработать программу. Легкость модификации программ — одно из их грандиозных преимуществ перед прежней техникой. Но большинство коммерчески доступных программ недоступно для изменений даже после того, как вы их купите. Вы можете лишь взять их, как “черный ящик”, или отказаться — и это все.
Программа, которую вы можете запускать, состоит из последовательности чисел, значение которых трудно понять. Никому, даже хорошему программисту, не легко изменить их, чтобы программа делала что-нибудь другое.
Программисты обычно работают с “исходными текстами” программы,
которые написаны на таких языках программирования, как Фортран или Си.
В них применяются имена, чтобы обозначить используемые данные и части
программы, а операции представляются такими символами, как +
для сложения и -
для вычитания. Языки созданы для того, чтобы
помочь программистам читать и править программы. Приведем в качестве примера
программу вычисления расстояния между двумя точками на плоскости:
float distance (p0, p1) struct point p0, p1; { float xdist = p1.x - p0.x; float ydist = p1.y - p0.y; return sqrt (xdist * xdist + ydist * ydist); }
Не важно, что означает этот исходный текст; важно, что он выглядит как математические выражения, и для человека, знающего этот язык программирования, это будет осмысленным и ясным текстом. Напротив, вот эта же программа в том виде, в котором она исполняется на компьютере, каким я обычно пользовался, когда писал эти строки:
1314258944 -232267772 -231844864 1634862 1411907592 -231844736 2159150 1420296208 -234880989 -234879837 -234879966 -232295424 1644167167 -3214848 1090581031 1962942495 572518958 -803143692 1314803317
Исходные тексты полезны (по меньшей мере, потенциально) каждому пользователю программы. Но большинству пользователей не позволено иметь копий исходных текстов. Обычно исходные тексты несвободной программы сохраняются владельцем в секрете, чтобы никто другой не почерпнул что-нибудь из них. Пользователи получают только файлы с непонятными числами, которые будут исполняться компьютером. Это значит, что изменять программу может лишь ее владелец.
Однажды моя знакомая рассказывала мне, как она около шести месяцев работала программистом в банке; она писала программу, сходную с тем, что было коммерчески доступно. Она была убеждена, что если бы удалось достать исходные тексты той коммерчески доступной программы, ее легко можно было бы приспособить к их нуждам. Банк был готов заплатить за это, но ему этого не дали — исходные тексты были секретны. В результате ей пришлось в течение полугода выполнять работу, которая вошла в валовой национальный продукт, но в действительности была потраченной впустую.
Лаборатория искусственного интеллекта Массачусетского технологического института где-то в 1977 году получила в подарок от “Ксерокс” графический принтер. Он управлялся свободными программами, которые мы дополнили многими удобными особенностями. Например, программа уведомляла пользователя сразу же по завершении печати. В случае любых затруднений, например, когда кончалась или застревала бумага, программа немедленно оповещала всех пользователей, у кого в очереди на печать были задания. Эти особенности способствовали размеренной работе.
Позднее “Ксерокс” предоставила лаборатории новый, более быстрый принтер, один из первых лазерных принтеров. Он работал под управлением несвободных программ, работавших на специально выделенном компьютере, так что мы не могли добавить туда ни одной из наших любимых особенностей. Мы могли организовать отправку уведомления, когда задание посылалось на машину, управлявшую принтером, но не тогда, когда оно действительно выполнялось (и задержка была обычно значительной). Определить, когда распечатывалось задание, было невозможно, мы могли только гадать. И никому не сообщалось, что застряла бумага, так что принтер нередко простаивал по часу без обслуживания.
Системные программисты лаборатории были в состоянии решать такие проблемы, может быть, не хуже самих авторов программы. Компания “Ксерокс” не была заинтересована в устранении этих проблем; она решила и нам не позволять сделать это, так что нас заставили смириться с этими проблемами. Это так никогда и не исправили.
Большинство хороших программистов испытывало такое разочарование. У банка были средства, чтобы решить проблему, разработав новую программу с нуля, но обыкновенному пользователю, как бы квалифицирован он ни был, остается только махнуть рукой.
Такие неудачи несут в себе психологический вред — они подрывают уверенность в себе. Жизнь в доме, который вы не можете обустроить под свои нужды, деморализует. Она ведет к безучастности и нерешительности, которые могут распространиться и на другие стороны жизни. Люди, испытывающие такие чувства, несчастливы и не могут хорошо работать.
Представьте себе, что было бы, если бы кулинарные рецепты были захвачены кем-то, подобно программам. Вы спросили бы: “Как мне изменить этот рецепт, чтобы в нем не было соли?”, а шеф-повар ответил бы: “Как вы смеете порочить мой рецепт, дитя моего ума и вкуса, пытаясь копаться в нем? Кто вы такой, чтобы править мой рецепт и устранять его недостатки?!”
“Но врач не рекомендовал мне употреблять в пищу соль! Что мне делать? Не могли бы вы исключить соль для меня?”
“Я с радостью сделаю это, только заплатите миллион рублей”. Поскольку владелец располагает монополией на модификации, у него нет склонности запрашивать мало. “Правда, прямо сейчас у меня нет времени. Я занят в комиссии по созданию нового рецепта галет для военно-морских сил. Я смогу заняться вами где-то через пару лет”.
Затруднение разработки программ
Третья разновидность материального ущерба затрагивает разработку программ. Разработка программ традиционно является эволюционным процессом, когда разработчик берет существующую программу и частично переписывает ее, добавляя одну новую особенность, а затем кто-нибудь другой частично переписывает ее, добавляя другую особенность; в некоторых случаях это продолжается свыше двадцати лет. В это время фрагменты программы могут “разбираться на запчасти”, из которых складываются заделы для новых программ.
Наличие владельцев препятствует такой эволюции, делая необходимым каждый раз приступать к разработке программы с самого начала. Оно также не позволяет новичкам изучать существующие программы, чтобы ознакомиться с полезными приемами или хотя бы с тем, как можно структурировать крупные программы.
Кроме того, владельцы противостоят образованию. Я встречал блестящих студентов, изучающих вычислительную технику, которые никогда не видели исходных текстов большой программы. Они, может быть, хорошо пишут небольшие программы, но они не могут начать перенимать новые для себя навыки создания крупных программ, если они не видят, как это делали другие.
Во всех областях интеллектуальной деятельности можно покорить более грандиозные высоты, стоя на плечах других. Но это, вообще говоря, больше не разрешено в области программирования — вы можете опираться лишь на людей, работающих в вашей компании.
Связанный с этим психологический вред затрагивает дух научного сотрудничества, который традиционно был столь силен, что ученые сотрудничали, даже когда их страны воевали друг с другом. Действуя в таком духе, японские океанографы, покидая свою лабораторию на острове в Тихом океане, тщательно законсервировали свои работы для наступавших ВМС США и оставили им записку с просьбой должным образом позаботиться о них.
Экономический конфликт разрушил то, что пощадил конфликт международный. Сегодня ученые многих специальностей не публикуют в своих статьях достаточно информации, чтобы другие могли воспроизвести эксперимент. Они ограничиваются объемом, достаточным, чтобы читатели подивились тому, как много авторы смогли сделать. Ситуация бесспорно такова в области вычислительной техники, где исходные тексты программ, которые описываются, обычно секретны.
Не имеет значения, как ограничивается обмен
Я рассуждал о последствиях запрета копировать, изменять и дорабатывать программу. Я не конкретизировал, каким образом вводятся эти ограничения, поскольку это не влияет на сделанные выводы. Делается ли это с помощью защиты от копирования, авторского права, лицензий, шифрования, электронных ключей или серийных номеров аппаратуры — если таким образом удается ограничить применение, это наносит вред.
Одни из этих методов пользователи считают более отвратительными, чем другие. Я полагаю, что наиболее ненавистны те из методов, которые справляются со своей задачей.
Программы должны быть свободны
Я показал, как владение программой — власть ограничивать ее изменение или копирование — становится помехой. Его негативные последствия широкомасштабны и важны. Отсюда следует, что владельцев программ в обществе быть не должно.
По-другому это можно понять так: на самом деле обществу нужны свободные программы, а несвободные программы — лишь слабая их замена. Неразумно поощрять заменитель, если нам нужно нечто другое.
Вацлав Гавел советовал нам “заниматься своим делом потому, что оно полезно, а не только потому, что оно предоставляет возможность преуспеть”. Предприятия по выпуску несвободных программ предлагают возможность успеха в своем собственном узком смысле, но это не то, что полезно для общества.
Почему люди будут разрабатывать программы
Если мы устраним авторское право как средство поощрять людей разрабатывать программы, то вначале будет разрабатываться меньше программ, но эти программы будут полезнее. Неясно, станут ли нужды пользователя в целом удовлетворяться лучше или хуже, но если положение ухудшится или если мы пожелаем тем не менее улучшить его, то есть и другие способы стимулировать разработку, подобно тому, как есть возможность финансировать дорожные работы помимо сбора пошлин. Перед рассказом о том, как это можно делать, я хотел бы поставить вопрос о том, насколько в действительности необходимо искусственное поощрение.
Программирование увлекательно
Есть ряд занятий, которые не привлекли бы практически никого, если бы они не приносили денег, например прокладка дорог. Но есть и другие области деятельности, в которых мало возможностей разбогатеть и которым люди посвящают себя из-за их привлекательности или предполагаемой ценности для общества. Примерами могут служить математическая логика, классическая музыка, археология и политические организации среди трудящихся. Люди соперничают, скорее с грустью, чем с ожесточением, за небольшое количество оплачиваемых должностей, ни одна из которых не оплачивается высоко. Они иногда даже платят за возможность работать в этой области, если могут себе это позволить.
Такая отрасль может преобразиться в одно мгновение, если в ней появляется возможность разбогатеть. Когда один из работающих богатеет, другие требуют того же. Вскоре все начинают требовать крупные суммы денег за то, что ранее делали для удовольствия. Спустя еще пару лет каждому, кто связан с этой деятельностью, будет смешно даже подумать, что в данной области можно работать без солидных финансовых оборотов. Они начнут советовать тем, кто выбирает дальнейший путь общества, обеспечить возможность таких оборотов, предписывая особые привилегии, власть и монополии как необходимые для этого условия.
Эти перемены произошли в области программирования в восьмидесятые годы XX века. В семидесятых выходили статьи о “компьютеромании”: пользователи “зависали” у терминалов, ограничиваясь сотней долларов в неделю на личные нужды. Всем было понятно, что люди нередко настолько любят программировать, что разрушают свои семьи. Сегодня общепринятым является мнение, что никто не будет программировать, кроме как за высокую плату. Люди позабыли о том, что знали в те времена.
Когда для данного времени верно, что большинство будет работать в некоторой области лишь за высокую плату, это не обязательно будет верно всегда. Динамика перемен может повернуть вспять, если общество приложит усилия. Если мы устраним возможность сильно разбогатеть, то спустя какое-то время, когда люди пересмотрят свои позиции, они опять будут стремиться работать в этой области ради удовольствия от выполненной работы.
Вопрос “как платить программистам?” становится проще, когда мы понимаем, что это не обязательно должно быть целое состояние. Простую жизнь финансировать легче.
Финансирование свободных программ
Учреждения, которые платят программистам, не обязательно должны быть фирмами по производству программ. Уже сейчас есть множество других организаций, которые могут это делать.
Производители оборудования находят необходимым поддерживать разработку программ, даже если не могут контролировать их использование. В 1970 году значительная часть их программ была свободной, поскольку они не задумывались об ограничениях. Сегодня растущая готовность производителей оборудования объединяться в консорциумы показывает их понимание, что на деле для них важно не владение программами.
Университеты проводят множество работ по программированию. Сегодня они часто торгуют своими результатами, но в семидесятых годах XX века такого не было. Можно ли сомневаться, что университеты будут разрабатывать свободные программы, если им не позволят торговать программами? Эти проекты могли бы поддерживаться теми же правительственными контрактами и дотациями, которые сегодня поддерживают разработку несвободных программ.
Сегодня обычна ситуация, когда университетские исследователи, чтобы получить средства на разработку системы, доводят ее практически до завершения и называют проект “завершенным”, а затем основывают компании, которые действительно заканчивают работу над ним и делают его полезным. Иногда они объявляют незавершенную версию “свободной”; если же они окончательно испорчены, то вместо этого получают исключительные права от университета. Это не секрет; это открыто признают все, кто этим занимается. Но если бы исследователи не подвергались искушению совершать подобное, они все равно продолжали бы свои исследования.
Программисты-разработчики свободных программ могут заработать на жизнь, продавая услуги, связанные с этими программами. Мне приходилось работать по найму над переносом компилятора Си GNU на новое оборудование и расширениями интерфейса пользователя GNU Emacs. (Я предлагаю эти улучшения обществу, когда они бывают готовы.) Кроме того, я провожу обучение, и за это мне платят.
Не я один работаю так; в настоящее время существует успешная растущая корпорация, которая занимается только такой работой. Несколько других компаний также предлагает коммерческую поддержку свободных программ системы GNU. Зарождается индустрия независимой поддержки программ — индустрия, которая может стать весьма обширной, если свободные программы станут преобладать. Она предоставляет возможности, обычно недоступные пользователям несвободных программ, за исключением очень богатых.
Такие новые учреждения, как Фонд свободного программного обеспечения, также могут содержать программистов. Основная часть поступлений фонда вносится пользователями, которые заказывают ленты по почте. Программы на этих лентах свободны, а это значит, что каждый пользователь может свободно копировать и изменять их, но многие все равно платят, чтобы получить копию. (Вспомните: выражение “свободные программы” относится к свободе, а не к цене.) Некоторые пользователи заказывают ленты, уже располагая копией нужной программы, чтобы тем самым оказать поддержку, которую мы, по их мнению, заслужили. Фонд также получает значительные пожертвования от производителей компьютеров.
Фонд свободного программного обеспечения — благотворительная организация, и его средства используются для найма возможно большего количества программистов. Если бы он был основан как коммерческое предприятие по распространению тех же самых свободных программ в обществе за ту же плату, сегодня он обеспечил бы очень хороший достаток своему основателю.
Поскольку фонд — благотворительная организация, программисты нередко работают для него за половину того, что они могли бы заработать в другом месте. Они делают это потому, что мы свободны от бюрократии, и потому, что ощущают удовлетворение от сознания, что применению их работы не будут мешать. Но прежде всего они поступают так потому, что программирование увлекательно. В дополнение к этому, многие полезные программы были написаны для нас безвозмездно. (Безвозмездно начали работать даже составители документации.)
Этим подтверждается, что программирование является одним из наиболее захватывающих видов деятельности наряду с музыкой и живописью. Не стоит опасаться, что никто не захочет программировать.
Чем пользователи обязаны разработчикам?
У пользователей программы существует разумная причина ощущать моральное обязательство помочь в ее поддержке. Разработчики свободных программ оказывают помощь пользователям в их деятельности, так что со стороны пользователей не только справедливо, но и дальновидно предоставлять им средства для продолжения работ.
Однако это не относится к разработчикам несвободных программ, поскольку тот, кто мешает другим, заслуживает наказания, а не награды.
Итак, мы пришли к парадоксу: разработчик полезных программ имеет право на поддержку со стороны пользователей, но любые попытки превратить это моральное обязательство в требование разрушают основание для этого обязательства. Разработчик может либо заслуживать награды, либо требовать ее, но не одновременно.
Я убежден, что порядочный разработчик, оказавшись лицом к лицу с этим парадоксом, должен поступать так, чтобы заслуживать награды, но ему следует также призывать пользователей к добровольным пожертвованиям. В конце концов пользователи научатся поддерживать разработчиков без принуждения, подобно тому, как они уже привыкли делать это для общественного радио и телевидения.
Что такое производительность программы?
Если бы программы были свободны, программисты все равно нашлись бы, но возможно, в меньшем количестве. Было бы ли это плохо для общества?
Не обязательно. Сегодня в развитых странах меньше фермеров, чем в 1900 году, но мы не думаем, что это плохо для общества, поскольку эти немногие доставляют больше продуктов потребителям, чем многие в прошлом. Мы называем это повышением производительности труда. Свободные программы потребовали бы гораздо меньше программистов, чтобы удовлетворить потребности, благодаря повышению программной производительности на всех уровнях:
- Более широкое применение каждой разработанной программы.
- Возможность приспособить к своим нуждам существующие программы вместо того, чтобы писать новые с самого начала.
- Улучшение образования программистов.
- Исключение дублирования усилий по разработке.
Те, кто возражает против сотрудничества, утверждая, что это приведет к найму меньшего количества программистов, в действительности возражают против повышения производительности труда. И все же эти люди обычно согласны с широко распространенным убеждением, что отрасль программирования нуждается в повышении производительности. Как это может быть?
”Программная производительность” может означать два различных понятия: совокупную производительность разработки программ вообще и производительность отдельно взятых проектов. Общество желало бы повысить совокупную производительность, и самый прямой путь к этому — устранить искусственные помехи сотрудничеству, которые эту производительность снижают. Но исследователи, которые изучают “программную производительность”, сосредоточены исключительно на втором, ограниченном, толковании производительности, улучшение которой требует сложных технических усовершенствований.
Неизбежна ли конкуренция?
Неизбежно ли люди будут стараться соперничать, чтобы превзойти конкурентов? Возможно. Но соперничество само по себе не вредно, вредна драка.
Есть много видов конкуренции. Она может заключаться в попытках достичь большего, превзойти сделанное другими. Например, в старые добрые времена кудесники программирования состязались в том, кто заставит компьютер сделать самое удивительное или кто напишет самую короткую или быструю программу для некоторой задачи. Такое состязание может принести пользу каждому, до тех пор, пока сохраняется спортивный дух.
Конструктивного соперничества достаточно, чтобы стимулировать грандиозные достижения. Многие соревнуются в том, чтобы первыми посетить все страны мира, некоторые даже тратят на это целые состояния. Но они не подкупают капитанов, чтобы те высаживали соперников на необитаемых островах. Они согласны на то, чтобы победил лучший.
Соревнование перерастает в схватку, когда участники начинают стараться помешать другим вместо того, чтобы совершенствоваться самим — когда девиз “Пусть победит лучший” уступает место девизу “Лучший или нет, я должен победить”. Несвободные программы вредны — не потому, что являются разновидностью состязания, а потому, что представляют собой схватку между членами нашего общества.
Состязание предприятий не обязательно должно быть битвой. Например, когда конкурируют два бакалейных магазина, все их усилия направлены на улучшение собственной работы, а не на саботаж соперника. Но это не показатель особой приверженности к деловой этике; просто в данной области предпринимательства найдется не много возможностей сражаться, не прибегая к физическому насилию. Это характерно не для всех областей предпринимательства. Утаивание информации, которая могла бы содействовать прогрессу каждого, является формой схватки.
Идеология предпринимательства не подготавливает людей к тому, чтобы противиться искушению перейти от состязания к драке. В некоторых формах драка запрещена антимонопольным законодательством, законами о добросовестной рекламе и так далее, но вместо того, чтобы обобщить эти запреты до принципиального отказа от драк вообще, руководители компаний изобретают новые формы драки, которые не запрещены особым законом. Ресурсы общества разбазариваются на экономический эквивалент гражданской войны.
“Почему бы вам не уехать в Россию?”
В Соединенных Штатах каждый защитник взглядов, отличающихся от крайних форм эгоистичной вседозволенности, не раз слышал эти слова. Например, их бросали сторонникам национальной системы здравоохранения, подобной тем, что существуют во всех других высокоразвитых странах свободного мира. Их направляли в адрес защитников общественной поддержки искусств, также повсеместной в прогрессивных странах. Идея, что у граждан есть какие бы то ни было обязанности перед обществом, в Америке ассоциируется с коммунизмом. Но в какой мере эти идеи схожи?
Коммунизм в том виде, в каком он практиковался в Советском Союзе, был системой централизованного контроля, в которой регламентировалась всякая деятельность, якобы для общего блага, но на самом деле в интересах членов Коммунистической партии. И в которой копировальное оборудование тщательно охранялось, чтобы предотвратить незаконное копирование.
Американская система авторского права на программы практикует централизованный контроль распространения программ и охраняет копировальную технику с помощью автоматических схем защиты от копирования, чтобы предотвратить незаконное копирование.
Я, напротив, работаю над созданием системы, в которой люди свободны в решении о своих собственных действиях; в частности, могут свободно помогать своим соседям, свободно изменять и улучшать средства, которыми они пользуются в повседневной жизни. Системы, основанной на добровольном сотрудничестве и децентрализации.
Таким образом, если мы собираемся судить о взглядах на основании их сходства с русским коммунизмом, то коммунистами скорее следует называть владельцев программ.
Вопрос о предпосылках
В этой работе я предполагаю, что пользователь программы не менее важен, чем автор и даже наниматель автора. Другими словами, их интересы и нужды имеют равный вес, когда мы решаем, в каком направлении лучше всего действовать.
Это предположение признается не всеми. Многие утверждают, что наниматель автора принципиально важнее всех прочих. Они говорят, к примеру, что имущественные права на программы предназначены для предоставления нанимателю автора привилегий, которых он заслуживает — независимо от того, как это может сказаться на обществе.
Бесполезно пытаться доказать или опровергнуть эти положения. Доказательство требует общепризнанных положений. Поэтому то, о чем я хочу рассказать, по большей части адресовано тем, кто разделяет мои исходные положения или хотя бы интересуется, какие из них можно сделать выводы. Для тех, кто убежден, что владельцы важнее всех прочих, эта статья просто не предназначена.
Но почему большое количество американцев могло бы принять предположение, которое возвышает некоторых людей по значимости над всеми остальными? Частично благодаря убеждению, что это предположение является частью правовых традиций американского общества. Некоторые считают, что сомневаться в нем значит расшатывать основы общества.
Таким людям важно осознать, что эта предпосылка не является частью наших правовых традиций. Она никогда ею не была.
Так, в Конституции сказано, что назначение авторского права — в том, чтобы “способствовать прогрессу науки и полезных искусств”. Верховный суд пояснил это, постановив в процессе “Фокс фильм” против Дойела, что “единственный интерес Соединенных Штатов и первичная цель наделения [авторско-правовой] монополией лежит во всевозможных выгодах, извлекаемых обществом из труда авторов”.
Мы не обязаны соглашаться с Конституцией или Верховным судом (в свое время они смотрели сквозь пальцы на существование рабства). Поэтому их позиции не опровергают предположения о превосходстве владельцев. Но я надеюсь, понимание того, что эта посылка — крайне правое, а не традиционно признанное предположение, ослабит ее привлекательность.
Заключение
Нам приятно думать, что наше общество поощряет помощь ближнему своему, но всякий раз, когда мы награждаем кого-либо за создание помех или восхищаемся его богатством, нажитым таким образом, мы утверждаем обратное.
Захват программ — одна из форм нашей всеохватывающей готовности пренебречь благом общества во имя личной выгоды. Мы можем проследить это отношение от Рональда Рейгана до Дика Чейни, от “Экксон” до “Энрон”, от лопающихся банков до закрывающихся школ. Мы можем измерить его количеством бездомных и заключенных. Антисоциальный дух питает сам себя, поскольку чем больше мы видим, что другие нам не помогут, тем более бесполезным кажется помогать им. Такое общество катится прямиком в дремучий лес.
Если мы не хотим жить в таком лесу, мы должны сменить свою позицию. Мы должны приступить к распространению идеи, что хороший гражданин — тот, кто сотрудничает, когда это уместно, а не тот, кто успешно обирает других. Я надеюсь, что движение за свободное программное обеспечение поможет этому: по крайней мере в одной области человеческой деятельности мы сможем заменить дикий лес более эффективной системой, которая поощряет добровольное сотрудничество и зиждется на нем.
Примечания
- Слово “свободный” в выражении “свободные программы” подразумевает свободу, а не цену. Сумма, выплаченная за копию свободной программы, может быть нулевой, небольшой или (в редких случаях) довольно крупной.
- Если рассмотреть возможность загрязнения и возникновения пробок, то это не изменит выводов. Если мы хотим сделать вождение автомобиля более дорогим, чтобы затруднить его вообще, нерационально делать это с помощью пунктов сбора пошлин, поскольку они увеличивают как загрязнение, так и заторы. Гораздо лучше ввести налог на бензин. Аналогично, желание увеличить безопасность ограничением скорости тоже не имеет отношения к делу: дорога со свободным доступом повышает среднюю скорость, устраняя необходимость остановок и задержек независимо от заданной предельной скорости.
- Кто-то может обратить внимание, что существуют вредоносные программы, которые не должны быть доступны вообще, подобно базе личной информации Lotus Marketplace, которая была изъята из продажи вследствие неодобрения публики. Сказанное мной по большей части неприменимо в этом случае, но едва ли есть смысл защищать существование владельца на том основании, что он сделает эту программу менее доступной. Владелец не сделает ее полностью недоступной, как можно было бы желать в случае программы, использование которой считается разрушительным.
Этот очерк публикуется в сборнике “Свободные программы, свободное общество: Избранные очерки Ричарда М. Столмена”.