El patrón de diseño ReaderT en Haskell: guía práctica

El patrón ReaderT es una guía de arquitectura recomendada en Haskell para estructurar aplicaciones con estado de configuración y acceso a funciones globales. Consiste en definir un tipo de datos central, llamado habitualmente Env, que agrupa toda la configuración en tiempo de ejecución y las funcion

Historias fascinantes de la informática reunidas en una sola lista

El programador y divulgador Al Sweigart ha publicado en su blog una amplia recopilación de anécdotas, fallos y conceptos decisivos en la historia de la informática y el desarrollo de software. La lista parte del célebre comentario de Tony Hoare sobre la invención de la referencia nula como su «error

Interruptores de modo oscuro: con dos estados basta

Artículo de Lea Verou que defiende el uso de interruptores de modo oscuro con dos estados frente a los clásicos de tres (claro, oscuro y sistema). La autora parte de una premisa: el modelo interno de una aplicación sí necesita tres estados —el valor por defecto del sistema operativo y los valores ex

El software gira en torno a las personas, no al código

Una carta abierta dirigida a desarrolladores nóveles defiende que el éxito de un proyecto de software depende más de las personas que del código en sí. El autor, Dan, confiesa que al inicio de su carrera creía que escribir código era la parte central del trabajo, por lo que invirtió tiempo en guías

Solid y Clean Code: una crítica desde la sospecha

Daniel, desarrollador y estudiante de Historia, sostiene que los principios SOLID y el libro Clean Code nunca le transmitieron solidez ni limpieza. Relata que aprendió a programar mediante documentación y proyectos, y que la lectura de Clean Code le pareció un conjunto de consejos de un ingeniero se

Por qué los patrones de diseño suelen sobrar en el software moderno

Los patrones de diseño, popularizados por el libro de 1994 de la «Banda de los Cuatro» (Gamma, Helm, Johnson y Vlissides), se concibieron como plantillas reutilizables y agnósticas al lenguaje para resolver problemas recurrentes de diseño. Con el tiempo, señala el autor, se han convertido en dogma:

Programar es construir teorías, no solo escribir código: Peter Naur

Programming as Theory Building es un ensayo de Peter Naur que propone una perspectiva radical sobre lo que significa真正的programar. Según Naur, el objetivo central del programador no es simplemente producir código fuente, sino construir y mantener una teoría –un modelo mental– del sistema, de sus requ

C++: Cómo funciona el borrado de tipo en std::any

Este artículo explora la técnica de "type erasure" (borrado de tipo), un mecanismo fundamental detrás de la implementación de `std::any` en C++. La idea principal es permitir trabajar con objetos de diferentes tipos a través de una interfaz común, ocultando los tipos concretos subyacentes. El artícu

Singleton en C++: Optimización para Mejor Rendimiento

Este artículo de Andreas Fertig explora cómo optimizar el rendimiento de la implementación de un Singleton en C++. Un Singleton es un patrón de diseño que asegura que solo exista una instancia de una clase, controlando su acceso. El artículo se basa en un ejemplo práctico: un Display Manager (como G

Simplicidad Ignorada: ¿Por qué no se premia en el trabajo?

El artículo "Nobody Gets Promoted for Simplicity" de terriblesoftware.org aborda un problema sutil pero común en equipos de ingeniería: la tendencia a recompensar la complejidad sobre la simplicidad. Aunque la simplicidad es una virtud crucial, a menudo se pasa por alto en las evaluaciones de desemp

Opciones en Go: Nueva solución con funciones

Este artículo describe una solución innovadora para manejar opciones en Go, evitando las limitaciones de los enfoques tradicionales. El autor presenta un sistema que utiliza funciones autorreferenciales para definir opciones, permitiendo a los usuarios configurar el estado de un objeto (`Foo`) y, op