Когда свободная программа (практически) не превосходна
Бенджамин Мейко ХиллЗаявление о задачах Инициативы открытого исходного текста гласит: “Открытый исходный текст — метод разработки программ, который обуздывает энергию распределенных взаимных проверок и прозрачности процесса. Открытый исходный текст обещает лучшее качество, повышенную надежность и гибкость, более низкую стоимость и конец хищнического замыкания на производителе”.
Уже более десятилетия Фонд свободного программного обеспечения оспаривает это описание движения за свободное программное обеспечения с точки зрения “открытого исходного текста”. Сторонники свободного программного обеспечения возражали против такой формулировки прежде всего потому, что “открытый исходный текст” — это явная попытка затушевать наше центральное сообщение о свободе и затенить роль нашего движения в успехе того корпуса программ, который мы построили. Мы поясняли, что выражение “открытый исходный текст” плохо в принципе, потому что оно пытается удержать людей от разговоров о свободе программ. Но есть и другая причина, по которой нам следует опасаться формулировок открытого исходного текста. Основополагающий аргумент открытого исходного текста, процитированный выше из заявления о задачах, часто неверен.
Хотя Инициатива открытого исходного текста предполагает, что “открытый исходный текст обещает лучшее качество, повышенную надежность и гибкость”, это обещание не всегда реализуется. Хотя мы не часто обращаем внимание на этот факт, любой пользователь проекта по созданию свободных программ, находящегося в ранней стадии, скажет вам, что свободные программы не всегда так же удобны, с чисто практической точки зрения, как их несвободные конкуренты. Качество свободных программ иногда низко. Иногда они ненадежны. Иногда они негибки. Если люди серьезно относятся к аргументам в пользу открытого исходного текста, они должны объяснить, почему открытый исходный текст не выполнил своего “обещания” и сделать вывод, что несвободные средства были бы лучшим выбором. Нам не нужно делать ни того, ни другого.
Ричард Столмен говорит об этом в своей статье Почему открытый исходный текст не передает понятия ‘свободная программа’, когда он поясняет: “Идея открытого исходного текста состоит в том, что разрешение пользователям изменять и распространять программы сделает их эффективнее и надежнее. Но это не гарантировано. Разработчики несвободных программ не обязательно некомпетентны. Иногда они выпускают программу, которая эффективна и надежна, хотя она и не уважает свободу пользователей”.
Для открытого исходного текста низкокачественные программы — проблема, которую следует разъяснить, или причина сторониться этих программ вообще. Для свободных программ это проблема, над которой следует работать. Для сторонников свободного программного обеспечения прорехи и недостающие возможности никогда не станут причиной для стыда. У любой свободной программы, уважающей свободу пользователей, есть сильное и неотъемлемое преимущество перед несвободным конкурентом, который свободу пользователей не уважает. Даже если у свободной программы нет чего-то еще, у нее всегда есть свобода.
Конечно, каждая свободная программа должна с чего-то начинаться. Например, только что возникшая свободная программа едва ли будет более богата функциями, чем развитый несвободный пакет. Проекты начинаются с большого количества ошибок и улучшаются со временем. В то время как сторонники открытого исходного текста могли бы убеждать, что со временем и при известной доле везения проект вырастет до полезного, для сторонника свободных программ проекты по созданию свободных программ представляют собой важный вклад с первого же дня. Любая программа, которая дает пользователям контроль над их техникой — это шаг вперед. Повышенное качество при достижении проектом зрелости — это масло на куске хлеба.
Второй, возможно, еще более вопиющий факт заключается в том, что распределенный процесс разработки с сотрудничеством и взаимной проверкой, который составляет сердце определения открытого исходного текста, имеет мало общего с практикой разработки программ в подавляющем большинстве проектов под лицензиями свободных программ (или программ “с открытым исходным текстом”).
Несколько научных исследований SourceForge и Savannah — сайтов, предоставляющих инфраструктуру для разработки свободных программ,— показали то, что многие разработчики свободных программ, которым доводилось размещать тексты программ в Интернете, уже знают по собственному опыту. Подавляющее большинство проектов по разработке свободных программ не слишком склонно к сотрудничеству. Какова медиана соразработчиков проекта по созданию свободных программ на SourceForge? Один. Одинокий разработчик. В девяноста пяти процентах проектов SourceForge участвует не более пяти соразработчиков. Более половины из этих проектов по созданию свободных программ — и даже большинство проектов, которые сделали несколько успешных выпусков и файлы которых часто запрашивались по сети — представляют собой работу единственного разработчика практически без помощи со стороны.
Подчеркивая эффективность совместной разработки и “распределенных взаимных проверок”, подходы открытого исходного текста, кажется, почти ничего не говорят о том, почему кому-то следует делать вклад в подавляющее большинство проектов по разработке свободных программ или пользоваться ими. Поскольку предполагаемые выгоды от сотрудничества не могут быть реализованы, когда никакого сотрудничества нет, подавляющее большинство проектов по разработке свободных программ не имеют никаких технических преимуществ по сравнению с несвободным конкурентом.
Сторонниками свободного программного обеспечения эти же самые проекты рассматриваются как важные достижения. Поскольку каждая свободная программа уважает свободу своих пользователей, защитники свободы программ утверждают, что каждая свободная программа рождается с неотъемлемым этическим преимуществом перед несвободными конкурентами — даже если те более богаты возможностями. Выводя на первое место свободу, а не практические достоинства, аргументация свободного программного обеспечения уходит корнями в реалии техники так, как открытый исходный текст часто этого не делает. Когда свободные программы лучше, мы можем отметить этот факт. Когда нет, нам нет нужды относиться к этому как к неотразимой критике аргументации свободного программного обеспечения или даже как к убедительному аргументу против применения данной программы.
Сторонники открытого исходного текста должны защищать свой тезис о том, что свободно разрабатываемые программы должны стать или станут со временем лучше, чем несвободные. Сторонники свободных программ вместо этого могут спрашивать: “Как сделать свободные программы лучше?” В контексте свободного программного обеспечения высокое качество программ существует как средство к достижению цели, а не как самоцель. Разработчикам свободных программ следует стремиться к созданию богатых, гибких программ, которые хорошо служат пользователям. Но это не единственный способ предпринять шаги к достижению того, что является и более легкой, и гораздо более глубокой и важной целью: уважение и защита их свободы.
Конечно, нам не нужно отвергать аргументов о том, что сотрудничество может играть важную роль в создании программ высокого качества. Ясно, что во многих из самых успешных проектов по созданию свободных программ их именно так и делали. Выгоды сотрудничества становятся тем, что нужно понимать, поддерживать, над чем нужно работать, а не тем, что нужно принимать как само собой разумеющееся перед лицом свидетельств, которые отказываются следовать идеологии.