Elixir 1.20.0 se publicó el 3 de junio de 2026, con una revisión de mantenimiento (1.20.2) el 23 de junio. La novedad de fondo no es una función puntual, es un cambio de categorÃa: el lenguaje pasa a tener un sistema de tipos que verifica el código lÃnea a lÃnea sin que el programador tenga que escribir una sola anotación de tipo.
Tipado por inferencia, no por anotación
A diferencia de TypeScript sobre JavaScript o de los tipos graduales de Python, Elixir no te pide que declares el tipo de cada variable o función. El compilador infiere los tipos a partir de los guards (las cláusulas when que ya usabas para especializar funciones) y del cuerpo de la propia función. Si tu código ya usaba pattern matching y guards de forma idiomática, gran parte del beneficio del nuevo sistema de tipos llega gratis, sin tocar una lÃnea.
Tipado de mapas por dominio de claves
Una de las piezas más interesantes es el soporte para tipar mapas según el dominio de sus claves, no solo según valores fijos. La propia documentación pone como ejemplo un tipo como %{integer() => binary(), float() => :ok}, donde el compilador entiende que las claves enteras mapean a binarios y las claves de coma flotante a un átomo concreto. Es un nivel de expresividad que va más allá de lo que ofrecen los sistemas de tipos graduales de la mayorÃa de lenguajes dinámicos.
Quién está detrás del desarrollo
El trabajo de tipado gradual en Elixir lleva varios años en marcha, con financiación de empresas como Fresha y Tidewave, y apoyo del CNRS (el centro nacional de investigación cientÃfica francés), de donde salió buena parte de la investigación académica en la que se basa el sistema de tipos. Es un recordatorio de que las mejoras de este calibre en un lenguaje de producción no surgen de la nada: llevan años de trabajo en teorÃa de tipos por detrás.
Qué esperar si mantienes código Elixir
El compilador empieza a señalarte errores de tipo que antes solo aparecÃan en tiempo de ejecución, sin que tengas que migrar nada de tu base de código existente. Es la misma filosofÃa que Python ha ido adoptando con mypy y los tipos graduales, pero integrada de raÃz en el compilador en vez de como herramienta externa opcional. El registro completo de cambios está en las notas de la versión en GitHub.
Imagen: Pexels / Markus Spiske
