3 pontos por GN⁺ 2023-11-17 | 1 comentários | Compartilhar no WhatsApp

Suporte do cURL e libcurl a diversos sistemas operacionais

  • Recentemente, em um pull request do cURL, foi especificado que as mudanças propostas pelos contribuidores não devem atrapalhar os testes em plataformas legadas.
  • O cURL atualmente oferece suporte ao tipo time_t de 32 bits, e foi enfatizado que esse recurso deve ser mantido.
  • O interesse por sistemas legados existe para cumprir promessas e evitar quebras desnecessárias.

Parte da estabilidade e das promessas

  • O projeto cURL se esforça continuamente para manter a estabilidade e a compatibilidade de ABI e API.
  • Aplicações escritas em meados dos anos 2000 continuam funcionando da mesma forma ao serem atualizadas para a libcurl mais recente, sem necessidade de recompilação.
  • Esse é um princípio central do cURL e da libcurl, oferecendo uma solução estável de transferência pela internet na qual os usuários podem confiar e da qual podem depender.

O número de usuários não importa

  • A quantidade de usuários de uma plataforma específica não é a motivação para mantê-la com suporte.
  • O importante é haver alguém fazendo o trabalho e que ele seja concluído.
  • Se um contribuidor continuar garantindo que o cURL funcione em determinada plataforma, ele continuará funcionando nela mesmo que o número de usuários seja pequeno.

Por que o cURL está em todo lugar

  • O motivo de o cURL funcionar em vários sistemas operacionais e arquiteturas de CPU, além de estar instalado em muitos dispositivos, é o forte foco em compilar e operar em qualquer lugar.
  • Muitos usuários e empresas continuam presos a plataformas antigas, de nicho ou legadas, e argumentam que depender do cURL é muito melhor do ponto de vista de segurança do que outras alternativas.

Ainda descontinuamos especificações

  • O cURL às vezes encerra o suporte a determinadas bibliotecas de terceiros e também faz mudanças em outras áreas.
  • As especificações são descontinuadas de forma lenta e cuidadosa, com comunicação aberta para que todos possam se preparar ou contestar.
  • Se o usuário não consegue perceber o comportamento alterado, então considera-se que, na prática, nada mudou.

A mudança do mundo

  • Protocolos e versões da internet mudam com o tempo.
  • A maioria dos comandos cURL escritos em 2002 falha hoje porque os nomes de host e URLs já não funcionam mais.
  • O principal motivo de os comandos cURL escritos em 2002 não funcionarem hoje exatamente da mesma forma é a transição de HTTP para HTTPS.

Opinião do GN⁺

  • O ponto mais importante deste texto é o esforço dos desenvolvedores para que o cURL ofereça suporte a uma ampla variedade de sistemas operacionais e arquiteturas, preservando estabilidade e compatibilidade.
  • O fato de o cURL continuar sendo uma ferramenta confiável apesar das mudanças nos usuários e na tecnologia é algo interessante e atraente para muitos engenheiros de software e usuários.
  • Esse suporte contínuo e essa estabilidade fazem do cURL uma das ferramentas fundamentais da internet, permitindo que ele continue exercendo um papel importante mesmo em meio às mudanças tecnológicas.

1 comentários

 
GN⁺ 2023-11-17
Comentários do Hacker News
  • Elogios às conquistas do Curl

    • Curl é uma ferramenta muito importante para desenvolvedores que têm o objetivo de manter software funcionando em muitos sistemas operacionais.
    • A compatibilidade com time_t de 32 bits foi destacada, mas, com o problema de 2038 se aproximando, foi levantada a dúvida sobre o valor de manter o tratamento de tempo em 32 bits.
  • A percepção dos desenvolvedores sobre o peso trazido por dependências

    • Infraestruturas e sistemas centrais com muitas dependências ficam difíceis de alterar.
    • Mesmo mudanças simples afetam muitos serviços, por isso exigem uma análise cuidadosa.
    • Há orgulho em manter sistemas existentes enquanto se faz mudanças de forma quase imperceptível.
  • Uso contínuo de plataformas antigas, de nicho e legadas

    • Muitos usuários e empresas continuam presos a plataformas antigas, em situações que não podem ser mudadas.
    • Parte dos desenvolvedores de software entrega programas adequados ao propósito com garantias explícitas, mas isso custa caro e é lento.
  • Dúvidas sobre o suporte do Curl em sistemas operacionais antigos

    • Há questionamentos se os builds atuais ainda são feitos em sistemas sem atualizações há mais de 25 anos.
    • Apesar do esforço para não quebrar a matriz de suporte, é difícil verificar se tudo realmente funciona.
  • A licença permissiva como um dos fatores da popularidade do Curl

    • A licença do Curl é parecida com a MIT, mas um pouco diferente.
    • Foi pedido um resumo breve das principais diferenças.
  • Surpresa com a variedade de versões do Linux

    • Existem mais de 100 versões de Linux, mesmo quando ele é considerado um único sistema operacional.
  • Questionamentos sobre a distinção entre sistemas operacionais semelhantes

    • FreeDOS, DR-DOS e MS-DOS foram classificados como sistemas operacionais separados, embora na prática tenham compatibilidade de ABI.
  • Pedidos para reescrever o Curl em Rust e dúvidas sobre a capacidade de alvo do Rust

    • Foi levantada a dúvida se Rust consegue mirar todas as arquiteturas e sistemas operacionais suportados pelo Curl.
  • Sugestão de leitura relacionada sobre o nascimento e a história do Curl

    • Foi compartilhado um link de blog sobre os 25 anos de história do Curl.
  • Menção bem-humorada ao amplo suporte e às atualizações do Curl

    • Uma piada dizia que alguém roda Curl no ENIAC, mas que cada atualização demora muito tempo.