Boa tarde amigos!
No versículo anterior a segunda parte de “The Cathedral and the Bazaar”. Hoje a terceira
A Correspondência Deve Chegar
Desde 1993, eu dirigia o lado técnico de um pequeno provedor de serviços de Internet de acesso livre chamado Chester County InterLink (CCIL) em West Chester, Pensilvânia. Eu co-fundei o CCIL e escrevi nosso software exclusivo de bulletin-board [quadro de avisos] multiusuário – você pode checar “telnetando” [telnet] para locke.ccil.org. Hoje suporta quase três mil usuários em trinta linhas. O trabalho me permitiu acesso 24 horas por dia à rede através da linha de 56K da CCIL – na verdade, o trabalho praticamente exigia!
Eu me acostumei bastante com o email instantâneo da Internet. Eu achava ter que “telnetar” periodicamente para locke para verificar meu e-mail irritante. O que eu queria era que meu e-mail fosse entregue em snark (meu sistema de origem) para que eu fosse notificado quando chegasse e pudesse lidar com isso usando todas as minhas ferramentas locais.
O protocolo de encaminhamento de e-mail nativo da Internet, o SMTP (Simple Mail Transfer Protocol), não seria adequado, porque funciona melhor quando as máquinas são conectadas em tempo integral, enquanto minha máquina pessoal nem sempre está na Internet e não tem endereço IP estático. O que eu precisava era de um programa que alcançasse minha conexão dial-up intermitente e acessasse meu e-mail para ser entregue localmente. Eu sabia que essas coisas existiam e que a maioria delas usava um protocolo de aplicativo simples chamado POP (Post Office Protocol). O POP agora é amplamente suportado pelos clientes de email mais comuns, mas, na época, não era incorporado ao leitor de email que eu estava usando.
Eu precisava de um cliente POP3. Então eu saí na Internet e encontrei um. Na verdade, encontrei três ou quatro. Eu usei um deles por um tempo, mas estava faltando o que parecia ser uma característica óbvia, a capacidade de hackear os endereços no correio buscado para que as respostas funcionassem corretamente.
O problema era este: suponha que alguém chamado ‘joe’ no locke me enviasse email. Se eu buscasse o e-mail para snark e tentasse respondê-lo, meu serviço de email alegremente tentaria enviá-lo para um ‘joe’ inexistente no snark. Endereços de resposta de edição manual para abordar <@ ccil.org> rapidamente se tornaram um problema sério.
Isso era claramente algo que o computador deveria estar fazendo por mim. Mas nenhum dos clientes POP existentes sabia como! E isso nos leva à primeira lição:
- Todo bom trabalho de software começa resolvendo um problema pessoal de um desenvolvedor.
Talvez isso devesse ser óbvio (há muito tempo é proverbial dizer que “a necessidade é a mãe da invenção”), mas muitas vezes os desenvolvedores de software passam seus dias trabalhando duro para receber em programas que não precisam nem amam. Mas não no mundo do Linux – o que pode explicar por que a qualidade média do software originada na comunidade Linux é tão alta.
Então, eu imediatamente lancei um furioso turbilhão de codificação de um novo cliente POP3 para competir com os já existentes? Não mesmo! Eu olhei com cuidado para os utilitários POP que eu tinha em mãos, perguntando a mim mesmo “Qual é o mais próximo do que eu quero?” Porque:
- Bons programadores sabem o que escrever. Os ótimos sabem o que reescrever (e reutilizar).
Terminada a terceira, amanhã a quarta parte. Ricas bençãos!