domingo, 4 de março de 2007

Software Livre: História

Começando hoje, pretendo publicar um pequeno conjunto de textos sobre software livre abordando sua história, as motivações para desenvolvê-lo e utilizá-lo, os modelos de negócio baseados nele e alguns dos mitos que ainda permanecem bastante difundidos. Os textos serão adaptações de partes da monografia que eu co-escrevi para a conclusão de um MBA em Gestão Empresarial. Agradeço à Christina, à Luciane, ao Paulo, ao Rafael e à Sofia, que compartilharam comigo as agruras de escrever o trabalho, por me permitire publicar este resumo.

A Free Software Foundation (FSF) define como software livre aquele que qualquer um pode executar, copiar, distribuir, estudar, modificar e aperfeiçoar. Mais precisamente, o conceito de software livre requer que os termos de distribuição do programa ofereçam estas quatro liberdades aos seus usuários:
  • A liberdade de executar o programa, para qualquer propósito.

  • A liberdade de estudar como o programa funciona e de adaptá-lo para as suas necessidades.

  • A liberdade de redistribuir cópias do programa.

  • A liberdade de aperfeiçoar o programa e de liberar os seus aperfeiçoamentos ao público, de modo que toda a comunidade de usuários possa se beneficiar.


Richard Stallman cunhou o termo "software livre" em 1984 e fundou a FSF em 1985 com o objetivo de promover o desenvolvimento e a utilização deste tipo de software. A estratégia original da FSF, idealizada por Stallman, foi a de implementar um sistema operacional completo, composto inteiramente de software livre. O sistema, inspirado nos sistemas Unix da época, ganhou o nome de GNU, um acrônimo recursivo significando GNU's Not Unix. Até 1990 a FSF já havia atraído o interesse de vários colaboradores individuais e desenvolvido um conjunto significativo de software no Projeto GNU, com a exceção de um núcleo (kernel) para o sistema. Em 1991 o finlandês Linus Torvalds iniciou o desenvolvimento do Linux kernel e disponibilizou-o como software livre. A concretização de um núcleo livre e o advento da Internet foram provavelmente os maiores responsáveis pela viabilização do ideal de Stallman. O Linux, por permitir pela primeira vez que um computador rodasse um sistema completamente livre. A Internet, por permitir que o modelo de desenvolvimento colaborativo pudesse ser adotado em grande escala.


As quatro liberdades citadas na definição são centrais ao conceito de software livre. A associação comum, mas errônea, que se faz entre software livre e software grátis resulta de dois fatores: um semântico e outro econômico. O fator semântico está relacionado ao fato de que a palavra free em inglês pode significar tanto “liberdade” quanto “gratuidade”. Stallman alerta que o termo free deve ser entendido como em free speech e não como em free beer. Existe um termo específico para designar software grátis que também é comumente confundido com software livre: freeware.


O fator econômico que leva a esta confusão é que quase todo software livre pode ser baixado gratuitamente da Internet. Mas o que leva a quase todo software livre estar disponível gratuitamente não é uma restrição conceitual ou jurídica, mas sim efeito indireto da liberdade de redistribuição. Como qualquer usuário pode redistribuir o software (cobrando ou não por isso) este se torna um bem abundante e perde seu valor de venda: uma simples aplicação da Lei da Oferta e da Procura. Portanto, software livre não é anti-comercial ou não-comercial. Ele apenas dificulta a sua comercialização através do modelo tradicional de venda de licenças de uso.


O termo software proprietário é comumente usado para designar o software não-livre. Isto não é estritamente correto porque a maioria dos softwares livres são de propriedade de seus autores originais. A legislação de direito autoral (no Brasil e em outros países de direito romano) ou de copyright (nos EUA e em outros países de direito anglo-saxão) garante ao autor do software direitos exclusivos sobre a sua utilização e distribuição. A maioria dos sistemas de software livre são distribuídos mediante licenças de uso bastante liberais nas quais os autores abrem mão da maioria dos seus direitos para conferir aos usuários as quatro liberdades fundamentais. O contrário de software proprietário seria software em domínio público, i.e., software cujo autor tenha abdicado explicitamente de todos os seus direitos ou cujos direitos tenham expirado. Apesar disto, o termo "software proprietário" está tão fortemente associado ao conceito de software livre como sendo seu antônimo que já não é mais possível substituí-lo por outro mais correto.


(Na verdade, não existe ainda software em domínio público por expiração do copyright ou do direito de autor porque o prazo de expiração destes direitos é muito grande. No Brasil, o direito autoral expira 70 anos depois da morte do autor. Nos EUA, o copyright de uma obra criada por um autor individual expira 70 anos depois da sua morte e o copyright de uma obra criada por uma corporação expira 95 anos depois da primeira publicação ou 120 anos depois da sua criação, o que vier primeiro. Os poucos sistemas de software em domínio público de que se tem notícia estão nesta condição por terem sido assim colocados explicitamente pelos seus autores. Um dos exemplos mais conhecidos é o do processador de texto TeX.)


De fato, a definição de software livre cita apenas as quatro liberdades fundamentais que os termos de distribuição do software precisam garantir. Por não ser regido por nenhuma regra, o software em domínio público não impõe nenhuma restrição ao usuário, podendo ser considerado uma forma degenerada de software livre, visto que seus usuários têm liberdade de fazer com ele o que bem entenderem. Dentre os sistemas de software livre que não estão em domínio público há uma grande variedade de licenças de uso que conferem minimamente as quatro liberdades fundamentais. Algumas licenças são tão liberais que exigem apenas a preservação do termo de copyright, e ressaltam o não oferecimento de qualquer garantia. Programas regidos por este tipo de licença, assim como aqueles em domínio público, podem ser re-distribuídos como software proprietário ou servir de base para o desenvolvimento de outros sistemas de software proprietários.


Outras licenças impõem restrições aos termos que os usuários podem usar para redistribuir o software regido por elas. Normalmente estas licenças não permitem que o código fonte do software seja usado como parte de uma obra maior, a menos que o produto final seja também regido pela mesma licença. Estas licenças funcionam efetivamente como uma “vacina” para que o código fonte do software livre não seja “contaminado” por código fonte proprietário. (Infelizmente, é mais comum encontrar mençoes à metáfora inversa, falando no “efeito virótico” destas licenças, no sentido de que se alguém incorporar código fonte regido por elas em um programa proprietário o programa passa a ser necessariamente livre.) A GNU GPL é a licença livre mais antiga e mais utilizada. Ela se enquadra no rol das licenças que restringem a utilização do produto como base para o desenvolvimento de software proprietário. Ela foi idealizada por Richard Stallman como parte de sua estratégia para preservar o corpo de software livre que a FSF produz.


Além de desenvolverem software livre, Stallman e a FSF iniciaram um movimento ideológico atrelado ao conceito de software livre. Mas ao final da década de 1990, nem todos os participantes da comunidade de software livre compartilhavam dos ideais de Stallman. Um conjunto de hackers influentes na comunidade viam motivações mais pragmáticas e menos ideológicas para o desenvolvimento e a utilização de software livre. (O significado original do termo hacker era usado para designar uma pessoa altamente competente na programação de computadores. Sua associação aos vândalos e criminosos da Internet é uma conotação mais recente e extremamente infeliz. A wikipedia conta a história dessa controvérsia.) Eles julgavam que o modelo de desenvolvimento colaborativo tradicionalmente empregado nos projetos de software livre tinha vantagens importantes, em termos de qualidade e custo, em relação ao modelo usado no desenvolvimento dentro das empresas. Mas eles viam fortes barreiras para a adoção do software livre no mundo empresarial, principalmente em função da conotação fortemente ideológica do movimento liderado por Stallman e da associação infeliz entre software livre e software grátis.


Em 1998 esses hackers se organizaram com o objetivo explícito de delinear uma campanha de marketing para promover o conceito de software livre no mundo empresarial. Sua primeira ação foi cunhar o termo open source software, ou software de código aberto, como sinônimo de software livre mas usando palavras menos ambíguas e menos carregadas. Com ligações dentro de algumas empresas de tecnologia do Vale do Silício e na imprensa, eles empreenderam uma campanha visando criar visibilidade para o novo termo e associá-lo às vantagens pragmáticas do modelo de desenvolvimento. Nesta época surgiram dois documentos seminais que influenciaram tremendamente o sucesso da campanha. Eric Raymond escreveu The Cathedral and the Bazaar, artigo no qual procurou explicar o funcionamento do modelo de desenvolvimento e foi importante na decisão da Netscape de liberar o código fonte do seu browser. Bruce Perens escreveu a Open Source Definition que define software de código aberto em função de um conjunto de critérios que seus termos de distribuição devem respeitar, incluindo a liberdade de redistribuição, modificação e redistribuição e a disponibilização do código fonte.


O termo “código aberto” não está livre de ambiguidades, porém. Exatamente por ressaltar um dos aspectos do software livre, a necessidade de disponibilizar o código fonte, há quem entenda que basta vir acompanhado do código fonte pra que um software seja considerado de código aberto. Isto não é o caso, como ressalta a Open Source Definition logo na sua introdução. Além de ter acesso ao código fonte, é preciso que o usuário tenha a liberdade de modificá-lo e redistribuí-lo sem restrições adicionais.


Apesar de possuirem definições bem diferentes, software livre e software de código aberto são essencialmente a mesma coisa em termos de classificação. Isto é, todo software livre é software de código aberto e vice-versa. A diferença, nem sempre percebida, está na conotação que cada termo traz e implica em relação ao produto qualificado. Ao falar em software livre o interlocutor está ressaltando as liberdades que ele confere ao usuário. Já ao falar em software de código aberto o interlocutor está ressaltando as vantagens inerentes ao seu modelo de desenvolvimento.


A campanha de marketing desses hackers funcionou. Pelo menos no que se refere ao novo nome. Hoje o termo “open source” é usado três vezes mais freqüentemente que o termo “free software”, de acordo com os resultados da pesquisa no Google. Mas é interessante perceber que no Brasil este fenômeno não ocorreu. O termo “software livre” é usado duas vezes mais freqüentemente que os termo “código aberto” e “open source” juntos, de acordo com o Google. Eu creio que isso se deva, em primeiro lugar, ao fato de que o termo “livre” em português não tem conotação de “grátis”. Além disso, é mais fácil falar e escrever “software livre” que “open source” ou “código aberto”.


Eu prefiro falar "software livre". Acho que soa melhor. Talvez porque eu tenha começado a usá-lo alguns anos antes de o termo "código aberto" ter sido inventado. Há um conjunto de hackers para os quais a escolha do termo reflete um posicionamento ideológico. Respeito isso e acho que os argumentos dos dois lados são bastante fortes. Mas não é o meu caso. Meu uso do termo "software livre" não traz nenhum juízo de valor.

Nenhum comentário:

Postar um comentário