Ao ouvir hoje em dias os termos “software livre” e “código aberto”, geralmente se pensa que são idéias recentes, de apenas alguns anos atrás, e para muitos trata-se apenas de uma “moda passageira” ou apenas mais “buzzwords”, coisa que não seria novidade no ramo da informática. Os mais desavisados provavelmente vão pensar que isto é uma moda que se iniciou no fim dos anos 90. Os ainda mais desavisados devem achar que é uma moda de “um pessoal aí” sobre “esse negócio de todos os programas serem de graça”. Mas não é de conceitos mal compreendidos que eu queria falar ainda – é da idade dessas idéias. A origem disso está mais distante que os anos 90.
E não estou falando das datas de criação dos dois movimentos – quem conhece este assunto um pouco mais do que a maioria vai imediatamente comentar que o conceito de Código Aberto (Open Source) foi criado em 1998, e o de Software Livre (Free Software) é ainda mais antigo, datando de 1983. Há uma mesma idéia por trás destas duas filosofias que é ainda mais antiga. Que conceito seria este?
Sem entrar na discussão sobre as diferenças (e similaridades) entre Software Livre e Código Aberto, o principal conceito em comum entre as duas filosofias é, obviamente, o acesso ao código fonte. As diferenças ficam por conta de como este código fonte pode e deve ser usado, mas, basicamente, as duas idéias advogam acesso ao código fonte dos softwares. E este conceito é bem, bem mais antigo. Me permitam deslocar o foco deste texto para um passado um pouco mais antigo, mais antigo até que a maioria de nós tem contato com a informática…
Software nos anos 50 e 60
Este período da informática é conhecido como a era em que os mainframes reinavam a terra, e os microcomputadores ainda não haviam nascido para reinvindicar o planeta que, por direito, seria deles no futuro. Uma era de máquinas grandes e caras. Nesta época – quase desnecessário dizer – o mercado de informática era muito menor que o de hoje em dia: não só porque havia bem menos usos corriqueiros para um computador no dia-a-dia das pessoas e empresas, mas também porque os computadores desta época eram muito mais caros, limitando o mercado a umas poucas dezenas de empresas médias ou grandes e algumas agências do governo. Ao longo da década de 70 o mercado foi crescendo ainda mais, e minicomputadores (nada a ver ainda com microcomputadores) já começavam a se tornar coisa comum na realidade de mais e mais empresas (no mercado americano, pelo menos). As empresas que dominavam o mercado de computadores desta época foram apelidadas de “Branca de Neve e os sete anões” – sendo a “Branca de Neve” a IBM, a maior das empresas de computação da época, e suas sete concorrentes menores (Burroughs, Univac, NCR, Control Data Corporation, Honeywell, General Electric e RCA).
Nas décadas de 50 e 60 o software era visto como um “detalhe”. Quer dizer, ele basicamente acompanhava as máquinas compradas, vindo já “de fábrica” no computador comprado, pronto para usar. Como os computadores eram grandes e caros, não era incomum uma empresa comprar apenas um computador, e isto para as empresas que tinham a necessidade de comprar um. Apenas um computador funcionando na empresa, um mainframe, e uma série de terminais (também chamados de “terminais burros”) conectados àquele mainframe. Meio parecido com as redes locais de microcomputadores que temos hoje em dia em quase todos os ambientes de trabalho, só com a diferença óbvia de que os terminais não eram computadores de verdade – eram apenas extensões do mainframe, meros monitores e teclados ligados remotamente ao computador real. Em um ambiente de trabalho desses, e considerando que o tal único mainframe adquirido pela empresa custou muito caro – dezenas ou centenas de milhares de dólares – é de se esperar que a aplicação deste mainframe seja em alguma tarefa muito importante para a empresa, e que não poderia ser feita de forma cômoda ou rápida por meios manuais. Por exemplo, programas de folha de pagamento, contabilidade, ou de controle específico de atividades da empresa, incluindo aí software de controle industrial. Usar um computador para tarefas simples e comuns como nós usamos hoje em dia estava ainda fora da realidade. O computador não era uma ferramenta de escritório, era um “mastigador de números” que lidava com tarefas de grande volume.
Nesta realidade, como já foi dito, o software era um “detalhe” – ele vinha junto com a máquina. As empresas e organizações que compravam estes caros “mastigadores de números” o faziam com propósitos específicos – e o software costumava vir junto com a máquina para cumprir este propósito, ou era criado e fornecido junto com a máquina pelo fabricante sem custo adicional. Sim, sem custo adicional. Porque o conceito ali não era de que o computador era comprado para rodar este ou aquele programa, mas que o computador era comprado para executar esta ou aquela função – que era realizada pelo programa. Ou seja, efetivamente o computador era comprado, o software era quase uma “peça” a mais da máquina, por assim dizer. Era comum o fabricante repassar a outro cliente, junto com a máquina comprada, um programa que havia sido feito para um cliente anterior e que servisse à mesma função – e isto sem custos adicionais.
As compras de computadores ocorriam desta forma, naqueles anos: uma organização contactava um fabricante sobre a compra de um computador, para execução de uma determinada tarefa. O fabricante ajudava a determinar qual modelo e capacidade de computador era mais adequado, e se já possuísse um software para aquele equipamento que executasse a tarefa desejada, este ia junto com a máquina, e muitas vezes com o código fonte disponível. Aliás, era comum as máquinas já virem com um bom número de software pré-instalado, como o sistema operacional, utilitários diversos, compiladores para várias linguagens (como COBOL e FORTRAN), e um conjunto de software já pronto para tarefas diversas, alguns dos quais haviam sido desenvolvidos para clientes anteriores (a IBM, por exemplo, mantinha uma biblioteca de aplicativos escritos por seus programadores para necessidades específicas de clientes anteriores, e que estavam disponíveis para os outros clientes). E mais uma vez, tudo isto sem acréscimo no preço da máquina – que, convenhamos, já era bem alto. Mas deixando de lado o fato do custo da máquina já ser “alto o suficiente”, o fato é que não se cogitava desenvolver software para venda no mercado como um produto em separado. Quando um cliente queria um computador para uma tarefa a qual não havia software já pronto, era comum este negociar o desenvolvimento do software com o próprio fabricante do hardware, que dispunha de programadores para tal, ou usar seus próprios programadores “in-house” para desenvolver seu próprio software. Durante os anos 60 começou a se tornar comum a contratação de firmas especializadas em desenvolvimento de software, que se multiplicaram durante esta década; mas mesmo neste caso se tratava de software desenvolvido sob demanda, não software feito com o objetivo de ser vendido no mercado. Os executivos da época não acreditavam que software tivesse “valor” suficiente para que houvesse um mercado para tal. A dispersão cada vez maior de computadores em diversos segmentos de trabalho e o crescimento do seu potencial de uso, porém, iria mudar este cenário nas décadas que se seguiram.
O ponto para o qual eu gostaria de chamar a atenção aqui é a disponibilidade do código fonte. Os softwares, aplicativos e utilitários, que costumavam acompanhar as máquinas desta época muitas vezes vinham acompanhados de seu código fonte. Isto se devia principalmente ao fato de que o software até então não era visto como um bem com valor separado do hardware, mas também demonstra a mentalidade da época. E uma vez de posse do código fonte, adaptar um software preexistente para necessidades específicas era algo trivial: não era incomum as organizações que possuíam computadores, por menores que fossem, possuírem também funcionários com conhecimento suficiente em programação para adaptar o código fonte disponível. Afinal, naqueles tempos, as distinções entre os cargos de programador, administrador de sistemas, e outros tantos cargos de informática que hoje em dia são tão diversos entre si, eram tênues ou até inexistentes naquela época. Talvez a especialização em funções diferentes do ramo da informática também tenha sido outro fator causador da mudança de visão com relação ao software e a subseqüente aparição de uma indústria focada apenas no mesmo.
Fontes: Wikipedia.org, softwarehistory.org