terça-feira, 26 de maio de 2009

Conceitos de Software Livre

Software Livre, Software Grátis, Código Aberto, Software em Domínio Público e outros conceitos novos se misturam por ai hoje em dia.

Mas a idéia do software livre (free software) é até bastante simples. A idéia é que o usuário possa usar, estudar, copiar, modificar e redistribuir o software como e quando quiser.

Por isto, ele, usuário, seria livre para fazer o que quisesse com o software. A "Free Software Foundation" (www.fsf.org), inclusive, chega a se posicionar eticamente sobre o problema, defendendo que com software livre, nenhum usuário precisaria ficar preso ou dependente a uma empresa. Comemoram inclusive que em 1992, com o GNU e o kernel do Linux eles conseguiram criar um sistema operacional completo sem fazer uso de qualquer software proprietário.

Em inglês, a confusão com Software grátis é um pouco maior. Já que a palavra "free" também tem este significado. Mas o fato de o software ser livre, não tem nada a ver com o preço do software. Empresas e pessoas podem desenvolver software livre cobrando pelos seus serviços ou pelo software. Por exemplo, é possível contratar uma empresa para criar um software para fazer o que você precisa no linux. E mesmo que este
software venha a ter seu código aberto e atender todos os requisitos de um software livre, o serviço para que a alteração fosse realizada teria sido pago.

Agora, que definimos que não é o preço, vamos dizer quais as quatro condições que o software deve seguir para ser livre, segundo a FSF (Free Software Foundation). Você deve ser livre para:
- Utilizar o programa, para qualquer fim.
- Entender e alterar o programa para suas necessidades.
- Distribuir o programa para seu vizinho se quiser.
- Melhorar o programa e distribuir estas melhorias para toda a comunidade.

Então nós chegamos a um outro conceito, muito parecido com o de software livre. O de código aberto. O código do programa ser aberto ao usuário é condição necessária para a segunda (entender e alterar) e quarta (melhorar) liberdades, mas não significa que os dois conceitos são iguais. O usuário precisa poder acessar o código fonte dos programas para poder entender, alterar e melhorar ele. Mas existem algumas diferenças, por causa das licenças utilizadas em cada software, que permitem uma variação grande na forma como este código é distruído, por exemplo. Mesmo uma empresa que queira distribuir um programa de propriedade dela e não livre, poderia entregar o código fonte, sem lhe dar autorização para alterar ou distribuir (pelo menos até o software deixar de ser protegido pelas leis de direitos autorais e cair no
chamado domínio público)... De qualquer forma, existem principalmente dois tipos de licenças que permitem que o software com código aberto seja livre.

Licenças do tipo "copyleft", por exemplo, exigem que qualquer um que faça uma melhoria no software que funciona com esta licença, que mantenha o software livre depois com as suas alterações. Existem algumas licenças padrões já prontas, com a mais famosa sendo a licença GPL (General Public License), que é a licença que a própria fundação de software livre utiliza.

Mas mesmo sendo livre, o software pode seguir algumas regras na sua forma de distribuição ou utilização, se estas regras não entrarem em conflito com as quatro liberdades essenciais. Você pode até vender cópias de um software livre, só que não deve demorar até alguém resolver vender mais barato ou dar o seu software... Então é bom ter uma estratégia sólida para ganhar dinheiro com ele. O lado bom é que você
não vai nem ouvir falar de piratas, já que sua estratégia de negócios já teria que levar esta distribuição de terceiros em consideração.

Já o tipo de licença "non-copylefted free software" se refere ao software que é livre para as versões em que foi criado, mas é possível que outras versões sejam ou não livres. Ficando a critério de seus autores. E por esta razão não é muito recomendado pelos aficionados por software livre que se utilize este tipo de licença. Mas existem
softwares deste tipo e é possível se "apropriar" de software alheio e torná-lo proprietário (poder cobrar pela distribuição, alterações e não disponibilizar o código fonte).

Nenhum comentário: