Elixir sigue evolucionando y con la versión 1.19 da un salto estratégico, facilitando la detección temprana de bugs mediante un sistema de tipos más inteligente y mejorando drásticamente la experiencia en grandes bases de código gracias a enormes mejoras en tiempos de compilación.
Inferencia total de tipos
Ahora Elixir deduce automáticamente los tipos no solo en patrones, guards y returns, sino también en funciones anónimas y llamadas internas del propio módulo y la librería estándar.
Incluso funciones sin guardas infieren tipos exactos (por ejemplo, de dynamic() → boolean() a integer() → boolean() cuando corresponde), lo que permite detectar errores de tipado en más código sin anotaciones adicionales.
Chequeo y warnings en protocolos
Si usas interpolación de strings o comprehensions con tipos no compatibles con protocolos como String.Chars o Enumerable, Elixir ahora lo detecta y avisa.
También valida funciones anónimas, detectando usos erróneos de tipos (por ejemplo, pasar una string a una función que espera un map).
Balance y transparencia
El equipo ha abordado los desafíos de la inferencia global (velocidad, expresividad, errores encadenados) con una inferencia a nivel de módulo, lo que favorece una transición progresiva al tipado más estricto sin romper proyectos legacy.
Elixir 1.19 mejora el rendimiento por dos vías principales:
Carga de módulos bajo demanda
La carga perezosa de módulos evita bloqueos en el code server de Erlang. En bases de código grandes y con CPUs multinúcleo, esto duplica o cuadruplica la velocidad de compilación.
Compilación paralela de dependencias
Definiendo una variable (MIX_OS_DEPS_COMPILE_PARTITION_COUNT), Mix puede compilar dependencias nativas en paralelo, aprovechando múltiples procesos del sistema.
Resultado: hasta 4 veces más rápido, especialmente en entornos CI y grandes organizaciones, con builds deterministas.
Notas sobre nuevos posibles fallos
Algunas prácticas como @on_load que llama a módulos internos o procesos hijos durante la compilación pueden requerir ajustes (por ejemplo, con Kernel.ParallelCompiler.pmap/2 o Code.ensure_compiled!).
La biografía más vendida del cofundador de Apple, Steve Jobs; escrita por uno de los…
Hubo un tiempo en el que la “seguridad en el hogar” significaba confiar en un…
Elon Musk vuelve a romper todos los esquemas. Los accionistas de Tesla acaban de aprobar…
Los fans de Grand Theft Auto tendrán que esperar un poco más para volver a…
Five Nights at Freddy’s: Into the Pit nos sumerge en un misterioso mundo donde lo…
Adéntrate en el oscuro y retorcido mundo de Bendy and the Ink Machine, donde los…