O tema da coluna desta semana não se relaciona a nenhum acontecimento recente específico, mas conforme começo a escrever sobre tecnologia no DCO, achei que seria oportuno introduzir aos nossos leitores um debate antigo na área da computação. Qual seria a diferença entre um programa de computador com código aberto e um software livre?
Primeiro, permitam-me explicar o que queremos dizer com “código aberto”. Aplicações que usamos no dia-a-dia – como o navegador utilizado para exibir esse sítio – nada mais são do que uma sequência de instruções para o dispositivo que as executa. Busque o conteúdo dessa página pela internet, decodifique o texto recebido, faça o download das imagens associadas ao site, pinte este pixel desta ou daquela cor, e muito mais descrito num formato binário; sequências infindáveis de zeros e uns compreensíveis apenas pelas próprias máquinas – e por programadores de posse de muito tempo livre e das ferramentas corretas.
A tal abertura, então, diz respeito ao código-fonte das aplicações, que são as instruções originalmente escritas por um programador numa linguagem de programação menos abstrata, compreensível por seres humanos. Esse código-fonte é então submetido a um programa especial denominado compilador que transforma aquilo que foi descrito pelo programador em algo que o computador possa executar, como descrevi anteriormente.
Podemos concluir, portanto, que, dado o código-fonte, é possível, sem grande dificuldade, produzir o executável quantas vezes bem entendermos. Reproduzir o processo em diversos computadores é trivial. É por isso que não temos acesso ao código de diversas aplicações caríssimas, como o pacote Abode, tão adorado por designers e artistas. Seu produto não teria um bom preço no mercado se pudesse ser gratuitamente reproduzido ad infinitum.
Os próprios sistemas operacionais utilizados por um grande número de pessoas – Windows, macOS, iOS – são caixas-pretas. As leis de propriedade intelectual que protegem esses programas e tornam ilegal o próprio ato de tentar realizar a engenharia reversa de seus executáveis, procedimento complexo que buscar recuperar o código fonte a partir das instruções binárias.
Apesar dos programas caixa-preta, protegidos por patentes, serem bons para os negócios, são péssimos para a colaboração. Com o advento da internet, programadores de todo o mundo passaram a desenvolver sistemas e pedaços de software que podiam ser compartilhados entre todos e que evoluíam, em muitos casos, muito mais rápido do que o que uma empresa, com um número restrito de funcionários, conseguia desenvolver. Sítios como o GitHub e outros hospedam milhões de projetos prontos para serem estudados e utilizados pela sociedade.
Como ainda vivemos no modo de produção capitalista, é certo que essa liberdade existe apenas de forma limitada, ainda a serviço dos grandes monopólios. Um dos melhores exemplos disso é o WebKit, que, de uma forma ou de outra, serve de base para os principais navegadores de internet modernos (com exceção ao Firefox). O projeto, que tem sua origem no coletivo KDE, foi abraçado pela Apple e outros monopólios como uma tecnologia essencial para exibir conteúdo na internet.
Além de ser a base do Safari até hoje, podemos traçar as origens do Chromium no projeto que, por sua vez, mantido essencialmente pelo Google, serve de base para Google Chrome – navegador mais utilizado do mundo -, Microsoft Edge, Opera, Brave, Vivaldi e tantos outros navegadores quanto se possa imaginar. Além disso, muitas aplicações que utilizamos como se fossem “nativas” são, na realidade, navegadores disfarçados. É o caso, por exemplo, do Discord, ferramenta popular de comunicação entre os jovens.
Peço desculpas pela digressão, mas queria destacar como esse projeto é fundamental para o dia-a-dia na sociedade moderna e como ele ainda beneficia, e muito, os monopólios mencionados. Além de todos poderem usar seus funcionários para contribuir e evoluir a tecnologia, as empresas ainda contam com a iniciativa de programadores avulsos que simplesmente querem corrigir ou notificar um problema de forma mais detalhada. É uma fórmula mágica para conseguir trabalho de graça! É óbvio que os capitalistas amariam essa ideia!
Além de tudo, nada os impede de usar essa base construída coletivamente, adicionar alguma funcionalidade especial, e ocultar isso dos concorrentes, e da sociedade. Apesar do Chromium ter seu código aberto, o Chrome não tem. Nem o Safari, nem o Edge. Os monopólios fazem uso gratuitamente da infraestrutura construída coletivamente, adicionam alguns adereços no topo de tudo e nos vendem, fazendo uma grande fortuna. Em alguns casos, não vendem, mas colocam ferramentas de vigilância que nos espionam a fim de coletar dados para fazer um marketing mais efetivo – e, naturalmente, para ajudar o Estado a vigiar se nenhum membro da sociedade vai sair da linha!
O open source ou código aberto, apesar de ter encontrado uma resistência inicial das empresas nos anos 1980 e 1990, hoje em dia é praticamente abraçado. Ele reduz custos, evolui rapidamente e, de quebra, faz esses monopólios decrépitos parecerem amigáveis.
Existe porém uma ideia mais radical de código aberto: o software livre. Proposto de forma acabada por Richard Stallman em 1989, a Licença Pública Geral GNU garante que o código fonte por ela protegido “infecte” qualquer modificação feita sobre ele. Se o WebKit ou o Chromium estivessem cobertos pela GPL, como comumente é conhecida, Google, Microsoft e Apple, seriam obrigados a disponibilizar publicamente as alterações feitas no programa original por seus funcionários. Isso seria útil tanto para podermos fazer usos das melhorias e funcionalidades por eles desenvolvidas como para analisarmos se o programa tem comportamentos de caráter duvidoso, como espionar seus usuários.
Além disso, a Licença tem um outro caráter “infeccioso” e todo programa conectado a um software protegido pela GPL também deve utilizar a mesma licença. Essa parte é um pouco mais técnica… vou poupar os leitores provavelmente já cansados de uma explicação mais detalhada, mas saibam que essa é a razão central para muitos monopólios terem repulsa a software livre.
O Wordpress, que é a base do DCO e da grande maioria dos sítios da internet, é protegido pela GPL. Além dele, o sistema operacional Linux, que é peça central de infraestrutura na vasta maioria dos servidores que hospedam a grande maioria das aplicações disponíveis na internet, também o é. Ferramentas livres possibilitaram o desenvolvimento de muitas empresas, como a maior empresa da atualidade, a Amazon, que, ao contrário do se pensa, encontra a maior parte de seus lucros na hospedagem de aplicações em seus servidores (a famosa “nuvem”). Possibilitaram também que profissionais como eu pudessem estudar e aprender sua profissão sem ter que fazer um grande investimento em ferramentas caras e pagas. Possibilitam ainda que soluções e customizações desenvolvidas por uma pessoa ou grupo de pessoas sejam compartilhadas com a sociedade.
Na guerra contra as patentes de software e pela libertação das forças produtivas no âmbito da computação, o código aberto é uma manobra, uma forma dos monopólios de se apropriarem do trabalho coletivo. Podemos até considerá-lo uma privatização do software livre. O Linux, de certa forma, é uma anomalia que foi utilizada por certas empresas para furar o bloqueio de antigos monopólios, mas que todos os empresários do ramo da tecnologia desejam que não fosse software livre, mas simplesmente código aberto.
O avanço da tecnologia da informação introduziu um grande problema aos capitalistas. A reprodução de seus produtos digitais é trivial. Com uma oferta infinita, o preço da mercadoria tende a zero. Os programas de computação, deveriam, portanto, ser públicos, isto é, livres. Só não o são porque ainda somos escravos da lógica da acumulação infinita. O código aberto, assim, é um meio-termo esquisito, uma forma encontrada pelo modo de produção atual de conviver com o desenvolvimento das forças produtivas que continua, independentemente e, nesta fase imperialista em que nos encontramos, contra a sua vontade.
Artigo publicado originalmente em 12 de setembro de 2021