O que significa código aberto?

A maioria dos softwares que você compra ou baixa da Web vem na versão "pronta para rodar" compilada. Compilado significa que o código atual do programa que o desenvolvedor criou, conhecido como código fonte, funcionou através de um programa especial chamado compilador, que traduz o código fonte em uma forma que o computador entende (veja Como funciona a programação em C para detalhes sobre compiladores).

É extremamente difícil modificar a versão compilada da maioria das aplicações e quase impossível ver exatamente como o desenvolvedor criou diferentes partes do programa. A maioria dos fabricantes de softwares comerciais vêem isso como uma vantagem que impede outras empresas de copiar seu código usando-o como um produto de competição. Isso também dá a essas empresas controle sobre a qualidade e os recursos encontrado em um produto em particular.

O software de código aberto, ou open source, está no lado oposto do espectro. O código fonte está incluído com a versão compilada e modificações e personalizações são, na verdade, encorajadas. Os desenvolvedores do software que suportam o conceito acreditam que ao permitirem a qualquer interessado modificar o código fonte, a aplicação será mais útil e livre de erros no longo prazo. Para ser considerado software de código aberto pela indústria de desenvolvimento de software, certos critérios devem ser seguidos:

  • O programa deve ser livremente distribuído (ele pode ser parte de um pacote que é vendido, contudo, como a Red Hat fez com o Linux);
  • O código fonte deve estar incluído;
  • Qualquer um pode fazer modificações no código fonte;
  • A licença não pode exigir a exclusão de outro software ou interferir com a operação de outro software.

Vamos dar uma olhada num exemplo do mundo real do software de código aberto. Em 1991, Linus Torvalds, estudante da Universidade de Helsinque, na Finlândia desenvolveu um novo sistema operacional baseado no Minix, um derivativo do Unix, que ele batizou de Linux. Torvalds lançou a versão 0.02 do Linux como GNU (Licença Geral Pública, ou General Public License), que oferece uma boa definição legal do software de código aberto.

Um monte de gente ao redor do mundo fez o download do Linux e começou a trabalhar com ele. Muitos desses usuários foram programadores e fizeram modificações no código fonte que Linus Torvalds havia incluído. Durante os três anos seguintes, Torvalds recebeu essas versões modificadas dos outros programadores e incorporou muitas das mudanças na versão básica do Linux 1.0 lançado em 1994. Uma preocupação comum dos usuários finais que desejam usar o software de código aberto é a falta de garantia e suporte técnico. Porque a licença do software encoraja modificação e personalização, é praticamente impossível dar suporte.

Esse é o motivo pelo qual a Red Hat Software, fundada em 1994, criou o "Red Hat Linux Oficial" e vende o software livre normalmente. O valor principal que a Red Hat adiciona ao pacote é a garantia e o suporte técnico. Para a maioria dos negócios, a segurança de suporte técnico tem sido o fator-chave na decisão de comprar o Linux, em vez de simplesmente baixá-lo de graça.

Assim como a Red Hat, há várias empresas que têm pacotes Linux para revenda, normalmente com software adicionais. Além do Linux, Mozilla (núcleo do navegador Netscape), Apache (servidor Web), PERL (linguagem de script da Web) e PNG (formato de arquivo gráfico) são todos exemplos de softwares muito populares baseados em código aberto. Aqui estão alguns links interessantes (em inglês):