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).

terça-feira, 23 de setembro de 2008

Curso de Patentes...

Acabei de fazer semana passada um curso sobre patentes que levantou muitas questões interessantes. Assim como a vontade de conseguir registrar ou patentear algo novo.

Também descobri que é muito fácil se perder uma boa idéia fazendo um cadastro equivocado da mesma no instituto nacional de propriedade insdustrial (http://www.inpi.gov.br). Ali existem inúmeras tentativas de patente que não deram certo... E que por não darem certo, entram no estado da arte (são publicadas) e por isso, impedem uma nova tentativa de pedido de patente de algo semelhante, mesmo que a tentativa anterior tenha sido sua mesmo!

Mas acho que o mais interessante foi entender que software pode, sim, conseguir uma patente (mesmo que em geral as regras digam que não deve, atualmente os países todos tem autorizado patentes de software). O registro de autor até serve para você ter em mãos uma forma de punir aqueles que pirateiam o seu software, mas não serve para muito mais do que isso. A patente, porém, pode proteger a sua idéia, dependendo de como escrever isso (tem que ser criativo, porque dependendo de como escrever, pode simplesmente perder a idéia, como disse acima).

Por exemplo, o famoso duplo clique que a Microsoft patenteou e agora processa o linux por fazer uso. Quando tiveram a idéia de usar o duplo clique para acessar uma funcionalidade na Microsoft, alguém muito esperto patenteou a idéia e disse como que implementou a idéia (como que se faz o duplo clique). Agora, independetemente de o Linux ter feito a funcionalidade de duplo clique com um código diferente, eles "roubaram" a idéia da Microsoft e por isso devem pagar... Enfim, apesar de você ter que dizer um meio para conseguir uma patente, os fins são protegidos também, o que torna a patente bastante valiosa, mesmo para software.

O curso também valeu para ouvir falar de algumas patentes brasileiras que fizeram sucesso, como o escorredor de arroz ou o mecanismo que deixa o guarda-chuvas automaticamente aberto - antes você tinha que rosquear o guarda-chuvas para ele se manter aberto. Mas a dica principal mesmo, é para prestar atenção nestas pequenas melhorias que podem ser feitas, mesmo que não esteja inventando o próprio guarda-chuvas... Isto é especialmente verdade em software. Abra os olhos!