O software livre também tem a sua fatia de problemas exclusivos, que não são encontrados no software proprietário. Existem pelo menos quatro deles que precisam ser destacados para que produtores e consumidores possam se beneficiar mais e melhor dos softwares que, respectivamente, produzem e usam. Isto porque software livre, por si só, não é solução para nada. Para o desenvolvedor, ele precisa ser entendido como uma modalidade de desenvolvimento, e para o usuário como uma alternativa para aquisição.
Primeiro, software livre não te dá, necessariamente, livre acesso ao código fonte. Nem mesmo para vê-lo. Muitas vezes você precisa ser parte da comunidade de desenvolvedores de uma organização para poder ter acesso ao código. E mesmo que você seja um membro da equipe de desenvolvimento do, digamos, Firefox, isto não te dará o direito de mudar o código ao seu bel prazer. Software livre não significa desenvolvimento livre.

Muito pelo contrário, a maioria dos grandes e mais interessantes projetos possui toda uma hierarquia definida na equipe e modularização do código. Se por um lado esta divisão e controle garante maior eficiência ao desenvolvimento, por outro, torna o processo mais rígido e menos prazeroso, obrigando programadores a muitas vezes trabalhar em tarefas que não gostariam. Veja, por exemplo, a história de Con Kolivas, ex-desenvolver do núcleo do Linux e que parou de contribuir porque cansou de ter suas contribuições rejeitadas. Como consequência, todo software livre possui sempre o risco potencial de se dividir, o chamado ‘fork’. Em outras palavras, um mesmo projeto pode se transformar em dois ou três porque alguns programadores não estão satisfeitos e preferem criar uma nova continuação do projeto a suas maneiras.
Outro problema deste tipo de controle é a estratégia de algumas empresas em iniciar um projeto de software livre para atrair desenvolvedores e baratear seu custo de desenvolvimento. Depois, com um software um pouco mais robusto e bem acabado, esta mesma empresa fecha o projeto e torna-o proprietário. Nem sempre é possível reaver o código fonte depois que isto ocorre e os programadores que haviam contribuído para o código ficam a ver navios. Assim, seja porque um grupo de programadores dividiu o projeto ou porque uma empresa fechou seu código, os usuários de software livre correm sempre o risco de ficarem desamparados da noite para o dia.
Segundo, software livre não é software gratuito. Este é um erro muito comum mas que pode ter graves consequências. O Google, por exemplo, tem um discurso muito bonito de uso de software livre. Mas a maioria de seus principais produtos e serviços não são livres, são gratuitos. O conceito de livre é uma questão de liberdade. Deve ser pensado como em “liberdade de expressão”, não em “cerveja grátis”.

Não é possível nem ao menos ver o código fonte do Gmail, do Google Reader, Google Docs, do mecanismo de busca, dentre tantos outros produtos da empresa. Não temos esta liberdade. Pior, os dados dos usuários ficam nos servidores do Google e não nos computadores dos usuários. Para Richard Stallman [en], fundador da Free Software Foundation (Fundação para o Software Livre), “a computação na nuvem é uma armadilha (…) O conceito de usar programas na web como o Gmail do Google é pior que a estupidez.” Isto porque, em tese, não dá para simplesmente copiar os seus e-mails do Gmail de uma pasta para outra como você faria se estivesse usando um programa instalado no seu computador. É preciso toda uma sequência de passos para que você possa mover os seus e-mails para outro provedor. E, pior, você não tem como saber de fato o que uma empresa como o Google está realmente fazendo com seus dados.
Ter a liberdade de fazer o que quiser com o código-fonte de um software não significa que será possível usufruí-la. A maioria dos usuários não o faz (nem se importa) e apenas usa o software livre que também é grátis. Para ter a liberdade de alterar o código é preciso entendê-lo e/ou custear uma equipe ou uma empresa terceira para mantê-lo atualizado e em sintonia com seus interesses (ou da sua empresa).
Terceiro, software livre não é necessariamente melhor para o usuário final. Michelle Levesque, por exemplo, discute em um artigo científico seu (publicado no periódico First Monday – de acesso gratuito ao conteúdo) cinco potenciais problemas do software livre neste sentido: 1) A frequente falta de investimentos no desenvolvimento da interface com o usuário, 2) a pouca documentação disponível, 3) a falta de foco em tornar o software mais robuto, 4) a falta de foco também no desenvolvimento de recursos para o usuário final e, finalmente, 5) muitas vezes por teimosia, a recusa de alguns programadores em aprender com o software proprietário e a usar inovações destes no software livre que desenvolvem.
A comparação entre a qualidade de software livre e proprietário é tema de muita discussão. Em geral, pode-se dizer que na média o software livre tem menos erros que os proprietários. Isto ocorre porque o software livre depende de sua qualidade para sobreviver já que não investe praticamente nada em marketing. Entretanto, um estudo publicado na Business Week em 2006 afirma que dentre os melhores softwares de cada um dos 15 mercados analisados, o software proprietário está na frente em 11. Em outras palavras, há muito mais software proprietário ruim que livre mas os melhores softwares proprietários são muito melhores que os melhores livres.

Quarto, software livre nem sempre é mais barato como a ilusão da palavra “livre” faz parecer. Afinal, os produtores dele também precisam ganhar dinheiro de alguma forma. Mas é difícil medir os custos de software de maneira agregada. Cada implantação tem suas particularidades e custos específicos, o que prejudica a medição precisa. Assim, sites que defendem o software proprietário publicam estudos a seu favor, da mesma forma que sites a favor do software livre o fazem com estudos a favor do software livre. Sobra para o usuário negociar o seu caso com as opções disponíveis.
Por exemplo, por conta da competição com o software livre empresas de software proprietário estão cada vez mais dispostas a baixar seus preços tornando-as uma opção mais barata – se já não a são. Mais ainda se os usuários que usarão o sistema proprietário já estiverem familiarizado com ele e se ele for, de fato, melhor. Mudar de software (independente da licença) significa arcar com os custos da mudança (os chamados “switching costs”), o que pode significar altos custos na troca do servidor, no treinamento dos usuários, e na migração dos dados.
Em outro cenário, ao optar por desenvolver um software livre que não existe, com o objetivo de substituir um software proprietário, muito dinheiro vai para o ralo por um motivo muito simples: Para a maioria dos projetos, pode não haver adesão de desenvolvedores voluntários o suficiente. Aí, no meio do caminho o projeto corre o risco de ser interrompido. E, neste caso, todos os esforços e recursos usados até aquele momento irão para o ralo também. Veja, por exemplo, os relatos de quem trabalha em projetos de software livre do governo federal:
“(…) Realmente falta massa. É um tanto difícil criar uma comunidade, um ecossistema de colaboração, já observado em projetos como Drupal e WordPress. No desenvolvimento do i-Educar, no qual participo, basicamente essa tarefa tem sido feita por 2 pessoas, num universo de 5.500 pessoas cadastradas na comunidade do projeto.
A missão é difícil. Muitos prestadores de serviços nesses softwares são despreparados e não possuem ainda a consciência de que é necessário contribuir aos projetos, nem que sejam pequenas contribuições.”
Demais comentários na discussão em torno dos projetos do governo também contém reclamações da burocracia para participação e da baixa qualidade atual dos mesmos. A iniciativa do governo é louvável mas é preciso a ele perceber que não é qualquer projeto que dará certo no modelo de desenvolvimento do software livre.
Na próxima semana: porque estes problemas são inerentes ao atual paradigma de desenvolvimento de software livre.
PS: As imagens que ilustram este texto são de Phillip Torrone e fazem parte do guia de 2009 da revista Make para hardwares desenvolvidos de forma aberta e livre.