Esta tradução pode não refletir as alterações feitas desde 2022-02-02 ao original em Inglês.

Você deveria dar uma olhada nas alterações. Por favor, veja o README de traduções para informações sobre a manutenção de traduções a este artigo.

Por que o Código Aberto não compartilha dos objetivos do Software Livre

Os termos “software livre” e “código aberto” representam quase a mesma gama de programas. No entanto, eles dizem coisas profundamente diferentes sobre esses programas, com base em valores diferentes. O movimento do software livre faz campanha pela liberdade para os usuários da computação; é um movimento pela liberdade e pela justiça. Por outro lado, a ideia de código aberto valoriza principalmente a vantagem prática e não faz campanha por princípios. É por isso que não concordamos com o código aberto e não usamos esse termo.

Quando dizemos que um software é “livre”, queremos dizer que ele respeita as liberdades essenciais dos usuários: a liberdade de executá-lo, de estudá-lo e mudá-lo, e redistribuir cópias com ou sem mudanças. Isso é uma questão de liberdade, não de preço – pense em “liberdade de expressão”, não em “cerveja grátis”.

Essas liberdades são vitalmente importantes. Elas são essenciais não apenas para os propósitos individuais dos usuários, mas para a sociedade como um todo, pois elas promovem solidariedade social – isto é, compartilhamento e cooperação. Elas se tornam ainda mais importantes à medida que nossa cultura e atividades cotidianas se tornam mais digitalizadas. Num mundo de sons, imagens e palavras digitais, o software livre se torna essencial para a liberdade em geral.

Dezenas de milhões de pessoas no mundo atualmente usam software livre; as escolas públicas de algumas regiões da Índia e da Espanha ensinam todos seus estudantes a usar o sistema operacional livre GNU/Linux. Muitos desses usuários, contudo, nunca ouviram sobre as razões éticas pelas quais nós desenvolvemos esse sistema e construímos a comunidade do software livre, devido ao fato de que hoje em dia esse sistema e comunidade são muito frequentemente divulgados como “código aberto”, atribuindo a eles uma filosofia diferente, na qual essas liberdades dificilmente são mencionadas.

O movimento do software livre tem lutado pela liberdade dos usuários de computador desde 1983. Em 1984 nós iniciamos o desenvolvimento do sistema operacional livre GNU para que pudéssemos evitar os sistemas operacionais não livres que negam liberdade aos seus usuários. Durante os anos 80, nós desenvolvemos boa parte dos componentes essenciais do sistema e criamos a Licença Pública Geral GNU (GNU GPL) para lançá-los – uma licença especificamente projetada para proteger a liberdade de todos os usuários de um programa.

Nem todos os usuários e desenvolvedores de software livre concordaram com os objetivos do movimento do software livre. Em 1998, uma parte da comunidade do software livre se separou e iniciou uma campanha em nome do “código aberto”. O termo foi originalmente proposto com a finalidade de evitar uma possível confusão com o termo “software livre”, porém logo se tornou associado a visões filosóficas bem diferentes daquelas do movimento do software livre.

Alguns dos partidários do código aberto consideram o termo uma “campanha de marketing pelo software livre”, que apela aos empresários ao salientar os benefícios práticos do software, ao mesmo tempo que não levanta questões sobre certo e errado que eles podem não querer ouvir. Outros partidários rejeitam terminantemente os valores éticos e sociais do movimento do software livre. Quaisquer que sejam seus pontos de vista, na campanha pelo código aberto, eles não citam nem advogam esses valores. O termo “código aberto” se tornou rapidamente associado a ideias e argumentos baseados apenas em valores práticos, tais como criar ou ter software poderoso e confiável. A maioria dos partidários do código aberto tem feito isso desde então, e fazem a mesma associação. A maioria das discussões sobre “código aberto” não presta atenção ao certo e ao errado, apenas à popularidade e ao sucesso; aqui está um exemplo típico. Uma minoria de defensores do código aberto hoje em dia diz que a liberdade é parte da questão, mas eles não são muito visíveis entre os muitos que não o fazem.

Os dois termos descrevem quase a mesma categoria de software, porém eles referem-se a visões baseadas em valores fundamentalmente diferentes. Para o movimento do software livre, o software livre é um imperativo ético, com respeito essencial à liberdade dos usuários. Em contrapartida, a filosofia do código aberto considera os problemas em termos de como tornar o software “melhor” – e, um sentido prático apenas. Ela diz que o software não livre é uma solução inferior para o problema prático em questão.

Para o movimento do software livre, contudo, o software não livre é um problema social e a solução é parar de usá-lo e migrar para o software livre.

“Software livre”. “Código aberto”. Se é o mesmo software (ou quase), realmente importa que nome você usa? Sim, porque palavras diferentes exprimem ideias diferentes. Embora um programa livre daria a você a mesma liberdade hoje por qualquer outro nome, estabelecer a liberdade de forma duradoura depende sobretudo de ensinar as pessoas a valorizar a liberdade. Se você quer ajudar nesse sentido, é essencial falar em “software livre”.

Nós do movimento do software livre não vemos o código aberto como um empreendimento inimigo; o inimigo é o software privativo (não livre). Porém, nós queremos que as pessoas saibam que apoiamos a liberdade, por isso não aceitamos ser rotulados erroneamente como apoiadores do código aberto. O que defendemos não é “código aberto” e o que nos opomos não é “código fechado”. Para deixar isso claro, evitamos usar esses termos.

Diferenças práticas entre Software Livre e Código Aberto

Na prática, o código aberto apoia critérios um pouco mais flexíveis que os do software livre. Até onde sabemos, todos os códigos abertos de software livre lançados se qualificariam como código aberto. Quase todos os softwares de código aberto são software livre, mas há exceções. Primeiro, algumas licenças de código aberto são restritivas demais, de forma que elas não se qualificam como licenças livres. Por exemplo, a “Open Watcom” é não livre porque sua licença não permite fazer uma versão modificada e usá-la de forma privada. Por sorte, poucos programas usam tais licenças.

Em segundo lugar, quando o código-fonte de um programa carrega uma licença fraca, uma sem copyleft, seus executáveis podem conter condições adicionais não livres. A Microsoft faz isso com o Visual Studio Code, por exemplo.

Se esses executáveis corresponderem totalmente aos fontes lançados, eles se qualificam como código aberto, mas não como software livre. No entanto, nesse caso, os usuários podem compilar o código-fonte para criar e distribuir executáveis livres.

Finalmente, e mais importante na prática, muitos produtos contendo computadores verificam assinaturas em seus programas executáveis para bloquear usuários de instalar executáveis; apenas uma empresa privilegiada pode fazer executáveis que funcionem no dispositivo e que possa acessar toda sua capacidade. Nós chamamos esses dispositivos de “tiranos”, e a prática é chamada de “tivoização” em referência ao produto (Tivo) através do qual nós vimos isto pela primeira vez. Mesmo que o executável tenha sido feito de código aberto, e nominalmente carrega uma licença livre, os usuários não podem executar versões modificadas dele, motivo pelo qual o executável é não livre de-facto.

Muitos produtos Android contêm executáveis tivoizados não livres do Linux, mesmo que seu código-fonte esteja sob a versão 2 da GNU GPL. Projetamos a versão 3 da GNU GPL para proibir essa prática.

Os critérios de código aberto se preocupam unicamente com o licenciamento do código aberto. Então, esses executáveis não livres, quando feitos a partir de código aberto como o Linux, que é um código aberto e livre, são códigos abertos, porém não livres.

Enganos comuns em relação ao “Software Livre” e “Código Aberto”

O termo “software livre” está propenso a interpretação errada: o sentido não intencional de “software que você pode adquirir a custo zero” se encaixa ao termo tão bem quanto o sentido intencional, “software que dá ao usuário certas liberdades”. Nós resolvemos esse problema ao publicarmos a definição de software livre e ao dizer “Pense em ‘liberdade de expressão’, não em ‘cerveja grátis’”. Essa não é uma solução perfeita; ela não elimina completamente o problema. Um termo não ambíguo e correto seria melhor, se ele não apresentasse outros problemas.

Infelizmente, todas as alternativas na língua inglesa têm problemas próprios. Temos avaliado as muitas sugestões propostas pelas pessoas, mas nenhuma é tão claramente “adequada” que mudar para ela seria uma boa ideia. (Por exemplo, em alguns contextos, a palavra “libre” do Francês e do Espanhol funciona bem, porém as pessoas da Índia não a reconhecem de forma alguma.) Todas as substituições propostas para “software livre” trazem algum tipo de problema semântico – e isso inclui “software de código aberto”.

A definição oficial de “software de código aberto” (que foi publicada pela Open Source Initiative e é longa demais para ser incluída aqui) foi indiretamente derivada dos nossos critérios para o software livre. Ela não é igual; é um pouco mais ampla em alguns aspectos. Não obstante, a definição deles concorda com a nossa na maioria dos casos.

Contudo, o sentido óbvio para a expressão “software de código aberto” – e o único que boa parte das pessoas parece considerar — é “Você pode dar uma olhada no código-fonte”. Esse critério é mais fraco do que a definição de software livre e mais fraco também do que a definição oficial de código aberto, pois isso inclui muitos programas que não são nem livres nem código aberto.

Por que as pessoas entendem mal dessa forma? Porque esse é o significado natural das palavras “código aberto”. Mas o conceito para o qual os defensores do código aberto buscaram outro nome era o de software livre.

Visto que o sentido óbvio para “código aberto” não é o mesmo que seus defensores intencionam, o resultado é que muitas pessoas interpretam mau o termo. De acordo com o escritor Neal Stephenson, “o Linux é um software de ‘código aberto’, o que significa, simplesmente, que qualquer um pode obter cópias de seus arquivos de código-fonte”. Eu não acho que ele deliberadamente procurou rejeitar ou contestar a definição “oficial”. Eu penso que ele simplesmente aplicou as convenções da língua inglesa para encontrar um sentido para o termo. O estado do Kansas publicou uma definição similar: “Fazer uso de software de código-aberto (OSS). OSS é o software para o qual o código-fonte é livre e disponibilizado publicamente, porém os acordos de licenciamento específicos variam quanto ao que é permitido se fazer com o código”.

O New York Times publicou um artigo que estende o sentido do termo para se referir a testes beta de usuário – deixar que alguns usuários testem uma versão inicial e enviem feedback confidencial – que os desenvolvedores de software privativo têm praticado por décadas.

O termo foi estendido até mesmo para incluir projetos para equipamento que estão publicados sem uma patente. Projetos de equipamentos sem patentes podem ser contribuições louváveis para a sociedade, porém o termo “código aberto” não se aplica a eles.

Os partidários do código aberto tentam lidar com isso chamando atenção para sua definição oficial, mas essa abordagem corretiva é menos efetiva para eles do que para nós. O termo “software livre” tem dois sentidos naturais, um dos quais é o sentido intencional; assim uma pessoa que tenha captado a ideia de “liberdade de expressão, não cerveja grátis” não errará novamente. Porém, o termo “código aberto” tem apenas um sentido natural, que é diferente do sentido que seus partidários tinham em mente. Assim, não há modo sucinto de explicar e justificar sua definição oficial – o que torna a confusão pior.

Outro engano sobre o “código aberto” é a ideia que ele significa “não usando a GNU GPL”. Esse engano tende a acompanhar outro mal-entendido que “software livre” significa “software coberto pela GPL”. Ambos são equívocos, visto que a GNU GPL qualifica-se como uma licença código aberto e a maioria das licenças de código aberto qualificam-se como licenças de software livre. Há muitas licenças de software livre além da GNU GPL.

O termo “código aberto” tem sido adicionalmente estendido por sua aplicação a outras atividades, tais como governo, educação e ciência, onde não existe código-fonte e onde os critérios para licenciamento de software são simplesmente não pertinentes. A única coisa que essas atividades têm em comum é que elas, de alguma forma, convidam as pessoas a participar. Eles estenderam tanto o termo que ele apenas significa “participativo” ou “transparente”, ou menos que isso. Na pior das hipóteses, ele se tornou um termo vazio na moda.

Valores diferentes podem levar a conclusões similares – mas nem sempre

Grupos radicais da década de 1960 tinham a reputação de faccionalistas: algumas organizações dividiram-se devido a desacordos sobre detalhes de estratégia e os dois grupos criados tratavam-se um ao outro como inimigos, a despeito de terem valores e objetivos básicos similares. A ala direita fez muito caso disso e usou isso para criticar toda a ala esquerda.

Alguns tentam rebaixar o movimento do software livre ao comparar nosso desacordo com o código aberto ao desacordo de outros grupos radicais, mas a verdade é outra. Nós discordamos com a campanha do código aberto no que concerne aos valores e objetivos básicos, mas tanto a visão deles quanto a nossa, em muitos casos, levam ao mesmo comportamento prático – tal como desenvolver software livre.

Como consequência, pessoas do movimento do software livre e pessoas do código aberto frequentemente trabalham juntas em projetos práticos, tal como o desenvolvimento de software. É digno de nota que essas diferentes visões filosóficas podem às vezes motivar diferentes pessoas a participar nos mesmos projetos. No entanto, há situações em que essas visões fundamentalmente diferentes levam a ações muito diferentes.

A ideia do código aberto é que permitir aos usuários mudar e redistribuir o software irá torná-lo mais poderoso e confiável. Porém, isso não é garantido. Desenvolvedores de software privativo não são necessariamente incompetentes. Às vezes, eles produzem um programa que é poderoso e confiável, ainda que ele não respeite a liberdade dos usuários. Os ativistas do software livre e entusiastas do código aberto irão reagir de modo bem diferente a isso.

Um puro entusiasta do código aberto, alguém que absolutamente não é influenciado pelos ideais do software livre, dirá: “Eu estou surpreso que você conseguiu fazer um programa rodar tão bem sem usar nosso modelo de desenvolvimento, mas você conseguiu. Como obtenho uma cópia?”. Essa atitude recompensará esquemas que tiram nossa liberdade, levando à sua perda.

Um ativista do software livre dirá: “Seu programa é muito atrativo, porém, eu valorizo mais a minha liberdade. Sendo assim, eu rejeito seu programa. Eu criarei minha obra de outra forma, e apoiarei um projeto para desenvolver um substituto livre”. Se nós valorizamos nossa liberdade, nós podemos agir para mantê-la e defendê-la.

Software poderoso e confiável pode ser ruim

A ideia que desejamos que o software seja poderoso e confiável advém da suposição de que o software está designado para servir seus usuários. Se ele é poderoso e confiável, isso significa que ele os serve melhor.

Porém, pode-se dizer que o software serve aos seus usuários somente se respeita sua liberdade. E se o software for projetado para acorrentar seus usuários? Então, ser poderoso significa que as correntes são mais constritivas e ser confiável significa que elas são mais difíceis de remover. Características maliciosas, tais como espionar os usuários, restringir os usuários, backdoors, e imposição de upgrades são comuns no software privativo, e alguns mantenedores do código aberto querem implementá-los nos programas de código aberto.

Sob pressão das companhias de cinema e gravadoras, o software para uso pessoal é cada vez mais projetado especificamente para limitar os usuários. Essa característica maliciosa é conhecida como Gestão de Restrições Digitais (DRM – do inglês Digital Restrictions Management) (veja DefectiveByDesign.org) e é a antítese no espírito da liberdade que o software livre visa proporcionar. E não apenas no espírito: visto que o objetivo do DRM é esmagar sua liberdade, os desenvolvedores DRM tentam torná-lo mais difícil, impossível ou ainda ilegal para você mudar o software que implementa o DRM.

Ainda assim, alguns defensores do código aberto têm proposto software “DRM código aberto”. Sua ideia é que, mediante a publicação do código-fonte dos programas desenvolvidos para restringir seu acesso à mídia criptografada e ao permitir que outros mudem o programa, irão produzir um software mais poderoso e confiável para limitar usuários como você. O software seria então distribuído a você em aparelhos que não lhe permitem modificações.

Esse software pode ser de código aberto e usar o modelo de desenvolvimento do código aberto, mas ele não será software livre, visto que ele não respeitará a liberdade dos usuários que de fato o rodarão. Se o modelo de desenvolvimento de código aberto obter êxito em tornar esse software mais poderoso e confiável ao limitar você, isso o tornará ainda pior.

Medo da Liberdade

A principal motivação inicial daqueles que se desligaram do movimento do software livre e criaram o empreendimento do código aberto era que as ideias éticas de “software livre” deixavam algumas pessoas receosas. É verdade: levantar questões éticas como liberdade e falar sobre responsabilidade, bem como conveniência, é pedir às pessoas que pensem sobre coisas que elas podem preferir ignorar, como, por exemplo, sobre se sua conduta é ética. Isso pode desencadear desconforto e algumas pessoas poderão simplesmente fechar suas mentes. Mas daí não resulta que devamos parar de falar dessas questões.

Isso é, entretanto, o que os líderes do código aberto decidiram fazer. Eles concluíram que calando-se a respeito da ética e da liberdade, e apenas falando sobre os benefícios práticos imediatos de certo software livre, eles poderiam “vender” o software de maneira mais eficaz a certos usuários, especialmente a empresas.

Quando proponentes de código aberto falam sobre qualquer coisa mais profunda que isso, geralmente é a ideia de fazer do código-fonte um “presente” para a humanidade. Apresentar isso como uma espécie de boa ação, além do que é moralmente exigido, presume que distribuir software privativo sem um código-fonte é moralmente legítimo.

Essa abordagem se mostrou efetiva, em seus próprios termos. A retórica do código aberto tem convencido muitos empresários e indivíduos a usar, e ainda desenvolver, software livre, o que tem estendido nossa comunidade – porém, apenas em um nível superficial, prático. A filosofia do código aberto, com seus valores puramente práticos, impede a compreensão das ideias profundas do software livre; ela traz muitas pessoas à nossa comunidade, porém não as ensina a defendê-la. Isso é bom até certo ponto, mas não é o bastante para assegurar a liberdade. Atrair usuários para o software livre os leva apenas até parte do caminho de se tornar defensores da própria liberdade.

Mais cedo ou mais tarde esses usuários serão convidados para voltar ao software privativo por alguma vantagem prática. Incontáveis companhias procuram oferecer tal tentação, algumas até mesmo oferecendo cópias grátis. Por que os usuários rejeitariam? Apenas se houvessem aprendido a valorizar a liberdade que o software livre lhes dá, o valor da liberdade em si mesma, ao invés de conveniência técnica e prática de softwares livres específicos. Para espalhar essa ideia, nós temos que falar sobre liberdade. Um pouco da abordagem “silenciosa” ao conversar com empresas pode ser útil para a comunidade, mas é perigoso se ela se tornar tão comum que o amor pela liberdade passe a ser visto como uma excentricidade.

Essa situação perigosa é exatamente o que temos. Muitas pessoas envolvidas com software livre, especialmente seus distribuidores, falam muito pouco sobre liberdade – geralmente porque eles visam ser “mais aceitáveis para o comércio”. Quase todas as distribuições GNU/Linux adicionam pacotes privativos ao sistema livre básico, e eles convidam os usuários a considerar isso uma vantagem, ao invés de uma falha.

Software privativo adicional e distribuições GNU/Linux parcialmente não livres encontram campo fértil porque boa parte de nossa comunidade não insiste na liberdade em seu software. Isso não é coincidência. A maioria dos usuários GNU/Linux foram introduzidos ao sistema por meio da discussão do “código aberto”, que não diz que a liberdade é um objetivo. As práticas que não apoiam a liberdade e as palavras que não versam sobre liberdade estão de mãos dadas, uma promovendo a outra. Para superar essa tendência, nós precisamos de mais, não de menos, discussões sobre liberdade.

“FLOSS” e “FOSS”

Os termos “FLOSS” e “FOSS” costumavam ser neutros entre software livre e código aberto. Se neutralidade é o objetivo, “FLOSS” é o melhor dos dois. Porém, se você deseja apoiar a liberdade, usar um termo neutro não é o caminho. Defender a liberdade significa mostrar para as pessoas que você apoia a liberdade.

Rivais de ideias

“Livre” e “aberto” são rivais em ideias. Software livre e código aberto são ideias diferentes mas, na forma que a maioria das pessoas estão vendo os softwares, elas competem pelo mesmo espaço conceitual. Quando pessoas se habituam a dizer e pensar “código aberto”, isso é um obstáculo para compreender a filosofia do movimento de software livre e pensar sobre isso. Se elas já nos associaram e nossos softwares com a palavra “aberto”, nós podemos precisar dar um choque intelectual antes que eles reconheçam que nós apoiamos alguma outra coisa. Qualquer atividade que promove a palavra “aberto” tende a estender a cortina que oculta as ideias do movimento de software livre.

Então, ativistas de software livre são aconselhados a negar trabalhar em uma atividade que se denomina “aberto”. Mesmo se a atividade seja boa, toda contribuição que você faz prejudica um pouco no sentido de promover a ideia de código aberto. Há muitas outras atividades boas que se autodenominam “livre” ou “libre”. Cada contribuição para estes projetos faz um bem extra neste sentido. Com tantos projetos úteis para escolher, por que não escolher aqueles que fazem um bem extra?

Conclusão

Na medida em que os defensores do código aberto atraem novos usuários a nossa comunidade, nós, ativistas do software livre, devemos assumir a tarefa de trazer a questão da liberdade à sua atenção. Nós temos que dizer: “Isso é software livre e dá a você liberdade”, mais e mais alto do que nunca. Toda vez que você diz “software livre”, ao invés de “código aberto”, você ajuda nossa causa.

Nota

O artigo de Lakhani e Wolf sobre a motivação dos desenvolvedores de software livre diz que uma fração considerável é motivada pela visão de que o software deve ser livre, a despeito do fato de que eles entrevistaram desenvolvedores no SourceForge, um site que não defende a visão de que essa é uma questão ética.