LM 90 | Computação em nuvem

     

   Siga-nos no Twitter                         
Preencha os campos abaixo para entrar na sua conta:
Esconder
Notícia

Reflexões de um Cachorro Louco

Cerveja em troca de código

Publicado em 11/07/2011 às 11:55

Versão para impressão Enviar por email

As pessoas me perguntam porque os programadores escrevem códigos e os dão “de graça”. Há muitas razões, mas eu geralmente dou uma: o programador pode acabar em uma conferência e um usuário agradecido pode pagar a ele uma cerveja, ou até mesmo um jantar.

Era fevereiro ou março de 1995 a transposição do Linux para o processador Alpha estava bem encaminhada. Conversando com alguns desenvolvedores pela Internet, comecei a ouvir rumores de que a versão para o Alpha não teria “bibliotecas compartilhadas”, mas, em vez disso, binários estaticamente vinculados.

Para aqueles que não entendem as ramificações de binários estaticamente vinculados, significa que cada programa tem todas as bibliotecas das quais necessita para ser executado como uma partícula no disco e até mesmo na memória principal do computador, juntamente com o resto do código que o programador escreveu.

Nos primórdios da programação, isso não era algo tão horrível como soa hoje, por que poucas bibliotecas poderiam ser compartilhadas, mas a medida em que os sistemas operacionais tornaram-se mais sofisticados e incluíram bibliotecas matemáticas, de gráficos, de segurança, e uma variedade de outros recursos poderiam ser compartilhados entre programas, a duplicação desse código milhares de vezes em um sistema individual, ao vinculá-lo em cada programa, tomou grandes quantidades de espaço em disco, que se tornou intolerável.

Além disso, sem bibliotecas compartilhadas, cada vez que se lançava uma correção para a biblioteca, você teria que vinculá-la novamente e redistribuir todas os aplicativos que a utilizavam. Imagine ter que redistribuir um sistema operacional inteiro só porque você consertou um bug em uma biblioteca básica. Isso é impensável hoje.

Bibliotecas estaticamente vinculadas eram tão horríveis que técnicas estranhas eram usadas para reduzir o impacto delas. Diversos programas eram vinculados estaticamente juntos para “compartilhar” a biblioteca de códigos (com diferentes pontos de entrada), ainda que os programas não compartilhassem muitos outros recursos.

Bibliotecas estaticamente vinculadas para propósitos gerais tornaram-se um demônio a ser combatido.

O Ultrix, sistema operacional criado pela Digital Equipment Croporation (DEC), com código originalmente tirado do BSD 4.1c, nunca compartilhou bibliotecas. Nós contratamos um grupo de 15 engenheiros para desenvolver bibliotecas compartilhadas para Ultrix, mas eles acabavam sendo puxados para outros projetos, então, durante cerca de sete anos, a Sun Microsystems derrotava a DEC consistentemente pelo fato de o Ultrix não ter bibliotecas compartilhadas. Isso tornou-se um grande argumento para o grupo de marketing deles e eu, naturalmente, era bem sensível a esse problema.

Claro, eu não ficava feliz em ouvir que meu pequeno bebê, Alpha Linux, não teria bibliotecas compartilhadas apesar de o Intel Linux ter. E quando eu não estou feliz, eu conto às pessoas.

Um dia eu estava na minha mesa e recebi um e-mail que dizia algo assim:

“Querido Sr. Hall,
Eu ouvi dizer que você está chateado com o fato de o Alpha Linux não ter bibliotecas compartilhadas. Se você me mandar documentação sobre os compiladores Alpha, eu verei se consigo criar bibliotecas compartilhadas para você”.

Bem, eu nunca tinha ouvido falar dessa pessoa e duvidei que ela seria capaz de fazer isso. Mas mandar a documentação para ele foi fácil, já que tudo era eletrônico. Então eu mandei.

Duas semanas depois, eu recebi a seguinte mensagem:

“Querido Mr. Hall,
As bibliotecas compartilhadas estão se desenvolvendo bem, mas eu gostaria de conversar com alguem da sua equipe sobre o compilador, de forma que eu possa me certificar de que os módulos de objeto criados pelo compilador combinarão com o formato dos compiladores da DEC”.

Sem poder acreditar no que eu lia e ainda questionando se isso seria possível, eu fui ao líder da equipe do compilador na DEC e perguntei a ele se ele poderia conversar com essa pessoa sem voz por e-mail.

Alguns dias depois, o líder do grupo de compilador veio a minha mesa e disse:

“Quem é esse cara? Ele é simplesmente um dos maiores conhecedores de compiladores com o qual eu já conversei!”

Eu disse a ele que não sabia quem era o rapaz, somente alguém “trabalhando no projeto Alpha Linux”.

Alguns dias depois, outro e-mail apareceu:

“Querido Mr. Hall,
As bibliotecas compartilhadas para o Alpha Linux estão prontas e o código está no pool”.

Não pude acreditar nos meus olhos.... quinze engenheiros... sete anos e nada de bibliotecas compartilhadas para Ultrix. Um cara, cinco semanas, bibliotecas compartilhadas para o Alpha Linux.... o que estava errado nessa situação?

Bem, como eu disse, houve algumas circunstâncias que retraíram o desenvolvimento do Ultrix, e eu não culpo os engenheiros que estavam na DEC, mas eu ainda estava segurando a respiração até o lançamento do Alpha Linux, em novembro de 1995.

Mais tarde naquele ano, ou talvez no começo de 1996, eu estava na conferência USENIX mostrando o Alpha Linux. Como um membro ativo na organização do USENIX e na coordenação do DEC para aquela conferência, eu ficava rodando o hotel, tentando deixar tudo organizado para aquela noite.

Um jovem rapaz (pelo menos parecia há 15 anos) com cabelos longos e loiros, usando uma camiseta tie-dye, bermuda e sandálias, acenou para mim e eu contribuí com o aceno, mas sem parar para conversar com ele. Mais tarde, no meu retorno, o mesmo rapaz (agora junto de alguém com mais idade, mas com os mesmos trajes informais) acenou de novo. Novamente eu retribui o aceno, mas continuei com minha correria.

Na terceira vez que vi o jovem, ele parou na minha frente e disse:

“Senhor Hall, eu só queria agradecê-lo por me fazer um favor”.

“Que favor?”, eu perguntei.

“Você me mandou uma documentação uma vez”.

“Documentação...” eu tentei lembrar “Eu não me lembro.... MEU DEUS! VOCÊ É O CARA DAS BIBLIOTECAS COMPARTILHADAS! Eu tenho notícias para você. Você NUNCA mais vai pagar por qualquer cerveja ou comida na minha presença!”

Como ele já tinha passado da idade legal para beber álcool (embora ele parecesse ter quinze anos), toda vez que ele tentava pagar por comida ou bebida, pelo resto da conferência, eu estava lá para interceptar e pagar a conta dele. E não era a Digital Equipment Corporation que estava arcando com isso, era eu mesmo.

Eu continuei vendo o rapaz em vários eventos de Linux e toda vez que eu o via tentando comprar comida ou bebida, lá estava eu para intervir e comprar tudo para ele.

Quem era essa pessoa? Seu nome é Richard Henderson. Naquele tempo, ele era estudante pela Universidade do Texas. Ele teve uma passagem pela Cygnus e hoje trabalha na Red Hat.

Já faz alguns anos que eu não vejo Richard, mas se ele aparecer na minha frente de novo, eu ainda vou pagar comida e bebida para ele.

Carpe Diem!

Compartilhe


Comentários

Em 24/07/2011 às 13:47, l.dewes2008 escreveu:

caramba

legal

Entre seus dados para comentar a notícia:


Esqueceu a senha?
Cadastro

Posts Recentes

O conto das mensagensPublicado em 04/05/2012 às 13:03 – Comentar primeiro

Maddog avalia os efeitos de mentes fechadas sobre até mesmo o mais simples do softwares.

Leia mais...
As necessidades de muitosPublicado em 14/12/2011 às 9:30 – Comentar primeiro

Maddog fala sobre o tempo em que desenvolveu uma atualização para o sistema Ultrix, como aprendeu sobre escolhas e o benefício da opinião da maioria.

Leia mais...
Frustrações noturnasPublicado em 27/10/2011 às 12:32 – Comentar primeiro

Maddog fala sobre algumas frustrações com a tecnologia e como isso pode afetar o seu uso pelos usuários finais

Leia mais...
Cerveja em troca de códigoPublicado em 11/07/2011 às 11:55 – 1 comentário(s)

Maddog conta uma história sobre desenvolvedores e a recompensa pelos seus esforços no mundo do software livre.

Leia mais...
Gandhi teria sido um defensor do Software Livre?Publicado em 05/05/2011 às 11:47 – Comentar primeiro

Maddog traça paralelos com os atos de desobediência civil incentivados por Gandhi com os benefícios do Software Livre.

Leia mais...
Offtopic: Mom&Pop(TM)Publicado em 15/03/2011 às 10:38 – Comentar primeiro

Maddog conta um pouco sobre sua história familiar e fala sobre o falecimento de sua mãe, Marian Rhoda (Burns) Hall.

Leia mais...
Quando ser gratuito custa caroPublicado em 03/01/2011 às 10:22 – Comentar primeiro

A importância de se inscrever com antecedência nos encontros de software livre gratuitos, como o Ohio Linux Fest.

Leia mais...
Falta de espaçoPublicado em 26/11/2010 às 18:35 – Comentar primeiro

Colunista faz uma reflexão sobre a evolução da capacidade de armazenamento dos computadores.

Leia mais...
Ganhos pequenos e rápidosPublicado em 25/10/2010 às 17:28 – Comentar primeiro

Maddog relata a dificuldade dos usuários de países emergentes em aplicar os conceitos de Software Livre.

Leia mais...
É meu dever!Publicado em 07/10/2010 às 14:47 – Comentar primeiro

Colunista conta as dificuldades com impostos e mostra que a burocratização e o engessamento dos processos acontece em qualquer lugar do mundo.

Leia mais...
O cliente tem (quase) sempre razãoPublicado em 14/06/2010 às 9:58 – Comentar primeiro

Existe o velho ditado que diz que "o cliente tem sempre razão", e enquanto isso é verdade em 99,9% dos casos, eu passei por pelo menos uma situação em que o cliente estava errado...

Leia mais...
Valor questionávelPublicado em 05/03/2010 às 16:20 – Comentar primeiroComo eu compro vários livros por meio de um revendedor online, normalmente recebo alguns e-mails deles com “sugestões” de “livros de interesse” com base naqueles que já encomendei no passado. Recentemente, comecei a receber sugestões de livros com títulos muito longos e com a combinação de uma série de tópicos.Leia mais...
HeróisPublicado em 03/03/2010 às 10:41 – Comentar primeiroTenho alguns heróis pessoais que me inspiram: Abraham Lincoln, Samuel Clemens, Conra-almirante Grace Murray Hopper, Albert Einstein e Alan Turing. Recentemente, conheci outro, e gostaria de compartilhar sua história com vocês, já que essa pessoa teve um importante impacto sobre os computadores e o Software Livre.Leia mais...
Projeto Cauã: definição de mercado verticalPublicado em 01/03/2010 às 14:03 – 1 comentário(s)Publiquei há alguns meses na Linux Magazine um artigo sobre o Projeto Cauã, um projeto que eu iniciei e ao qual muitas pessoas se juntaram. Hoje, eu gostaria de discutir e coletar sua opinião a respeito de mercados verticais para o Projeto Cauã.Leia mais...
Ande na prancha... ou não! Ajude a Microsoft a eliminar a pirataria de softwarePublicado em 01/03/2010 às 13:25 – 2 comentário(s)Já escrevi várias vezes sobre a “pirataria de software” e acho que muitos dos meus leitores já se cansaram de ouvir sobre ela, mas aconteceu uma coisa semana passada que me fez voltar a pensar na pirataria de software.Leia mais...

Posts anteriores

Meu carrinho
Meu carrinho Carrinho vazioIr para a loja
Shopping