Lo pequeño no es lo mismo que lo simple

En un ensayo técnico con tono divulgativo, el autor parte de la cita "simple is not small" para distinguir dos conceptos que suelen confundirse en el diseño de software: lo pequeño (poco código, pocas piezas) y lo simple (poco acoplado, una sola "trenza"). Tomando como referencia la charla "Simple M

Bluefin redefine sus capacidades como sistema de efectos

Bluefin se presenta principalmente como un sistema de capacidades y, en segundo lugar, como un sistema de efectos para Haskell. Esta librería, publicada por primera vez a principios de 2024, se inspira en effectful de Andrzej Rybczak y funciona como una envoltura ligera sobre el tipo IO de Haskell.

Coherencia y reglas de instancias huérfanas en sistemas de tipos

Las typeclasses (Haskell) y los traits (Rust) son mecanismos de sobrecarga que permiten resolver una llamada a método en función de los tipos de sus argumentos. Esta resolución descansa sobre una propiedad esencial: la coherencia. Un sistema de tipos es coherente cuando, para cualquier restricción g

Desmitificando el concepto de tipo en programación

Este ensayo, escrito como complemento de un texto anterior titulado 'Type Theory Weary', cuestiona la necesidad de tratar los tipos como un constructo especial dentro de la informática y la lógica. El autor sostiene que los sistemas de tipos surgieron históricamente para resolver problemas que en su

Choral: un lenguaje para programar coreografías distribuidas

Choral es un lenguaje de programación orientado a objetos diseñado para especificar coreografías, es decir, protocolos multiparte que definen cómo varios roles (los clásicos Alice, Bob, Carol…) deben coordinarse para llevar a cabo una tarea conjunta. Su objetivo es simplificar la construcción de sis

Por qué los métodos formales siguen sin usarse en la industria del software

Los métodos formales —herramientas matemáticas para especificar y verificar software— apenas se utilizan fuera de nichos académicos y de alta seguridad. Un análisis extenso repasa las razones históricas y estructurales de esta baja adopción y propone una mirada más matizada que los tópicos habituale

El lenguaje como espacio latente diseñado

El ingeniero Joshua Barretto propone en un ensayo que el lenguaje humano funciona como un espacio latente de alta entropía: una herramienta tecnológicamente moldeada durante milenios que facilita el razonamiento conceptual, del mismo modo que un sistema de tipos fuerte en lenguajes como Rust o Haske

Reflexiones sobre los tipos enteros en los lenguajes de programación

Este artículo analiza los sistemas de tipos enteros en los lenguajes de programación más extendidos y defiende el enfoque de Rust como modelo más riguroso. El autor repasa cómo C, C#, Go y Swift manejan los enteros: en C, el desbordamiento de enteros con signo es comportamiento indefinido y conviven

Contraejemplos en sistemas de tipos: una colección de casos sutiles

Counterexamples in Type Systems es una obra de referencia compilada por Stephen Dolan —con colaboraciones reconocidas de Andrej Bauer, Leo White y Jeremy Yallop— que reúne treinta y un contraejemplos cuidadosamente seleccionados para ilustrar los puntos delicados, las trampas y las excepciones de lo

Un enfoque tipado y algebraico para el análisis sintáctico

Neel Krishnaswami y Jeremy Yallop, de la Universidad de Cambridge, presentan en PLDI '19 (Phoenix, 22–26 de junio de 2019) un trabajo que reconcilia dos tradiciones de la construcción de analizadores sintácticos: los generadores de parsers —basados en gramáticas BNF y autómatas, con análisis en tiem

Prism: un lenguaje funcional impuro con efectos tipados

Prism es un compilador funcional de prueba de concepto desarrollado por Stephen Diehl durante los últimos tres años. Su propuesta central consiste en modelar los efectos computacionales —mutación, excepciones, generadores, entrada/salida— dentro del sistema de tipos, de modo que el programador decla

Implementan equipamiento profunctor en Haskell como verificación práctica

El artículo presenta una implementación práctica en Haskell del concepto matemático de 'equipamiento profunctor' (profunctor equipment), una estructura proveniente de la teoría de categorías Higher Order Topos Theory. El autor, Bartosz Milewski, decide usar Haskell como 'juguete' para verificar comp

Tipado: ¿Hindley-Milner o Bidireccional?

Este artículo aborda una pregunta común entre los desarrolladores de lenguajes de programación: ¿deberían usar un sistema de tipos Hindley-Milner (HM) o Bidireccional (Bidir)? La respuesta, según el autor, no es tan simple como elegir entre dos opciones mutuamente excluyentes. La verdadera pregunta