Resumo

O robô não precisava de uma grande visão

Precisava de um número. Na cronologia do projeto, Stenberg conta que trabalhava num bot para um canal de IRC ligado ao Amiga. Encontrou na rede dados de câmbio e procurou um meio de trazê-los automaticamente. O HttpGet era uma pequena ferramenta de linha de comando, publicada pelo brasileiro Rafael Sagula em 11 de novembro de 1996. Stenberg fez alterações; uma versão com elas apareceu em 17 de dezembro. A autoria inicial é de Sagula. O problema do bot explica por que outra pessoa passou a cuidar e ampliar o programa.

O nome HttpGet servia enquanto a operação parecia ser só baixar por HTTP. Em 1997, o programa passou a aceitar endereços HTTP na linha de comando e a lidar com proxies. A história do projeto registra também reparos em Gopher e a inclusão de downloads FTP. Um nome preso a HTTP deixava de descrever o serviço. Em agosto daquele ano, a versão 2.0 virou urlget. A lista de versões mostra uma mesma linhagem, não dois produtos sem parentesco.

O novo rótulo logo encontrou seu limite. Ainda em 1997 vieram uploads FTP e HTTP POST. O utilitário que dizia «get» agora também enviava dados. O bot havia pedido uma coleta, mas o programa estava aprendendo a fazer transferências nos dois sentidos. A ironia é produtiva: o nome ficou errado porque o código ficou mais útil.

Uma mudança de nome era menos importante que uma porta de entrada

Em 20 de março de 1998 apareceu curl 4. O número quatro preservava a continuidade com urlget; o nome novo já não comprometia o projeto com um protocolo ou com o verbo receber. SSL e cookies entraram ao longo de 1998, segundo a cronologia. Essas capacidades não devem ser empilhadas artificialmente na data de lançamento de curl 4. A ferramenta foi amadurecendo em contato com servidores e usos diferentes.

Para outro desenvolvedor, porém, uma boa ferramenta de linha de comando ainda podia ser difícil de incorporar. Era preciso iniciar um processo externo e interpretar seu resultado. O projeto descreve uma reformulação na primavera de 2000 para construir uma interface de biblioteca adequada. A versão 7.1 saiu em 7 de agosto com a interface easy. O registro original de mudanças enumera símbolos públicos, arquivos de cabeçalho instalados e compilação de biblioteca compartilhada. Esses itens transformam código útil em um contrato que outros programas conseguem chamar.

Uma ligação de terceiros para libcurl surgiu já naquele agosto, segundo a história do projeto. O sinal não é a fama de uma marca, mas alguém de fora apoiando seu próprio programa na interface. A documentação atual da API C mostra a sequência geral de configurar, executar e limpar uma transferência. Suas funções atuais não podem ser retrodatadas; o marco de 2000 foi a possibilidade de usar o motor dentro de outra aplicação.

O trabalho repetido ganhou dono

HttpGet prometia uma busca por HTTP. urlget aceitava mais endereços. curl acompanhou o envio e o recebimento. libcurl deu aos programas alheios acesso ao mesmo motor. Cada nome registrou um limite que o código já tinha atravessado. A conta econômica era simples: manter uma implementação comum de protocolos e condições de rede custava menos do que fazer cada bot resolver tudo de novo. A pequena pergunta de câmbio expôs uma despesa recorrente, e a biblioteca ofereceu uma maneira de compartilhá-la.