2008-06-08

O sucesso da GPL é um milagre?

Antes de começar esse post, quero deixar claro que adoro software GPL, sempre tenho preferência por usar Software Livre (e ainda escrevo com letras maiúsculas!) e, não por acaso, ganho a vida escrevendo sobre Código Aberto (também com letra maiúscula!).

Acho um pouco estranho um software GPL como o (kernel) Linux ter alcançado a ampla difusão mais rápido do que seus equivalentes licenciados sob a licença BSD.

Entenda as diferenças

De uma forma extremamente simplificada, a GPL exige, entre outras coisas, que o código-fonte de todo programa seja disponibilizado para o usuário sem custo adicional. Além disso, ela demanda que toda alteração feita ao código-fonte de um programa, ao ser redistribuída, seja entregue de volta à comunidade. Com isso, é obrigatório compartilhar com a comunidade todos os avanços implementados no programa.

A BSD, por sua vez, é muito mais permissiva. Qualquer software licenciado sob a BSD pode ser redistribuído sem o código-fonte, e as alterações feitas ao código não precisam ser compartilhadas com ninguém. Porém, se forem compartilhadas com a comunidade, essas alterações devem seguir a licença BSD. Ou seja, basicamente a BSD permite que se faça o que quiser com o código, inclusive fechá-lo à vontade.

O que me leva a esse pensamento é que a BSD parece muito mais viável comercialmente do que a GPL. Na GPL, a obrigatoriedade do retorno do código alterado à comunidade é ótima para a comunidade, claro. Porém, para empresas que desejem usar esse código em seus produtos, acrescentando a ele algumas alterações, essa obrigação pelo menos parece um problema.

No início da popularização do Software Livre, a GPL era chamada de "câncer" justamente por isso: ela "contaminava" os softwares desenvolvidos a partir de outros que a adotassem, obrigando o fabricante a retornar à comunidade trechos que ele não desejava. Então, a adoção do Software Livre como base para o desenvolvimento seguiu a lenta percepção das empresas de que colaborar é melhor do que reinventar a roda.

Com código BSD, essa percepção de que colaborar é melhor do que reinventar a roda poderia surgir mais gradativamente. Com uma base de código de alta qualidade liberada sob a BSD para todas as empresas, todas poderiam tomá-lo para si e desenvolver sobre ele, sem retornar nada a princípio. Porém, certamente algumas perceberiam as vantagens de retornar à comunidade pelo menos alguns trechos.

Com uma barreira de entrada reduzida, mais empresas usariam código aberto (BSD, no caso). Assim, existiria o argumento de que "quase todo mundo usa nosso software", o que, por sua vez, creio que facilitaria na hora de convencer as empresas usuárias e desenvolvedoras de que o código aberto tem boa qualidade e portanto vale a pena todos compartilharem seus desenvolvimentos com o restante da comunidade.

É claro que eu sei que isso não aconteceu, e que houve motivos. Só não sei exatamente quais foram esses motivos. Sugestões?