Nueve meses de trabajo y 251 contribuidores dan como resultado Zig 0.14.0, la versión más ambiciosa del lenguaje hasta la fecha. El titular más llamativo es el de la compilación incremental, pero hay más.
63 milisegundos en lugar de 14 segundos
Si trabajas con proyectos grandes en Zig, este cambio te va a resultar muy tangible. En una base de código de 500.000 lÃneas, el análisis semántico al detectar un cambio pasa de 14 segundos a 63 milisegundos. No es una mejora del 20% ni del 50%: es un orden de magnitud distinto.
La compilación incremental real lleva años siendo uno de los objetivos declarados del proyecto. La idea es que el compilador sepa qué ha cambiado y solo reanalice lo necesario, sin tocar lo que ya estaba correcto. A partir de 0.14.0 esto funciona de verdad, y los números lo confirman.
El backend nativo x86 ya es casi equivalente a LLVM
Zig lleva tiempo construyendo su propio backend para x86 como alternativa a LLVM. En esta versión supera el 98% de compatibilidad: pasa 1.884 de los 1.923 tests de comportamiento definidos para el backend LLVM. La diferencia restante son casos concretos que se irán cerrando en versiones sucesivas.
Tener un backend propio no es solo una curiosidad técnica. LLVM es potente pero lento en tiempos de compilación. El backend nativo de Zig es más rápido y reduce la dependencia de una infraestructura externa que el proyecto no controla. Para proyectos open source de sistemas con bajo nivel de abstracción, este tipo de independencia importa.
Qué es Zig y por qué importa seguirle la pista
Zig es un lenguaje de sistemas sin runtime ni garbage collector. Su objetivo declarado es sustituir a C en herramientas de bajo nivel: compiladores, emuladores, sistemas operativos, utilidades de red. No tiene macros ocultas ni excepciones implÃcitas. Lo que escribes es lo que se ejecuta.
A diferencia de otros lenguajes de sistemas, Zig incluye un compilador de C y C++ integrado (zig cc), lo que lo convierte también en una herramienta de compilación cruzada para proyectos que ya usan C. Muchos equipos lo adoptan primero por eso, antes de migrar código propio.
La seguridad en la cadena de suministro también entra en juego: un compilador con menos dependencias externas tiene una superficie de ataque menor, algo relevante cuando hablamos de seguridad en librerÃas open source.
Puedes consultar las notas completas de la versión en ziglang.org.
Imagen: Pexels / Nemuel Sereti
