Visões inovadoras do código livre e do open source no desenvolvimento da internet
Iniciativas de código aberto e softwares livres foram responsáveis em moldar o principal meio de comunicação moderno
Linux, React, Angular.js, Mozilla, Apache, HTTP, Docker e Kubernetes. Softwares distintos, desenvolvidos por pessoas diferentes, empresas diferentes, propósitos diferentes e que, às vezes, disputam um espaço no imenso mercado da tecnologia.
Todos com um traço em comum: são fontes de código aberto, open source, disponíveis para a colaboração e desenvolvimento de toda comunidade.
Um jeito bastante genérico de descrever o trabalho de um programador, engenheiro de software ou desenvolvedor web e de aplicativos, é dizer que se trata de uma pessoa criadora de soluções de ferramentas tecnológicas facilitadoras para o mundo.
Genérico sim, porém correto.
Dentro desse conceito, surgiu um estereótipo que se sustenta até hoje. Por muito tempo, a cultura da programação foi reconhecida em ser formada por seres humanos completamente isolados e solitários por trás de sistemas complexos e intermináveis linhas de códigos.
No entanto, existe uma magia por trás disso que quebra completamente o estereótipo.
A programação é formada por uma comunidade que vive e se mantém graças ao trabalho coletivo de milhares de devs. Por mais que você saiba programar de ponta-a-ponta ou resolver os problemas sozinho, você depende da colaboração de uma rede de pessoas, pessoas essas que estão felizes em compartilhar soluções.
Essa magia não é fictícia, nem fabulosa, é uma cultura criada em volta do código aberto, do open source e do software livre.
E isso tem muita história.
Tudo é sobre a comunidade
Existe uma diversidade praticamente infinita de criações abertas para o uso da comunidade. O que não existem são limites quando se trata de avanço tecnológico e código. Todos os dias surgem novidades, e é por isso que todos os dias também surgem problemas que precisam ser resolvidos.
Na internet, alguns sites reconhecidos são responsáveis por manter a comunidade ativa em busca de soluções. Você deve conhecer o GitHub, por exemplo, ou até mesmo o Stack Overflow. Outras comunidades são mantidas por redes de programadores conectados, veja a fundação OpenJS, descrita como um "centro gravitacional para o ecossistema JavaScript", ou mais recente o Gatsby, ferramenta open source de desenvolvimento web mantida pela comunidade.
Algumas iniciativas open source mudaram completamente o jeito que as coisas eram vistas e acessadas na internet. Na década de 80 e 90 a iniciativa de abrir o código por meio do open source era considerada ousada, até mesmo subversiva, de acordo com a lógica de autoria criativa e financeira. Criar alguma coisa, se dedicar a ela e entregá-la de braços abertos ao público?
Loucura.
Mas foi com essa mentalidade que surgiu o Linux kernel em 1991, fruto do trabalho de Linus Torvald, uma referência em assuntos open source e software livre (apesar da diferença entre ambos).
O Mozilla também é resultado dessa subversão, criado e elaborado com o código fonte do Netscape, um dos navegadores mais populares até 1998. Entre os princípios do Mozilla, por exemplo, está a promoção e o desenvolvimento da internet como bem público.
Mais recente, frameworks e bibliotecas open source de JavaScript, React, Angular e o clássico jQuery, impulsionaram a comunidade JS na web e facilitaram a vida de muitos programadores.
Um dos fundamentos da programação, além da funcionalidade dos sistemas, é a colaboração entre indivíduos. Por mais digital que seja, é um trabalho feito para conectar humanos e tecnologias.
Tanto é que está lá no Manifesto de Desenvolvimento Ágil: valorizar indivíduos e interações mais que processos e ferramentas. Por essas e tantas outras iniciativas que a comunidade de programadores é culturalmente forte.
Código desenvolvido por humanos
Quando falamos de sistemas e tecnologia, também precisamos trazer um contexto político e ideológico. Por isso, é importante a definição (e separação) dos termos software livre e código aberto. Duas visões distintas que surgiram de interesses semelhantes, fundamentais para o desenvolvimento da comunidade dev.
O que antecedeu a discussão sobre softwares livres foi o desenvolvimento do sistema operacional GNU (Gnu’s not Unix), por volta de 1983, pelo programador e ativista Richard Stallman. Na visão dele, o modelo do sistema de software privativo é “antissocial, antiético ou simplesmente errado”.
O projeto GNU surgiu no contexto em que praticamente todos softwares eram proprietários. O conceito de programas livres sequer existia naquela época. Em 1985 Stallman fundou a Free Software Foundation e criou a Licença Pública Geral GNU. No mesmo ano, lançou um manifesto para pedir apoio e definir as visões políticas e sociais do movimento.
A definição de software livre é baseada em quatro liberdades, segundo o site da fundação:
- liberdade de executar o programa como você desejar;
- liberdade de estudar e adaptar o programa;
- liberdade de redistribuir cópias com a finalidade de ajudar outros;
- liberdade de distribuir cópias de suas versões modificadas a outros.
A lógica do movimento de Stallman estava ligada ao ativismo e ao enfrentamento direto contra o mercado. A criação do software livre foi subversiva na época e, de fato, causou impacto na visão de distribuição tecnológica, agregando diversos adeptos no movimento até meados da década de 90 — o próprio Linux é um exemplo da licença GNU aplicada.
Em 1997, o desenvolvedor de software Eric Raymond publicou o famoso ensaio “A Catedral e o Bazar”*, refletindo sobre os rumos do software livre e questionando como torná-lo acessível às grandes empresas — que enxergavam o movimento como algo “anticapitalista”.
No artigo, Raymond descreve o Linux como um “grande e barulhento bazar de onde um sistema coerente e estável poderia aparentemente emergir somente por uma sucessão de milagres”. Em suas palavras, o Linux não é nenhuma “catedral calma e respeitosa”.
O artigo é considerado por pesquisadores o que deu origem ao Open Source Iniciative (OSI). Criada por um grupo de desenvolvedores de TI — adeptos ao software livre — incluindo Eric Raymond como liderança. A OSI propôs uma abordagem diferente da GNU, principalmente no que se refere às licenças de distribuição do software.
A OSI propõe ser uma alternativa ao mercado e não combatê-lo. Na licença Open Source o usuário pode ter acesso ao código fonte e modificá-lo como desejar. No entanto, o desenvolvedor original do software é quem determina as condições de uso e distribuição.
A lógica da OSI está ligada ao desempenho prático das aplicações. A iniciativa de código aberto está relacionada à técnica e prática dos profissionais de programação. Dessa forma os devs podem elaborar soluções e criar inovações por meio de sistemas compartilhados.
Richard Stallman, inclusive, confronta a OSI pelo teor prático dela, e reforça que software livre e open source são coisas completamente diferentes.
Apesar das diferenças, elas possuem um objetivo em comum: liberdade e democratização do acesso à tecnologias. Afinal, apesar de programarmos tecnologias avançadas e automatizadas, não podemos esquecer o caráter humano e democrático — colaborativo — desta profissão.