Esta é uma tradução da página original em Inglês.

Entrevista à BYTE com Richard Stallman

Richard Stallman fala sobre seu sistema de software compatível com Unix de domínio público com editores da BYTE (julho de 1986).


Richard Stallman realizou provavelmente o mais ambicioso projeto de desenvolvimento de software livre até hoje, o sistema GNU. Em seu Manifesto GNU, publicado na edição de março de 1985 do Dr. Dobb's Journal, Stallman descreveu o GNU como um “sistema completo de software compatível com Unix, que estou escrevendo para que eu possa distribuí-lo livremente para todos que possam usá-lo … Uma vez que o GNU seja escrito, todos poderão obter um bom software de sistema livremente, assim como o ar.” (GNU é um acrônimo para GNU's Not Unix ou, traduzido para português, “GNU Não é Unix”; o g é pronunciado.)

Stallman é amplamente conhecido como o autor do EMACS, um poderoso editor de texto que ele desenvolveu no Laboratório de Inteligência Artificial do Instituto de Tecnologia de Massachusetts (MIT). Não é coincidência que o primeiro software produzido como parte do projeto GNU tenha sido uma nova implementação do EMACS. O GNU EMACS já alcançou a reputação de ser uma das melhores implementações do EMACS atualmente disponível a qualquer preço.

BYTE: Nós lemos o seu Manifesto GNU na edição de março de 1985 do Dr. Dobb. O que aconteceu desde então? Isso foi realmente o começo, e como você progrediu desde então?

Stallman: A publicação no Dr. Dobb não foi o começo do projeto. Eu escrevi o Manifesto GNU quando estava me preparando para iniciar o projeto, como uma proposta para pedir financiamento a fabricantes de computadores. Eles não queriam se envolver e eu decidi que, em vez de gastar meu tempo tentando obter fundos, deveria gastá-lo escrevendo o código. O manifesto foi publicado cerca de um ano e meio depois de eu ter escrito, quando eu mal tinha começado a distribuir o GNU EMACS. Desde então, além de tornar o GNU EMACS mais completo e fazê-lo funcionar em muitos outros computadores, eu quase terminei a otimização do compilador C e de todos os outros softwares necessários para rodar programas em C. Isso inclui um depurador no nível de origem com muitos recursos que os outros depuradores de nível de fonte no Unix não possuem. Por exemplo, ele possui variáveis ​​de conveniência dentro do depurador para que você possa salvar valores e também possui um histórico de todos os valores que você imprimiu, facilitando muito a busca por estruturas de lista.

BYTE: Você terminou um editor que agora está amplamente distribuído e está prestes a terminar o compilador.

Stallman: Espero que esteja concluído em outubro.

BYTE: E sobre o kernel?

Stallman: No momento, estou planejando começar com o kernel que foi escrito no MIT e foi lançado para o público recentemente com a ideia de que eu o usaria. Este kernel é chamado TRIX; é baseado em chamada de procedimento remoto. Eu ainda preciso adicionar compatibilidade para muitos dos recursos do Unix que ele não tem atualmente. Eu não comecei a trabalhar nisso ainda. Eu estou terminando o compilador antes de ir trabalhar no kernel. Eu também vou ter que reescrever o sistema de arquivos. Eu pretendo torná-lo à prova de falhas apenas por ter que escrever blocos na ordem correta para que a estrutura do disco seja sempre consistente. Então eu quero adicionar números de versão. Eu tenho um esquema complicado para reconciliar números de versão com o modo como as pessoas geralmente usam o Unix. Você tem que ser capaz de especificar nomes de arquivos sem números de versão, mas você também tem que ser capaz de especificá-los com números de versão explícitos, e ambos precisam trabalhar com programas Unix comuns que não foram modificados de forma alguma para lidar com a existência deste recurso. Eu acho que tenho um esquema para fazer isso, e apenas tentar me mostrará se ele realmente faz o trabalho.

BYTE: Você tem uma breve descrição que você pode nos dar sobre como o GNU como um sistema será superior a outros sistemas? Sabemos que um dos seus objetivos é produzir algo compatível com o Unix. Mas pelo menos na área de sistemas de arquivos, você já disse que irá além do Unix e produzirá algo melhor.

Stallman: O compilador C irá produzir um código melhor e rodar mais rápido. O depurador é melhor. Com cada peça, posso ou não encontrar uma maneira de melhorá-lo. Mas não há uma resposta para essa pergunta. Até certo ponto, estou obtendo o benefício da reimplementação, o que torna muitos sistemas muito melhores. Até certo ponto, é porque estou em campo há muito tempo e trabalhei em muitos outros sistemas. Tenho, portanto, muitas ideias para trazer à tona. Uma maneira em que será melhor é que praticamente tudo no sistema funcionará em arquivos de qualquer tamanho, em linhas de qualquer tamanho, com qualquer caractere aparecendo neles. O sistema Unix é muito ruim a esse respeito. Não é nada novo como princípio de engenharia de software que você não deve ter limites arbitrários. Mas foi apenas a prática padrão em escrever o Unix para colocá-los em todo o tempo, possivelmente apenas porque eles estavam escrevendo para um computador muito pequeno. O único limite no sistema GNU é quando seu programa fica sem memória porque ele tentou trabalhar com muitos dados e não há lugar para manter tudo isso.

BYTE: E isso provavelmente não será alcançado se você tiver memória virtual. Você pode demorar uma eternidade para encontrar a solução.

Stallman: Na verdade, esses limites tendem a serem alcançados bem antes de você ter uma eternidade para encontrar uma solução.

BYTE: Você pode dizer algo sobre os tipos de máquinas e ambientes em que o GNU EMACS em particular foi criado? Agora está sendo executado no VAXes; migrou de alguma forma para computadores pessoais?

Stallman: Não tenho certeza do que você quer dizer com computadores pessoais. Por exemplo, um Sun é um computador pessoal? O GNU EMACS requer pelo menos um megabyte de memória disponível e, de preferência, mais. É normalmente usado em máquinas que possuem memória virtual. Exceto por vários problemas técnicos em alguns compiladores C, praticamente qualquer máquina com memória virtual e funcionando sob uma versão relativamente recente do Unix rodará o GNU EMACS, e a maioria deles atualmente faz isso.

BYTE: Alguém já tentou portá-lo para Ataris ou Macintoshes?

Stallman: O Atari 1040ST ainda não tem memória suficiente. A próxima máquina Atari, espero, conseguirá rodá-lo. Eu também acho que os próximos Ataris terão algumas formas de mapeamento de memória. É claro que não estou projetando o software para ser executado nos tipos de computadores que prevalecem atualmente. Eu sabia que quando eu começasse este projeto, levaria alguns anos. Decidi, portanto, que não queria fazer um sistema pior assumindo o desafio adicional de executá-lo no ambiente atualmente restrito. Então, em vez disso, decidi escrever o que parece mais natural e melhor. Estou confiante de que em alguns anos máquinas de tamanho suficiente serão predominantes. Na verdade, o aumento no tamanho da memória está acontecendo tão rápido que me surpreende o quão lenta a maioria das pessoas é para colocar na memória virtual; Eu acho que é totalmente essencial.

BYTE: Eu acho que as pessoas realmente não veem isso como sendo necessário para máquinas de usuário único.

Stallman: Elas não entendem que um único usuário não significa um único programa. Certamente, para qualquer sistema semelhante ao Unix, é importante poder executar vários processos diferentes ao mesmo tempo, mesmo que haja apenas um de vocês. Você poderia executar o GNU EMACS em uma máquina de memória não virtual com memória suficiente, mas você não poderia executar o resto do sistema GNU muito bem ou um sistema Unix muito bem.

BYTE: Quanto de LISP está presente no GNU EMACS? Ocorreu-me que pode ser útil usar isso como uma ferramenta para aprender LISP.

Stallman: Você certamente pode fazer isso. O GNU EMACS contém um sistema LISP completo, embora não muito poderoso. É poderoso o suficiente para escrever comandos do editor. Não é comparável com, digamos, um sistema Common LISP, algo que você realmente poderia usar para a programação do sistema, mas tem todas as coisas que o LISP precisa ter.

BYTE: Você tem alguma previsão sobre quando você provavelmente distribuiria um ambiente viável no qual, se colocá-lo em nossas máquinas ou estações de trabalho, poderíamos realmente fazer um trabalho razoável sem usar nada além do código que você distribui?

Stallman: É muito difícil dizer. Isso poderia acontecer em um ano, mas é claro que poderia demorar mais. Também poderia levar menos, mas isso não é mais provável. Eu acho que vou terei terminado o compilador em um mês ou dois. O único outro grande trabalho que realmente preciso fazer é no kernel. Eu previ pela primeira vez que o GNU levaria algo como dois anos, mas agora são dois anos e meio e eu ainda não terminei. Parte do motivo do atraso é que passei muito tempo trabalhando em um compilador que acabou sendo um beco sem saída. Eu tive que reescrevê-lo completamente. Outra razão é que passei tanto tempo no GNU EMACS. Eu originalmente pensei que não teria que fazer isso.

BYTE: Conte-nos sobre o seu esquema de distribuição.

Stallman: Eu não coloco software ou manuais no domínio público, e o motivo é que eu quero ter certeza de que todos os usuários tenham a liberdade de compartilhar. Eu não quero ninguém fazendo uma versão melhorada de um programa que eu escrevi e distribuindo como privativo. Eu não quero que isso nunca aconteça. Quero incentivar as melhorias livres para esses programas, e a melhor maneira de fazer isso é eliminar qualquer tentação de uma pessoa fazer melhorias que não sejam livres. Sim, alguns deles evitarão melhorias, mas muitos outros farão as mesmas melhorias e os libertarão.

BYTE: E como você vai garantir isso?

Stallman: Eu faço isso aplicando direitos autorais aos programas e colocando um aviso que dá às pessoas permissão explícita para copiar os programas e alterá-los, mas apenas sob a condição de que eles distribuam sob os mesmos termos que eu usei, se é que o fazem. Você não precisa distribuir as alterações feitas em nenhum dos meus programas – você pode fazer isso sozinho e não precisa dar a ninguém nem contar a ninguém. Mas se você der a outra pessoa, você tem que fazê-lo sob os mesmos termos que eu uso.

BYTE: Você obtém algum direito sobre o código executável derivado do compilador C?

Stallman: A lei de direitos autorais não me dá direitos autorais sobre a saída do compilador, então não me dá uma maneira de dizer algo sobre isso, e na verdade eu não tento. Eu não simpatizo com pessoas que desenvolvem produtos privativos com qualquer compilador, mas não parece especialmente útil tentar impedi-los de desenvolvê-los com este compilador, então não vou fazê-lo.

BYTE: Suas restrições se aplicam se as pessoas pegarem partes do seu código para produzir outras coisas também?

Stallman: Sim, se incorporarem com alterações alguma peça considerável. Se fossem duas linhas de código, isso não é nada; direitos autorais não se aplicam a isso. Essencialmente, eu escolhi essas condições para que primeiro haja um direito autoral, que é o que todos os colecionadores de software usam para impedir todo mundo de fazer qualquer coisa, e então eu adiciono um aviso renunciando parte desses direitos. Portanto, as condições falam apenas sobre as coisas às quais os direitos autorais se aplicam. Eu não acredito que a razão pela qual você deve obedecer a essas condições é por causa da lei. A razão pela qual você deve obedecer é porque uma pessoa correta quando distribui software encoraja outras pessoas a compartilhá-lo ainda mais.

BYTE: Em certo sentido, você está atraindo as pessoas para esse modo de pensar, fornecendo todas essas ferramentas interessantes que elas podem usar, mas somente se elas acreditarem em sua filosofia.

Stallman: Sim. Você também pode ver isso usando o sistema legal que os colecionadores de software criaram contra eles. Eu estou usando para proteger o público deles.

BYTE: Considerando que os fabricantes não quiseram financiar o projeto, quem você acha que usará o sistema GNU quando isso for feito?

Stallman: Não faço ideia, mas não é uma questão importante. Meu objetivo é possibilitar que as pessoas rejeitem as correntes que vêm com software privativo. Eu sei que existem pessoas que querem fazer isso. Agora, pode haver outros que não se importam, mas não são minha preocupação. Sinto-me um pouco triste por eles e pelas pessoas que eles influenciam. Neste momento, uma pessoa que percebe o desagrado dos termos do software privativo sente que ele está preso e não tem alternativa a não ser deixar de usar um computador. Bem, vou dar-lhe uma alternativa confortável.

Outras pessoas podem usar o sistema GNU apenas porque é tecnicamente superior. Por exemplo, meu compilador C está produzindo um código tão bom quanto eu vi em qualquer compilador C. E o GNU EMACS é geralmente considerado muito superior à concorrência comercial. E o GNU EMACS também não foi financiado por ninguém, mas todo mundo está usando. Eu, portanto, acho que muitas pessoas usarão o resto do sistema GNU por causa de suas vantagens técnicas. Mas eu estaria fazendo um sistema GNU mesmo se não soubesse como torná-lo tecnicamente melhor, porque quero que ele seja socialmente melhor. O projeto GNU é realmente um projeto social. Utiliza meios técnicos para fazer uma mudança na sociedade.

BYTE: Então é bastante importante para você que as pessoas adotem o GNU. Não é apenas um exercício acadêmico para produzir este software para distribuí-lo às pessoas. Você espera que isso mude a maneira como a indústria de software opera.

Stallman: Sim. Algumas pessoas dizem que ninguém nunca vai usá-lo porque não tem um logotipo corporativo atraente, e outras pessoas dizem que acham que é tremendamente importante e todo mundo vai querer usá-lo. Não tenho como saber o que realmente vai acontecer. Não conheço outra maneira de tentar mudar a feiura da área em que me encontro, então é isso que tenho que fazer.

BYTE: Você pode abordar as implicações? Você obviamente acha que esta é uma importante declaração política e social.

Stallman: É uma mudança. Estou tentando mudar a forma como as pessoas abordam o conhecimento e a informação em geral. Eu acho que tentar dominar o conhecimento, tentar controlar se as pessoas podem usá-lo, ou tentar impedir outras pessoas de compartilhá-lo, é sabotagem. É uma atividade que beneficia a pessoa que faz isso ao custo de empobrecer toda a sociedade. Uma pessoa ganha um dólar ao destruir dois dólares de riqueza. Eu acho que uma pessoa com consciência não faria esse tipo de coisa, exceto, talvez, se ele morresse de outra forma. E, claro, as pessoas que fazem isso são razoavelmente ricas; Só posso concluir que eles são inescrupulosos. Eu gostaria de ver as pessoas sendo recompensadas por escrever software livre e por encorajar outras pessoas a usá-lo. Eu não quero ver pessoas recebendo recompensas por escrever softwares privativos porque isso não é realmente uma contribuição para a sociedade. O princípio do capitalismo é a ideia de que as pessoas conseguem ganhar dinheiro produzindo coisas e, portanto, são encorajadas a fazer o que é útil, automaticamente, por assim dizer. Mas isso não funciona quando se trata de possuir conhecimento. Eles são encorajados a não fazer realmente o que é útil, e o que realmente é útil não é encorajado. Eu acho que é importante dizer que a informação é diferente de objetos materiais como carros e pães porque as pessoas podem copiá-lo e compartilhá-lo por conta própria e, se ninguém tentar detê-lo, ele pode mudá-lo e torná-lo melhor para si. Isso é uma coisa útil para as pessoas fazerem. Isso não é verdade para pães. Se você tem um pedaço de pão e quer outro, não pode simplesmente colocar o pão em uma copiadora de pão. Você não pode fazer outra, a não ser passando por todas as etapas que foram usadas para criar a primeira. Portanto, é irrelevante se as pessoas têm permissão para copiá-lo – é impossível.

Livros eram impressos apenas em impressoras até recentemente. Era possível fazer uma cópia manualmente, mas não era prático, porque exigia muito mais trabalho do que usar uma impressora. E produziu algo muito menos atraente que, para todos os efeitos, você poderia agir como se fosse impossível fazer livros, exceto produzindo-os em massa. E, portanto, os direitos autorais realmente não tiram qualquer liberdade do público leitor. Não havia nada que um comprador de livros pudesse fazer que fosse proibido por direitos autorais.

Mas isso não é verdade para programas de computador. Também não é verdade para fitas cassete. É parcialmente falso agora para livros, mas ainda é verdade que para a maioria dos livros é mais caro e certamente muito mais trabalho para eles do que comprar uma cópia, e o resultado ainda é menos atraente. Neste momento estamos em um período em que a situação que tornou os direitos autorais inofensivos e aceitáveis ​​está mudando para uma situação em que os direitos autorais se tornarão destrutivos e intoleráveis. Então as pessoas que são caluniadas como “piratas” são de fato as pessoas que estão tentando fazer algo útil que elas foram proibidas de fazer. As leis de direitos autorais são inteiramente projetadas para ajudar as pessoas a assumir o controle total sobre o uso de algumas informações para seu próprio bem. Mas eles não são projetados para ajudar as pessoas que querem ter certeza de que a informação é acessível ao público e impedir que outras pessoas privem o público. Eu acho que a lei deveria reconhecer uma classe de trabalhos que são de propriedade do público, o que é diferente do domínio público no mesmo sentido que um parque público é diferente de algo encontrado em uma lata de lixo. Não está lá para ninguém tirar, está lá para todo mundo usar, mas para ninguém impedir. Qualquer pessoa do público que se veja privada do trabalho derivado de algo pertencente ao público deve poder processá-lo.

BYTE: Mas os piratas não estão interessados em obter cópias de programas porque querem usar esses programas, não porque querem usar esse conhecimento para produzir algo melhor?

Stallman: Eu não vejo que essa seja a distinção importante. Mais pessoas usando um programa significa que o programa contribui mais para a sociedade. Você tem um pedaço de pão que pode ser comido uma vez ou um milhão de vezes.

BYTE: Alguns usuários compram software comercial para obter suporte. Como o seu esquema de distribuição fornece suporte?

Stallman: Eu suspeito que esses usuários são enganados e não estão pensando claramente. É certamente útil ter suporte, mas quando eles começam a pensar em como isso tem a ver com a venda de software ou com o software sendo privativo, nesse ponto eles estão se confundindo. Não há garantia de que o software privativo receberá um bom suporte. Simplesmente porque os vendedores dizem que eles fornecem suporte, isso não significa que será bom. E eles podem sair do negócio. Na verdade, as pessoas acham que o GNU EMACS tem um suporte melhor do que o EMACS comercial. Uma das razões é que eu sou provavelmente um hacker melhor do que as pessoas que escreveram os outros EMACS, mas a outra razão é que todo mundo tem fontes e há tantas pessoas interessadas em descobrir como fazer as coisas com ele que você não tem que obter o seu suporte de mim. Mesmo apenas o suporte gratuito que consiste na correção de bugs relatados pelas pessoas a mim e incorporação disso no próximo lançamento deu às pessoas um bom nível de suporte. Você sempre pode contratar alguém para resolver um problema para você, e quando o software é livre, você tem um mercado competitivo para o suporte. Você pode contratar alguém. Eu distribuo uma lista de serviços com o EMACS, uma lista de nomes de pessoas e números de telefone e o que eles cobram para fornecer suporte.

BYTE: Você coleciona suas correções de bugs?

Stallman: Bem, eles os mandam para mim. Eu pedi a todas as pessoas que queriam ser listadas que prometessem que nunca pediriam a nenhum de seus clientes que guardassem segredo, seja lá o que for que lhes dissessem ou quaisquer mudanças que fossem dadas ao software GNU como parte desse suporte.

BYTE: Então você não pode ter pessoas competindo para fornecer suporte com base no conhecimento da solução para algum problema que alguém não conhece.

Stallman: Não. Eles podem competir com base no fato de serem espertos e mais propensos a encontrar a solução para o seu problema, ou o fato de já compreenderem mais os problemas comuns ou de saber explicar melhor o que você deve fazer. Estas são todas as maneiras que eles podem competir. Eles podem tentar fazer melhor, mas não podem impedir ativamente seus concorrentes.

BYTE: Eu presumo que seja como comprar um carro. Você não é obrigado a voltar ao fabricante original para suporte ou manutenção contínua.

Stallman: Ou comprar uma casa – como seria se a única pessoa que pudesse resolver problemas com sua casa fosse o empreiteiro que a construiu originalmente? Esse é o tipo de imposição envolvida em software privativo. As pessoas me dizem sobre um problema que acontece no Unix. Como os fabricantes vendem versões aprimoradas do Unix, eles tendem a coletar correções e não distribuí-las, exceto em binários. O resultado é que os bugs não são realmente consertados.

BYTE: Todos eles estão duplicando esforços tentando resolver bugs de forma independente.

Stallman: Sim. Aqui está outro ponto que ajuda a colocar o problema da informação privativa em uma perspectiva social. Pense na crise do seguro de responsabilidade. A fim de obter qualquer indenização da sociedade, uma pessoa lesada tem que contratar um advogado e dividir o dinheiro com esse advogado. Esta é uma maneira estúpida e ineficiente de ajudar as pessoas que são vítimas de acidentes. E considere todo o tempo que as pessoas investem para levar os negócios longe de seus concorrentes. Pense nas canetas que são embaladas em grandes embalagens de papelão que custam mais do que a caneta – apenas para garantir que a caneta não seja roubada. Não seria melhor se colocássemos canetas livres em todas as esquinas? E pense em todas as cabines de pedágio que impedem o fluxo de tráfego. É um fenômeno social gigantesco. As pessoas encontram formas de conseguir dinheiro impedindo a sociedade. Uma vez que eles podem impedir a sociedade, eles podem ser pagos para deixar as pessoas em paz. O desperdício inerente à propriedade da informação se tornará cada vez mais importante e acabará por fazer a diferença entre a utopia na qual ninguém realmente tem que trabalhar, porque tudo é feito por robôs e um mundo como o nosso onde todos passam muito tempo reproduzindo o que o próximo companheiro está fazendo.

BYTE: Como digitar avisos de direitos autorais no software.

Stallman: Mais como policiar todos para garantir que eles não tenham cópias proibidas de nada e duplicar todo o trabalho que as pessoas já fizeram porque é privativo.

BYTE: Um cínico pode se perguntar como você ganha a vida.

Stallman: De consultoria. Quando faço consultoria, sempre me reservo o direito de dar o que escrevi para o trabalho de consultoria. Além disso, eu poderia estar ganhando a vida enviando cópias do software livre que eu escrevi e algumas que outras pessoas escreveram. Muitas pessoas enviam US$ 150,00 para o GNU EMACS, mas agora esse dinheiro vai para a Free Software Foundation que eu comecei. A fundação não me paga um salário porque seria um conflito de interesses. Em vez disso, contrata outras pessoas para trabalhar no GNU. Enquanto eu puder continuar ganhando a vida consultando, acho que é o melhor caminho.

BYTE: O que está atualmente incluído na fita de distribuição oficial do GNU?

Stallman: Neste momento a fita contém o GNU EMACS (uma versão serve para todos os computadores); Bison, um programa que substitui YACC; MIT Scheme, que é o dialeto super simplificado do LISP do professor Sussman; e Hack, um jogo de exploração de masmorras semelhante ao Rogue.

BYTE: O manual impresso vem com a fita também?

Stallman: Não. Os manuais impressos custam US$ 15,00 cada ou copie-os você mesmo. Copie esta entrevista e compartilhe-a também.

BYTE: Como que se pode obter uma cópia dela?

Stallman: Escreva para a Free Software Foundation, 675 Massachusetts Ave., Cambridge, MA 02139.

[O endereço atual (desde 2005) é:
Free Software Foundation, 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
Voz: +1-617-542-5942
Fax: +1-617-542-2652]

BYTE: O que você vai fazer quando terminar o sistema GNU?

Stallman: Não tenho certeza. Às vezes acho que o que vou fazer é a mesma coisa em outras áreas de software.

BYTE: Então esta é apenas a primeira de toda uma série de ataques à indústria de software?

Stallman: Espero que sim. Mas talvez o que eu faça seja apenas viver uma vida de facilidade trabalhando um pouco do tempo apenas para viver. Eu não tenho que viver caro. O resto do tempo eu posso encontrar pessoas interessantes para andar ou aprender a fazer coisas que eu não sei fazer.