3 puntos por GN⁺ 2023-11-17 | 1 comentarios | Compartir por WhatsApp

Compatibilidad de cURL y libcurl con diversos sistemas operativos

  • En un pull request reciente de cURL, se indicó que los cambios propuestos por quienes contribuyen no deben impedir las pruebas en plataformas heredadas.
  • Actualmente, cURL soporta el tipo time_t de 32 bits, y se enfatiza que esta capacidad debe mantenerse.
  • El interés en los sistemas heredados busca cumplir las promesas y evitar rupturas innecesarias.

Parte de la estabilidad y de las promesas

  • El proyecto cURL trabaja constantemente para mantener la estabilidad y compatibilidad de ABI y API.
  • Una aplicación escrita a mediados de los años 2000 sigue funcionando igual al actualizar a la versión más reciente de libcurl, incluso sin recompilar.
  • Este es un principio central de cURL y libcurl: ser una solución estable de transferencia por Internet en la que las personas usuarias puedan confiar y apoyarse.

La cantidad de usuarios no importa

  • La cantidad de usuarios de una plataforma específica no es la motivación para seguir dándole soporte.
  • Lo importante es que haya alguien haciendo el trabajo y que ese trabajo se complete.
  • Si una persona contribuidora sigue asegurando que cURL funcione en cierta plataforma, cURL seguirá funcionando allí aunque haya pocos usuarios.

Por qué cURL está en todas partes

  • La razón por la que cURL funciona en tantos sistemas operativos y arquitecturas de CPU, y viene instalado en muchos dispositivos, es el fuerte enfoque en que pueda compilar y ejecutarse en cualquier lugar.
  • Muchas personas usuarias y empresas siguen dependiendo de plataformas antiguas, de nicho o heredadas, y sostienen que depender de cURL es mucho mejor para la seguridad que otras alternativas.

Aun así retiramos especificaciones

  • cURL a veces deja de dar soporte a ciertas bibliotecas de terceros y también realiza cambios en otras áreas.
  • Las especificaciones se retiran de forma lenta y cuidadosa, con comunicación abierta para que todo el mundo pueda prepararse o presentar objeciones.
  • Si las personas usuarias no pueden detectar que el comportamiento cambió, entonces se considera que en la práctica no cambió.

Los cambios en el mundo

  • Los protocolos y versiones de Internet cambian con el paso del tiempo.
  • La mayoría de los comandos cURL escritos en 2002 fallan hoy porque los nombres de host y las URL ya no funcionan.
  • La razón principal por la que un comando cURL escrito en 2002 no funciona hoy exactamente igual es la transición de HTTP a HTTPS.

Opinión de GN⁺

  • Lo más importante de este texto es el esfuerzo de quienes desarrollan cURL por mantener soporte para una amplia variedad de sistemas operativos y arquitecturas, preservando así la estabilidad y la compatibilidad.
  • Que cURL siga siendo una herramienta confiable pese a los cambios en las personas usuarias y en la tecnología es un hecho interesante y atractivo para muchas personas ingenieras de software y usuarias.
  • Este soporte continuo y esta estabilidad convierten a cURL en una de las herramientas fundamentales de Internet, con un papel importante incluso en medio de los cambios tecnológicos.

1 comentarios

 
GN⁺ 2023-11-17
Comentarios de Hacker News
  • Elogios a los logros de Curl

    • Curl es una herramienta muy importante para los desarrolladores cuyo objetivo es mantener software que funcione en muchos sistemas operativos.
    • Se destacó la compatibilidad con time_t de 32 bits, pero como el problema del 2038 se acerca, surge la duda sobre el valor de seguir manejando tiempo de 32 bits.
  • La percepción de los desarrolladores sobre la carga que traen las dependencias

    • La infraestructura y los sistemas centrales con muchas dependencias se vuelven difíciles de cambiar.
    • Incluso cambios simples afectan a muchos servicios, por lo que requieren una revisión cuidadosa.
    • Hay orgullo en mantener sistemas existentes mientras se hacen cambios de forma imperceptible.
  • Uso continuo de plataformas antiguas, de nicho y heredadas

    • Muchos usuarios y empresas siguen aferrados a plataformas viejas, y en algunos casos esa situación no se puede cambiar.
    • Algunos desarrolladores de software ofrecen software adecuado para un propósito específico y garantías explícitas, pero eso es costoso y lento.
  • Dudas sobre si Curl realmente sigue siendo compatible con sistemas operativos antiguos

    • Se cuestiona si las compilaciones actuales realmente se hacen en sistemas que no han recibido actualizaciones en más de 25 años.
    • A pesar del esfuerzo por no romper la matriz de compatibilidad, es difícil verificar si de verdad sigue funcionando.
  • La licencia permisiva como uno de los factores de la popularidad de Curl

    • La licencia de Curl es similar a MIT, aunque ligeramente distinta.
    • Se pide una breve explicación de las diferencias principales.
  • Sorpresa por la diversidad de versiones de Linux

    • Existen más de 100 versiones de Linux, incluso si a veces se considera como un solo sistema operativo.
  • Dudas sobre la distinción entre sistemas operativos similares

    • FreeDOS, DR-DOS y MS-DOS fueron clasificados como sistemas operativos separados, aunque en la práctica son compatibles a nivel ABI.
  • Peticiones para reescribir Curl en Rust y dudas sobre el alcance de targets de Rust

    • Se plantea la duda de si Rust puede apuntar a todas las arquitecturas y sistemas operativos que Curl soporta.
  • Sugerencia de lectura relacionada sobre el nacimiento y la historia de Curl

    • Se comparte un enlace a un blog sobre los 25 años de historia de Curl.
  • Comentario humorístico sobre el amplio soporte y las actualizaciones de Curl

    • Broma sobre ejecutar Curl en ENIAC, donde cada actualización tarda muchísimo tiempo.