Несовершенство и угнетение — не одно и то же
Ричард СтолменКогда свободной программе недостает нужных пользователю возможностей, это плохо; мы призываем людей добавить недостающее. Кое-кто идет дальше и заявляет, что программа даже не является свободной, если в ней не хватает определенных функций — что в ней нет свободы 0 (свободы выполнять программу, как вам угодно) в отношении пользователей или применений, которые она не поддерживает. Этот аргумент некорректен, потому что он основан на смешении функциональности со свободой, а несовершенства с угнетением.
В каждой программе неизбежно есть определенные функции и недостает других, которые были бы желательны. Есть задачи, которые она может решать, и задачи, которых она не может решать без дополнительной доработки. Такова природа программ.
Отсутствие ключевых функций может означать, что некоторые пользователи сочтут программу совершенно неработоспособной. Например, если вы понимаете только графические интерфейсы, вам может быть невозможно применять программу, работающую в командной строке. Если вы не видите экрана, для вас может быть невозможно пользоваться программой, в которой нет функции чтения с экрана. Если вы говорите только по-гречески, для вас может быть невозможно применять программу с меню и сообщениями на английском. Если ваши программы написаны на языке Ада, вам невозможно применять компилятор Си. Свободные программы просто обязаны предоставлять функции, которые вам нужны.
Свободные программы просто обязаны предоставлять их, но недостаток возможностей не делает программу несвободной, потому что это несовершенство, а не угнетение.
Делая программу несвободной, разработчик совершает несправедливость, состоящую в том, что всякому, кто пользуется программой, отказывают в свободе. За это разработчик заслуживает порицания. Очень важно порицать такого разработчика, потому что никто другой не может устранить эту несправедливость до тех пор, пока разработчик продолжает совершать ее. Мы можем попытаться и мы пытаемся спасти жертв несправедливости, разрабатывая свободную замену, но мы не можем сделать несвободную программу свободной.
Разработка свободной программы без добавления определенной важной возможности не делает никому зла. Наоборот, она делает добро, но не все добро, в котором люди нуждаются. Никто в особенности не заслуживает порицания за то, что не развита недостающая возможность, поскольку это может сделать любой способный на это человек. Было бы неблагодарно, да и вредно для нас самих, возлагать на авторов программы вину за то, что они не проделали какую-то дополнительную работу.
Что мы можем сделать — это говорить, что для завершения дела требуется какая-то дополнительная работа. Это конструктивно, потому что помогает нас убедить кого-нибудь проделать эту работу.
Если вы думаете, что определенное расширение свободной программы важно, пожалуйста, убеждайте разработать его, уважая наших разработчиков. Не критикуйте тех, кто внес вклад в виде полезных программ, которые у нас есть. Вместо этого ищите способ завершить работу. Вы можете призывать разработчиков программы обратить внимание на недостающую возможность, когда у них есть время на дополнительную работу. Вы можете предложить им помощь. Вы можете искать людей или собирать фонды, чтобы поддержать эту работу.