Quem paga a
conta do software livre?
Há quem pense que software livre é
diletantismo. Não
é bem assim, muita gente escreve software de 9 às 6,
às vezes até de
gravata, em empresas públicas e privadas. Entenda porque.
Ricardo Bánffy
Outro dia, em uma palestra na Assembléia Legislativa sobre o
uso de software livre na administração pública, eu
ouvi, pela
ducentésima vez, alguém perguntar de onde, afinal, vem o
dinheiro para
custear o desenvolvimento de tantos programas.
Não fiquei surpreso por ouvir a pergunta. Mas fiquei muito
surpreso que
as primeiras respostas não dessem conta de alguns fatos
importantes. Me
senti compelido a pedir o microfone à mesa e colocar, eu mesmo,
por
terra os temores do meu colega.
Esta é uma das perguntas clássicas que pessoas inocentes
ou
mal-intencionadas adoram fazer. Eu prefiro acreditar que este rapaz
(devia ter mais ou menos a minha idade, logo, vou chamá-lo de
rapaz)
era do primeiro grupo, embora ele estivesse cercado de pessoas que
faziam, evidentemente, parte do segundo.
Uma noção errada que muita gente ainda tem é de
que software
livre é feito nas horas vagas de profissionais que, depois de
voltar
pra casa do trabalho, fazer jantar, levar o cachorro passear e colocar
os filhos para dormir, ainda encontra tempo para escrever software.
Bom... Não quero desmerecer estes heróis, mas eles
não estão sozinhos.
Muita gente escreve software livre das 9 às 6. Alguns,
inclusive, usam gravata.Mas que coisa feia... Essas pessoas, sendo
pagas por seus empregadores, ficam brincando de fazer software que
depois vão dar pros outros?
Não é bem isso. Para responder esta pergunta, eu vou
citar alguns exemplos.
O produto que quase servia. Algum tempo atrás,
trabalhando na
empresa de um amigo, havia um cliente que tinha a necessidade de
autenticar os usuários da sua intranet contra um domínio
em um servidor
Windows NT. É uma necessidade comum.
O cliente, um banco internacional, tinha optado por construir sua
intranet com um servidor de aplicações chamado Zope (do
qual eu gosto
bastante, como evidencia o "powered by" que permeia meu site).
Localizamos um componente para o Zope que permitiria fazer exatamente
isto (e mais um monte de outros truques que não vêm ao
caso agora). Mas
havia um problema.
No primeiro teste na rede do banco, o componente não
funcionou. Examinando o código-fonte dele, descobrimos que ele
não
funcionaria por motivos relacionados à arquitetura da
própria rede do
banco (e que não seria, de forma alguma, modificada).
Conversamos e
decidimos que o caminho mais fácil seria arrumá-lo.
Algumas horas
depois, conversando com o "dono" do projeto via IRC (ele vive na
Austrália), dois de nós se tornaram colaboradores
"oficiais" (nossos
nomes estão na página
do produto).
Poucos dias depois, não só o problema da
autenticação estava resolvido,
como o produto tinha tido melhoras muito expressivas em seu desempenho
com a implementação de várias
otimizações. E nós nem mesmo precisamos
desvendar os becos escuros do Windows por onde é feita a
autenticação.
Resumindo: Melhorar um produto de terceiros tornou possível
entregar, rapidamente, uma solução que atendia as
necessidades do
cliente. Como um efeito colateral, outras empresas que criam
soluções
baseadas em Zope têm uma opção melhor para integrar
suas aplicações às
redes Windows dos seus clientes. Se ninguém tivesse precisado da
funcionalidade, ela não teria sido implementada ou permaneceria
minimamente funcional, exatamente como a encontramos. A necessidade, e
não as forças do mercado, guiam a evolução
do software livre.
Os outros exemplos não são em primeira mão, mas
ilustram outras formas de se usar software livre.
Tenho caixas para vender. Lá por 2000, a IBM tomou
conhecimento
de três coisas. Primeiro: ela não tinha uma
solução Unix muito boa em
termos de preço/performance. Isso estava fazendo com que
concorrentes,
entre eles a Sun, levassem clientes embora.
Segundo: eles tinham servidores baratos, poderosos, baseados em
hardware Intel, que poderiam reverter isso, se, ao menos, a IBM tivesse
um sistema operacional Unix-like para colocar neles.
Terceiro: eles dependiam da Microsoft para fornecer o único
sistema
operacional disponível para toda a linha de servidores Intel.
Isto é,
eles dependiam da mesma empresa que era parceira no desenvolvimento do
OS/2 e que lançou um produto, o Windows 3, para concorrer
justamente
com o OS/2. Que Deus o tenha.
Nas palavras da IBM (eu uma vez conversei com um VIP
responsável pelos esforços de Linux da IBM - ainda estou
procurando o
cartão dele), em 2000, o Linux não estava bom o bastante
para
aplicações críticas. Foi quando eles decidiram
que, em vez de portar
novamente o AIX para Intel (existiu uma versão dele que rodava
nos PS/2
mais parrudos), eles investiriam recursos para tornar o Linux
"enterprise-ready".
Trocando em miúdos, a IBM achou que o mercado de sistemas
operacionais
proprietários para PCs estava morto (a Microsoft consome todos
os
recursos desse "ecossistema") e que não valeria a pena investir
num
AIX/x86 quando, por menos dinheiro, eles poderiam ajudar a deixar o
Linux capaz de atender às demandas dos clientes.
Brigas judiciais à parte (a SCO, ex-Caldera, acha que a IBM
roubou código e usou "métodos proprietários" dela
para colocar no
Linux), a IBM fez várias contribuições de
código para o kernel e
drivers do Linux em áreas importantes como escrita em discos e
suporte
a multi-processamento com acesso não-uniforme à
memória (que tinha sido
desenvolvido por uma empresa que a IBM comprou, a Sequent,
especializada em computadores com dúzias de processadores).
A IBM também fez e bancou vários estudos sobre como o uso
de servidores
Intel rodando Linux é economicamente vantajoso em
relação ao emprego de
máquinas RISC rodando versões proprietárias de
Unix (inclusive os
pSeries da própria IBM). Debaixo da mesma bandeira, favoreceu o
desenvolvimento de versões do Linux para seus mainframes.
Resumindo: ao investir (junto com outras empresas) no
desenvolvimento do Linux, a IBM conseguiu várias vitórias
importantes.
Ela agora tem uma linha de servidores Linux de baixo custo competindo
com enormes vantagens com soluções RISC dos seus
concorrentes e mesmo
com servidores baseados em Windows.
A IBM é o único produtor de mainframes reportando
crescimento das
vendas no segmento, com empresas consolidando dezenas de servidores
menores em um único equipamento. Como um efeito colateral disso,
o
kernel do Linux deu um salto impressionante de qualidade.
Onde, anos atrás, eu teria que instalar um Windows, eu hoje
posso usar
um sistema operacional moderno e modular, que usa um kernel firme como
uma rocha (minha máquina de desenvolvimento detém o meu
recorde
doméstico de 61 dias sem um boot - quebrado não por um
crash, mas por
uma falta de energia), com discos que não perdem dados quando a
energia
falha (graças ao journal), com excelente suporte a
máquinas com mais de
um processador (que, infelizmente, não é meu caso) e que
não serve como
meio de cultura para pragas digitais como o Blaster ou Slammer. E ela
ainda encontra tempo para registrar pelo menos umas 30 tentativas de
contágio por worms a cada dia.
Uma caixa nova. Na mesma linha de raciocínio, Intel e HP
perceberam que lançar o processador Itanium no mercado sem um
suporte
expressivo de software aplicativo seria suicídio. Em vez de
pedir
gentilmente à Microsoft (na verdade, eles gastaram bastante
dinheiro
mandando programadores deles para ficarem dentro da Microsoft ajudando
no trabalho) que portasse o Windows para o Itanium (lição
de história:
a falta de aplicativos e de suporte do Windows foi o último
prego no
caixão dos processadores MIPS, PowerPC - em PC-likes- e Alpha) e
rezar
para que ele estivesse pronto ao mesmo tempo em que o processador fosse
lançado, a HP decidiu apostar em mais dois cavalos extras.
Um deles, o port do HP/UX (o Unix proprietário da HP) para o
Itanium e,
em outra, no port do Linux para o processador. Com um processador de 64
bits no mercado há algum tempo, a HP hoje pode vender suas
soluções com
uma escolha maior de sistemas operacionais em vários mercados
que não
estariam acessíveis não fosse essa decisão.
Hoje a HP vende os equipamentos HP/UX sobre Itanium aos seus clientes
HP/UX tradicionais, vende máquinas Itanium rodando Windows para
seus
clientes Windows e vende máquinas Itanium rodando Linux para os
clientes que preferem Linux. E, claro, vendem máquinas Intel
também.
Debaixo do chão. Outro caso bem interessante é o
do Metrô de São
Paulo. O Metrô já tinha trocado um sistema de e-mail
corporativo
baseado em mainframe por um construído com software livre quando
decidiu economizar dinheiro usando StarOffice (naquela época a
Sun não
cobrava por ele) em vez do Microsoft Office.
Eles tinham dois problemas: O primeiro deles era que não existia
documentação, material didático ou tutoriais em
português para o
produto. Para resolver isto, o Metrô contratou uma empresa para
ajudar
na preparação da documentação e dos
treinamentos.
O segundo problema era o do idioma: Existia uma versão do
StarOffice/OpenOffice em português, mas era o português de
Portugal.
A solução, no entanto, não veio do Metrô. Um
engenheiro químico de
Rondonópolis, Cláudio Ferreira Filho, decidiu coordenar a
tradução do
OpenOffice, que acabou, inclusive, sendo concluída antes que a
Sun
conseguisse lançar o StarOffice 6 em português.
No final das contas, mesmo investindo dinheiro para modificar e
complementar uma oferta existente, a economia feita em licenças
não
compradas de Microsoft Office mais do que cobriu os investimentos no
produto livre. Pode não ser muito vantajoso se você tem um
escritório
com cinco pessoas, mas para eles, com mais de 1000 desktops por toda a
companhia, a decisão foi acertadíssima.
E o resto, de onde vem tudo isso?. Você pode imaginar que,
sem
uma estrutura de investimentos pesada, nenhum produto de software tem
condições de se desenvolver. Todos os exemplos que eu
citei envolvem
empresas enormes.
Nós vimos o passo de lesma com que o software tem
evoluído nos
últimos 30 anos. Janelas, mouse, display bit-mapped e letras
pretas em
fundo branco foram transformados na GUI moderna que ainda nos serve, no
centro de pesquisas de Palo Alto, da Xerox, no meio da década de
70.
Hoje eu tenho mais cores e mais botões no mouse. E não
muito mais do
que isso.
Meu micro desktop continua travando de vez em quando. Em semanas eu
devo reformatar a máquina e deixá-la limpa outra vez -
com seis meses
na minha mão, qualquer Windows precisa ser reinstalado do zero.
O que o software livre tem que o software proprietário
não tem e que pode resolver isso?
Na verdade é o contrário. O software livre não tem
uma coisa.
Duplicação de esforço. Quando uma empresa
de software
proprietário desenvolve, digamos, um editor de textos, ela
guarda
segredo sobre tudo o que descobriu no processo. Seja um algoritmo novo,
seja uma forma de otimizar código, seja uma
modificação feita no
sistema operacional para que o programa se inicie mais rápido,
ou uma
que faça seus concorrentes rodarem mais devagar. Essas coisas
são as
jóias da coroa de uma empresa de software tradicional.
São guardadas a
sete chaves.
Quando uma segunda empresa quiser escrever, digamos, um editor
de textos, vai ter que redescobrir algoritmos de
hifenação, formatação,
projetar estruturas de dados que comportem as informações
necessárias e
vai, com toda possibilidade, repetir vários erros pelos quais a
primeira empresa já passou. Eventualmente chegará em uma
forma
totalmente diferente e secreta de armazenar os textos no disco. E
talvez tenha que inventar um jeito de ler os textos que o primeiro
programa salvou. Terão que investir tempo em conviver com o
inimigo.
O mesmo para a terceira, a quarta e todas as outras. Nenhuma
avisará as que a seguem de onde estão os buracos. Algumas
nem sairão
deles.
O desenvolvimento de software livre é eficiente exatamente por
isso. Ele não precisa ser mais eficiente do que os processos
internos
das empresas de software proprietário, porque o mercado que elas
geram,
como um todo, é grotescamente ineficiente, um festival de rodas
re-inventadas. Eu não repito seus erros. Os outros não
precisam repetir
os meus. Eu não preciso reinventar a roda - posso escolher uma
de
várias. Posso precisar pegar essa roda e acrescentar algo a ela.
E
todos nós teremos um novo tipo de roda. Se eu faço algo
estúpido, você
vem e me corrige. Eu aprendo. E depois posso ensinar alguém.
Todos
ganhamos.
Software livre é imune a outros vícios também.
Não há pressão por datas: eu não preciso
liberar uma versão do
meu capturador de tiras do Dilbert todo ano. A versão atual tem
um ano
desde sua última modificação e ainda funciona
perfeitamente. Enquanto
eu não precisar que ela faça nada de diferente, ela fica
como está. Não
vamos desperdiçar recursos com isso.
Há uma enorme pressão para se fazer as coisas direito:
Como
todo o código é aberto, se você escrever
código porco, alguém vai
chamá-lo de porco. Em público. Decisões
estruturais costumam ser
debatidas e validadas pela comunidade de desenvolvedores e
usuários. Em
último caso, se alguém acreditar mesmo que aquele
não é o caminho
certo, pode "fazer um fork", isto é, pegar o código e
tudo o que foi
desenvolvido até aquele ponto e começar um novo projeto
que seguirá, a
partir dali, caminhos independentes do primeiro.
Não há a pressão por recursos
desnecessários: Todos os sinos e
apitos estão lá porque alguém precisava deles (ou,
no mínimo, queria
muito e conseguiu convencer bastante gente). Não porque
alguém achava
que eles iriam ajudar a vender este produto ou, muito pior, fazer com
que você precisasse de outro produto.
Mas afinal quem paga?. A resposta é simples e, para
muitos, chocante:
Software livre não é de graça.
Vou repetir: Software livre não é de graça.
Eu pago (em meu tempo, quando faço eu mesmo, em dinheiro,
quando alguém faz por mim), quando corrijo um erro na
documentação,
quando extendo alguma funcionalidade ou quando porto alguma coisa para
uma plataforma nova.
Pago em divulgação, quando peço para um aluno usar
o Eclipse em vez do
Borland J-Builder que ele comprou no camelô da porta da
faculdade, ou
ainda quando escrevo este artigo. Você paga do mesmo jeito. Ou
paga
escrevendo um manual, ou preenchendo um bug-report, ou arrumando uma
página para que usuários do Konqueror ou Mozilla consigam
vê-la. Montes
de graduandos de Ciência da Computação pagam,
expandindo e criando
software livre.
Meus clientes pagam quando me contratam para construir alguma coisa
usando software livre. No final das contas, continuamos pagando pelo
software.
Isso é importante: Quando você paga, você paga pelo
software. Você vira
dono dele. Em vez de pagar caro (ou não) apenas pelo direito de
usar
uma cópia de uma coisa que continua pertencendo a outra pessoa.
E ai de
você se esquecer que aquilo nunca foi seu.
Pela primeira vez na história, o software é seu, de
verdade. Você pode
levar pra casa tudo, mas tudo mesmo, o que comprou. [Webinsider]