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.
Cada trait en tu arquitectura hexagonal es un algebra tagless-final. Cada impl es un interprete. Has estado escribiendo semantica denotacional sin saberlo. Trazamos la conexion desde el paper de Kiselyov a traves de Cats-Effect de Scala hasta los port traits de Rust, y mostramos por que el patron que los academicos llaman ‘finally tagless’ es el mismo patron que los practicantes llaman ‘inyeccion de dependencias.’
Agregar un nuevo tipo es facil en OOP, dificil en FP. Agregar una nueva operacion es facil en FP, dificil en OOP. Philip Wadler nombro esto el Expression Problem en 1998. Mostramos como se manifiesta en Rust y Scala, y anticipamos la resolucion.