A Indústria de Software e o Monopólio da Informação - por Thiago "Harry" Leucz Astrizi Escrever algo sobre programas de computador não é uma tarefa fácil. O maior obstáculo existente é a falta de informação que as pessoas geralmente tem sobre o assunto. Apesar de estarem cada vez mais presentes na sociedade, computadores são máquinas completamente misteriosas para a imensa maioria das pessoas. Poucos entendem exatamente o que são eles e quais as suas limitações. Esta alienação é algo bastante favorável para a manutenção do monopólio e poder político da indústria de software. Basicamente um computador é qualquer coisa capaz de fazer contas. Um ábaco, uma calculadora, uma régua de cálculo ou um IBM PowerXCell 8i. Por volta da década de 50 eram chamados de computadores funcionários contratados por empresas ou governos para fazer contas manualmente. Atualmente existem pesquisas que buscam construir novos computadores utilizando partículas quânticas, moléculas de DNA, raios de luz e campos magnéticos. A tecnologia utilizada para que eles façam seus cálculos muda com o tempo e não é algo importante para a nossa análise. Pode-se dividir os computadores entre máquinas dedicadas e de propósito geral. Os primeiros são aparelhos capazes de resolver um número limitado de cálculos específicos à algum tipo de atividade. Eles tem sempre alguma limitação que os impede de serem utilizados para qualquer outra coisa. Uma agenda eletrônica, um relógio digital e uma calculadora são computadores dedicados. Já computadores de propósito geral não possuem as mesmas limitações. Eles podem realizar as mesmas funções de uma agenda eletrônica, relógio digital, calculadora e muito mais. Além disso, todo cálculo que pode ser feito por um computador de propósito geral sempre pode ser feito também por qualquer outra máquina do mesmo tipo. Outra classificação importante para computadores é entre máquinas manuais e automáticas. Aparelhos manuais como um ábaco e uma calculadora precisam ser manipulados por um operador para funcionar. Eles não podem sair calculando coisas sozinhos. Já computadores automáticos não precisam ser constantemente manipulados. Entretanto, eles não são autônomos. Para saber a seqüência de operações que devem executar, elas devem receber uma lista com instruções. O nome que damos à esta lista é "programa" ou "software". Um programa de computador pode ser armazenado em um pergaminho, cartões perfurados, fitas magnéticas, discos ou em memória RAM. Independente do meio físico em que é armazenado, um software é apenas um conjunto de instruções que não podem ser ambíguas, devem ser finitas e possuir um objetivo. Eles dizem à um computador o que ele deve fazer. ------------------------------------------------------------------------- BREVE HISTÓRICO DO SOFTWARE ------------------------------------------------------------------------- Uma das obras mais antigas que se encaixa nesta descrição é o Algoritmo de Euclides, criado à aproximadamente 2400 anos atrás. O objetivo deste algoritmo é encontrar o máximo divisor comum entre dois números m e n. Ele pode ser descrito da seguinte forma: 0- A variável temporária t passa a ter o valor de m 1- m passa a ter o valor de n 2- n passa a ter o valor do resto da divisão entre t e n 3- Se n = 0, a resposta é m. Senão, volte para o passo 0. Este método foi criado por alguém (provavelmente não foi Euclides) que talvez nunca tenha imaginado que no futuro seriam criadas máquinas de calcular automáticas. Ele foi projetado como uma série de instruções para ser obedecida por um humano --- talvez com a ajuda de uma pena e um papiro. Entretanto, por ser um método simples e relativamente eficiente para encontrar o divisor entre dois números, é comum que vários de nossos modernos programas de computador possuam embutidos dentro de si estas instruções. O exemplo acima não é único. Vários métodos que nossos programas de computador seguem foram criados originalmente por matemáticos da antigüidade e da Idade Média (principalmente por estudiosos gregos, árabes, indianos e chineses). Mas quando teria surgido e como era a primeira máquina automática que funcionava obedecendo um programa? Bem, esta é uma foto da réplica deste importante aparelho para a história da tecnologia: http://www.inf.ufpr.br/tla06/textos/images/Jacquard.loom.full.view.jpg Isso não se parece com um computador. E de fato não é. Esta máquina não servia para fazer contas, mas sim para tecer. Era um tear mecânico inventado por Joseph Marie Charles Jacquard em 1805 --- início da Revolução Industrial. Para funcionar, esta máquina precisava receber uma série de instruções que eram codificadas em cartões perfurados. Dependendo das instruções, a máquina era capaz de realizar diferentes desenhos nos tecidos. Depois disso, vários inventores perceberam que criar máquinas automáticas que funcionavam de acordo com programas era uma boa idéia. Logo surgiram muitos outros teares programáveis. E levou só algum tempo até que um outro inventor chamado Charles Babbage tivesse a idéia de construir uma máquina de calcular automática que funcionasse por meio de programas armazenados em cartões perfurados. Babbage nunca terminou de construir seu aparelho, mas foram as suas idéias que inspirariam a construção dos primeiros computadores automáticos de propósito geral no século XX. No princípio, eles eram máquinas imensas usadas apenas por governos e universidades. Somente na década de 60 que foi possível baratear a produção destas máquinas e torná-las menores com o desenvolvimento de novas tecnologias. E apenas nos anos 70 foram produzidos os primeiros computadores pessoais --- feitos para atenderem necessidades de pessoas, e não de empresas e governos. Durante todo este tempo, não havia indústria de software. Até então não haviam muitas pessoas com computadores. As poucas empresas e governos que os possuíam, por terem dinheiro suficiente para comprar máquinas tão caras, não tinham problemas em contratar uma equipe capaz de desenvolver qualquer programa que precisasse rodar em suas máquinas. --------------------------------------------------------------------------- O POTENCIAL DOS COMPUTADORES --------------------------------------------------------------------------- No princípio, o software não era uma mercadoria. E não tinha como ser devido à sua própria natureza. Não importa o fato dos programas de hoje serem muito mais complexos que o Algoritmo de Euclides, a natureza deles continua a mesma. Não passam de seqüências de instruções. São a informação de como obter um resultado. Eu posso descobrir uma fórmula inovadora de descobrir se um número é primo ou não e posso tentar vender esta fórmula como uma mercadoria. Eu posso manter em segredo esta fórmula até que alguém compre ela de mim. Entretanto, não terei como impedir que a pessoa que pague o "resgate" da minha descoberta divulgue-a para a humanidade frustrando a minha tentativa de viver da venda de meu segredo. Um software é como um tipo de conhecimento. Ele tem valor de uso. A sua existência é útil para as pessoas e contribui para a riqueza de uma sociedade. Mas como calcular o valor de troca para algo assim? Para produzir um objeto material como um carro, uma certa quantidade de trabalho humano precisa ser empregado. Para produzir dois carros, o dobro de trabalho humano precisa ser gasto. Para produzir um conhecimento, também é preciso gastar tempo. Para que Newton e Leibnitz descobrissem os fundamentos do Cálculo Infinitesimal, ambos tiveram que dispender uma boa quantidade de tempo e esforço. Mas uma vez que o conhecimento foi obtido, transmiti-lo para outras pessoas passa a ter um custo muito menor. Entretanto, a analogia entre um programa de computador e um conhecimento científico tem as suas falhas. O trabalho necessário para disseminar um software é muito menor do que para divulgar um conhecimento científico. Este é um dos principais motivos para os computadores modernos serem uma tecnologia tão revolucionária. Com uma combinação de teclas, é possível fazer uma quantidade imensa de cópias de qualquer tipo de programa e de qualquer tipo de informação que possa ser codificada em nossos computadores. Tecnologias como a Ethernet, e posteriormente a Internet maximizaram o poder natural dos computadores de copiar e disseminar informação. Dispositivos como scanners, microfones, câmeras e gravadores começaram a quebrar barreiras entre o real e o virtual. O conhecimento puro armazenado em meios difíceis de se disseminar como o papel poderia então ser extraído e distribuído na velocidade da eletricidade para milhões ou bilhões de pessoas. Imagine um mundo no qual todo o conhecimento e obras da humanidade fôssem acessíveis à todos. Um mundo no qual qualquer coisa que fôsse computável pudesse ser executada por qualquer pessoa. Agora pare de imaginar e se pergunte: por que diabos o mundo lá fora não se parece com nada disso? Por que esta tecnologia que já está conosco há algumas décadas ainda não atingiu o seu potencial? Antes disso existem algumas questões ainda mais intrigantes. O software antes não era uma mercadoria. Agora é. Chamamos esta transformação em comoditização. Como algo como o software pode ter sido transformado em mercadoria? Como algo tão próximo do abstrato pôde ser aprisionado dentro de limitações próprias de objetos físicos? --------------------------------------------------------------------------- COMO APRISIONAR A INFORMAÇÃO --------------------------------------------------------------------------- A década de 70 foi marcada por ser um período de romantismo para os jovens entusiastas de computadores. O potencial destas máquinas era evidente para muitas pessoas. Usando novas tecnologias como a ARPAnet, várias destas pessoas passaram a manter conversas e criaram assim uma sub-cultura com um código de ética próprio. O primeiro item do código dizia: "O acesso à computadores e à qualquer coisa que possa ensinar algo sobre o mundo deve ser ilimitado e total." O segundo era: "Toda informação deve ser livre." Estas pessoas chamava à si próprias de "hackers" e tinham em comum serem entusiastas de tecnologia, gostarem muito de criar novos programas e técnicas usando computadores e compartilharem um otimismo enorme em relação à esta tecnologia. Algo bem diferente da imagem que a mídia criaria anos mais tarde. Infelizmente, o período romântico não sobreviveria por muitos anos. Com preços mais baixos, os computadores realmente começaram a se espalhar na sociedade, mas existiam muitas pessoas que não estavam inteiramente satisfeitas com isso. Elas queriam obter lucro e isso era mais importante do que democratizar a tecnologia. A forma de lucrar mais evidente à primeira vista era seguir a lógica capitalista transformando o software em mercadoria. A tarefa não seria fácil e por isso demorariam alguns anos para que isso pudesse ser obtido. A primeira arma utilizada pelas empresas de informática na década de 70 foi esconder o código-fonte de seus programas. As instruções que os computadores deveriam obedecer não deveriam mais estar legíveis para humanos. Os programas de computador deveriam ser comercializados apenas na forma de 0s e 1s para que eles pudessem ser executados por computadores, mas não pudessem ser alterados facilmente por pessoas. Assim surgiram os primeiros softwares proprietários, ou não-livres. As pessoas não poderiam mais alterar as instruções de seus computadores. Elas se tornariam dependentes de empresas que teriam um monopólio sobre seus programas. Como reação à esta medida, viria a surgir o movimento pelo Software Livre. O objetivo do movimento era reagir ao software proprietário produzindo um Sistema Operacional completo e moderno formado apenas por programas que fôssem transparentes e pudessem ser alterados. Com isso seria possível oferecer uma alternativa cada vez melhor aos programas proprietários tornando-os economicamente inviáveis. Uma das maiores armas deste movimento foi um novo tipo de licenciamento (chamado de GPL) que fazia com que códigos gerados para programas livres não pudessem ser usados em programas proprietários. A indústria reagiu à isso nos próximos anos criminalizando técnicas de engenharia reversa e estimulando o surgimento de patentes de software. Estas coisas dificultaram muito o trabalho de programadores independentes nos anos seguintes. A segunda arma das empresas foi a criminalização da troca de dados entre usuários de computador. Passaria a ser crime se um usuário passasse para o outro um conjunto de instruções que fôsse considerado propriedade de uma empresa. Passou-se a usar as legislações de vários países para conter o aproveitamento da tecnologia. A nascente indústria de software pegou carona nas obtusas leis de direito autoral que a indústria cultural estava conseguindo aprovar na mesma época. Como reação à isso, muitas pessoas começaram a simplesmente ignorar as leis que consideravam injustas. Apesar de não permitido, cópias ilegais de diversos programas se espalharam. Para combater a desobediência civil, teve início um período de "conscientização" e de repressão. A terceira arma que as empresas usaram foi a própria tecnologia. Da mesma forma que o desenvolvimento tecnológico havia trazido benefícios para a população que prejudicava os lucros de alguns poucos indivíduos, a tecnologia podia ser usada para negar os benefícios e atuar à favor dos lucros daqueles indivíduos. Foram desenvolvidas com este objetivo as primeiras tecnologias computacionais que não tinham o objetivo de facilitar a vida das pessoas, mas de limitar aquilo que elas podiam fazer. Surgiu o DRM. DRM é uma sigla para "Digital Rights Management" (Gerenciador de Direitos Digitais). O nome é um eufemismo para qualquer tecnologia que tenha por objetivo limitar o seu uso da tecnologia para manter os lucros da indústria. DRM está presente atualmente em muitos softwares. Vários programas de computador irão se recusar a imprimir textos, tocar músicas ou fazer o que se propõe se detectarem que você está lidando com um arquivo "não-autorizado" ou está com uma cópia ilegal do programa. Também existem programas que irão se recusar a serem instalados em um número maior de máquinas do que o permitido. Para usá-los em muitos computadores, é preciso comprar muitas cópias. Atualmente, a maior parte destas restrições podem ser burladas. Assim como as empresas escrevem instruções em seus programas para limitar o uso de computador por seus usuários, é possível escrever novas instruções que revertam ou anulem o efeito. Dependendo do caso, pode ser algo trabalhoso, mas nunca impossível. Sabendo disso, a indústria conseguiu fazer com que burlar qualquer tipo de DRM se tornasse ilegal em vários países. --------------------------------------------------------------------------- OS ARGUMENTOS DA INDÚSTRIA --------------------------------------------------------------------------- Buscando justificar todos os benefícios jurídicos e as limitações que impõe aos seus usuários, representantes das grandes empresas de software usam uma série de argumentos falhos. Um dos documentos mais famosos que defendem alguns destes argumentos foi escrito nos anos 70. O documento entitulado "Carta Aberta aos Hobbystas" escrita pelo empresário William Gates advoga à favor das leis de direito autoral para software. A carta pode ser lida em HTML aqui: http://www.inf.ufpr.br/tla06/textos/gates.txt Em resumo, no documento Gates critica aqueles que obtiveram um produto de sua empresa sem pagar nada para ele chamando-os de ladrões. O seu argumento é de que o desenvolvimento de programas de computador precisa ser deixado nas mãos de empresas e estas precisam ser pagas por cada cópia do programa obtido. Do contrário, seria impossível obter programas de qualidade. É muito fácil refutar os argumentos de Gates baseados na suposta impossibilidade de se criar programas de qualidade fora da sua lógica. Este documento foi todo escrito utilizando-se softwares que além de serem gratuítos, são transparentes e podem ser alterados à vontade por mim. O servidor em que ele está hospedado também só possui softwares assim. Se por acaso eu encontrar uma falha em algum destes programas, eu posso simplismente arrumá-la fazendo uma versão melhor do programa beneficiando assim todos os seus futuros usuários. Assim funciona o progresso do conhecimento científico. Já se eu encontrar uma falha em um programa proprietário, eu sou obrigado a contar com a boa-vontade de alguma empresa para que o erro seja corrigido. Mas talvez a empresa não queira mais investir neste programa e assim o erro nunca seja arrumado. Talvez a correção só saia em uma versão "2.0" me obrigando à comprar umaversão melhorada do programa no futuro. Ou talvez o erro pode ser algo proposital porque eu tentei usar o programa da empresa em conjunto com um outro programa de uma concorrente. Sendo os programas proprietários secretos, é impossível saber o que realmente causa o problema. Por todos estes motivos, é o modelo de desenvolvimento que Gates defende que parece atuar contra a qualidade dos programas. Também temos um argumento baseado na ética. É justo que uma pessoa que gastou horas desenvolvendo um programa não receba nada em troca? Certamente não é justo. Mas a pergunta conforme é feita parte de uma série de premissas falsas ou induz o interlocutos à assumir tais premissas como verdadeiras. Programas não costumam ser feitos por uma única pessoa, mas por várias e normalmente à partir do trabalho anterior de outras pessoas ao longo de um longo período de tempo. A analogia entre um programa de computador e um ramo do conhecimento científico é bastante adeqüada aqui. Einstein não teria criado a Teoria da Relatividade se Newton não tivesse antes dado a sua contribuição para a física. Todos os programas modernos não seriam possíveis se nas últimas décadas centenas de pessoas não tivessem criado uma série de códigos modulares capazes de serem facilmente reaproveitáveis (chamamos estes códigos de Bibliotecas). É extremamente difícil criar um programa complexo do zero. Se os pioneiros da computação tivessem seguido a lógica das empresas, seria impossível vermos um desenvolvimento tão grande nos softwares produzidos. Mais uma vez, o modelo proprietário parece ser uma péssima escolha se queremos que a tecnologia avance, pois ele restringe o acesso à códigos de programas já feitos fazendo com que pouquíssimas pessoas possam trabalhar pelo seu desenvolvimento. Além disso, é hipocrisia usar apelo à piedade alegando que programadores são prejudicados fora do modelo de programas proprietários. Sempre haverá necessidade para que alguém escreva instruções para computadores. Quem seria prejudicada é a indústria de software tradicional que não teria razão de existir se seus monopólios sobre instruções para computadores forem destruídos. Quem se beneficia com o modelo atual são empresários donos de grandes corporações que ficam com os lucros obtidos graças à monopólios. Não são os programadores das empresas que ficam com o lucro que ajudam a construir. --------------------------------------------------------------------------- O LUCRO E O FUNCIONAMENTO DA INDÚSTRIA DE SOFTWARE --------------------------------------------------------------------------- A única forma de se produzir riqueza (também chamada de valor) para uma sociedade é através do trabalho. O trabalho transforma matéria-prima em produtos usáveis e o acesso à estes produtos é o que determina o nível de riqueza de uma sociedade. Quando extraímos diamantes de suas jazidas e fabricamos com eles jóias ou instrumentos de corte, estamos gerando mais riqueza para a sociedade por meio do trabalho empregado. Da mesma forma, quando um conhecimento científico novo é obtido, também geramos maior riqueza para a sociedade, pois o conhecimento pode ser aplicado trazendo melhorias em nossas vidas. Um software se comporta de forma semelhante ao conhecimento. Apesar de sua natureza abstrata, ele pode ser utilizado e gerar conseqüências reais. O ato de produzir um software programando-o também é um ato que agrega valor produzindo riqueza. Programar requer tempo e esforço. Mas uma vez que o programa esteja pronto, pode-se obter quantas cópias quizermos dele sem precisarmos nos esforçar. O tempo e energia gasto na cópia é irrelevante. A indústria de software não vende os programas que produz. Afinal, se eu compro um programa, ele se torna meu e não há como impedir que eu faça cópias dele e o compartilhe com outras pessoas. O que eles vendem é o direito de uso de uma cópia do programa. Quando eu pago por um software, eu pago pelo direito de usar uma cópia de modo limitado. A dona das cópias que eu adquiro continuam sendo as empresas que produziram o programa. Se a indústria automobilística funcionasse assim, nós não compraríamos carros. Compraríamos o direito de usar um determinado trajeto. O carro viria de "brinde" nesta compra, mas seria impossível utilizá-lo em trajetos não definidos pela licença. Para isso, seria preciso adquirir uma outra licença (e com isso, eu "ganharia" um outro carro que pudesse trafegar por locais diferentes). Entretanto, os carros jamais pertenceriam à mim. Eu jamais poderia modificá-los, vendê-los, etc. Quando pagamos por um software proprietário, o que recebemos em troca é um direito de uso limitado e uma cópia do respectivo software. Mas quanto custa para a indústria produzir uma cópia do software e deixar que eu o use? Aproximadamente nada. Não gasta-se trabalho e nem tempo nisso. Pagamos por algo que não custa nada, que não requer trabalho para ser produzido e que não gera riqueza. E quando pagamos, não somos donos do produto que levamos e podemos ser punidos se esquecermos deste detalhe e tentarmos usar plenamente a mercadoria. Parece até a descrição da atividade de uma máfia. Mas é legalizado. Graças à muitos lobbys e alianças políticas, isso tornou-se permitido na legislação da maioria dos países. Teoricamente um produto que não desse trabalho para ser produzido deveria ser abundante e por isso seu preço seria ínfimo ou nulo. Todos poderiam se beneficiar deste produto. O que impede que isto ocorre são todas as limitações artificiais colocadas pela indústria de software em nossas tecnologias. É o monopólio artificial que elas possuem sobre o software. São todas as cercas e muralhas que as empresas pedem para imaginarmos diante de nós. Se dissermos que não vemos muralha nenhuma e cruzarmos o espaço vazio, seremos criminalizados e punidos por forças repressoras (estas sim bastante reais). Voltando à carta escrita por William Gates nos anos 70, acho bastante curioso ele considerar como ladrões os usuários de seus programas. Pessoalmente, tenho uma visão bem diferente de quem são os criminosos nesta história. São aqueles que impedem que usemos a tecnologia para melhorar a vida das pessoas por temerem perder seus lucros. Aqueles que usam seu dinheiro para subverter as leis em benefício próprio. Aqueles que aprisionam o conhecimento tomando-o para si e impedindo que outros possam se beneficiar dele. Aqueles que se apropriam da riqueza produzida na sociedade sem a gerarem. Ser considerado um criminoso por pessoas assim é em verdade uma honra.