Escribes una query SQL, presionas enter y unos milisegundos después aparecen resultados. En el medio, un pequeño compilador ya parseó el texto, construyó un plan, lo optimizó y lo ejecutó. Este post recorre ese pipeline con una query real y código real en Rust usando DataFusion.
Model, Update, View. Tres piezas, un bucle, cero sorpresas. Explicamos The Elm Architecture desde cero con ejemplos lado a lado en Rust y Scala, rastreamos de donde viene el patron, por que sigue apareciendo en TUIs y codebases funcionales, y cuando deja de ser la herramienta correcta.
Todo programa bien tipado es una demostración. Todo tipo es una proposición. No es una metáfora: es un teorema matemático descubierto en los años 30 que explica por qué hacer los estados inválidos irrepresentables realmente funciona.
Referencias nulas, spinners de carga que muestran errores y datos simultáneamente, pagos capturados y anulados a la vez. No son hipotéticos; son consecuencia directa de tipos que mienten sobre el dominio.
Los tipos se llaman algebraicos porque obedecen aritmética. Los tipos producto multiplican, los tipos suma suman. Entender esta aritmética explica por qué un enum con 5 variantes es infinitamente más preciso que 4 flags booleanos.
Un semáforo que está en rojo y verde a la vez. Un usuario que está logueado y deslogueado simultáneamente. Los flags booleanos hacen estos estados absurdos perfectamente representables, y ese es el problema.