Imperfeição não é o mesmo que opressão
por Richard StallmanQuando um programa livre carece de capacidades que os usuários desejam, isso é lamentável; nós pedimos que as pessoas adicionem o que está faltando. Alguns iriam mais longe e afirmariam que um programa nem mesmo é software livre se não tiver certas funcionalidades – que nega a liberdade 0 (a liberdade de executar o programa como você desejar) para usuários ou usos que ele não possui suporte. Esse argumento é equivocado porque se baseia na identificação da capacidade com liberdade e da imperfeição com a opressão.
Cada programa tem inevitavelmente certas funcionalidades e carece de outras que possam ser desejáveis. Existem alguns trabalhos que podem ser feitos e outros que não podem ser realizados sem trabalho adicional. Essa é a natureza do software.
A ausência de uma funcionalidade chave pode significar que certos usuários achem que o programa é totalmente inutilizável. Por exemplo, se você entende apenas de interfaces gráficas, um programa de linha de comando pode ser impossível para você usar. Se você não puder ver a tela, um programa sem um leitor de tela pode ser impossível para você usar. Se você fala apenas grego, um programa com menus e mensagens em inglês pode ser impossível de usar. Se seus programas são escritos em Ada, é impossível usar um compilador C. Não é razoável exigir que você supere essas barreiras por conta própria. O software livre realmente deveria fornecer a funcionalidade que você precisa.
O software livre realmente deveria fornecê-lo, mas a falta daquele recurso não faz o programa não-livre, porque é uma imperfeição, não uma opressão.
Tornar um programa não-livre é uma injustiça cometida pelo desenvolvedor que nega liberdade a quem quer que o use. O desenvolvedor merece condenação por isso. É crucial condenar esse desenvolvedor, porque ninguém mais pode desfazer a injustiça enquanto o desenvolvedor continuar a fazê-lo. Podemos e tentamos resgatar as vítimas desenvolvendo um substituto livre, mas não podemos libertar o programa não-livre.
Desenvolver um programa livre sem adicionar um recurso importante não está fazendo mal a ninguém. Pelo contrário, está se fazendo algo de bom, mas não é tão bom que as pessoas precisem. Ninguém em particular merece condenação por não desenvolver o recurso que falta, uma vez que qualquer pessoa capaz poderia fazê-lo. Seria ingrato, bem como autodestrutivo, destacar os autores do programa livre por não terem feito algum trabalho adicional.
O que podemos fazer é afirmar que a conclusão do trabalho exige um trabalho adicional. Isso é construtivo porque nos ajuda a convencer alguém a fazer esse trabalho.
Se você acha que uma certa extensão em um programa livre é importante, por favor, faça isso da maneira que respeite nossos colaboradores. Não critique as pessoas que contribuíram com o código útil que temos. Em vez disso, procure uma maneira de concluir o trabalho. Você pode pedir que os desenvolvedores do programa voltem sua atenção para o recurso em falta quando tiverem tempo para mais trabalho. Você pode se oferecer para ajudá-los. Você pode recrutar pessoas ou arrecadar fundos para apoiar o trabalho.