Una década de quejas sobre Go: por qué este programador todavía odia Go

2025-08-22

Una crítica de diez años de un programador sobre Go destaca varias fallas frustrantes. Los problemas incluyen: alcance de variable de error ilógico que lleva a problemas de legibilidad y errores; dos tipos de nil que aumentan la complejidad; poca portabilidad con compilación condicional torpe; comportamiento impredecible de la función append; instrucciones defer inflexibles para la gestión de recursos; la biblioteca estándar tragándose excepciones; soporte insuficiente para codificaciones distintas de UTF-8; y gestión de memoria ineficiente. El autor argumenta que estos no son desafíos técnicos, sino fallas de diseño fundamentales, afirmando que Go podría haber sido mucho superior.

Leer más
Desarrollo

Cero llamadas al sistema: Creando un servidor web de alto rendimiento con io_uring

2025-08-22

Este artículo detalla la evolución de la creación de servidores web de alto rendimiento, desde el pre-forking inicial hasta select/poll, luego epoll, y finalmente logrando cero llamadas al sistema usando io_uring. El autor desarrolló un servidor web experimental llamado tarweb que utiliza io_uring para agregar asincrónicamente todas las operaciones a una cola del kernel, evitando así la sobrecarga de las frecuentes llamadas al sistema. Combinado con kTLS y archivos sin descriptores, se logran mejoras adicionales de rendimiento. Si bien aún existen desafíos, como la gestión de memoria y las preocupaciones de seguridad de io_uring, el proyecto demuestra el potencial para obtener ganancias significativas de rendimiento en escenarios de alta concurrencia.

Leer más