La experiencia de programar en Zig viniendo de Rust: una comparativa práctica

Fuentes: What Zig felt like, coming from Rust

Un desarrollador con siete años de experiencia en Rust relata su transición a Zig al reimplementar en este lenguaje la librería jsonpath-rust, un procesador del lenguaje de consulta JSONPath definido en RFC 9535. El nuevo proyecto, llamado zig-jsonpath, le sirvió como banco de pruebas para comparar ambos lenguajes.

La primera sorpresa fue la ausencia casi total de soporte IDE: Zig solo ofrecía resaltado de sintaxis y autocompletado básico, lo que le obligó a volver a la línea de comandos. El sistema de compilación build.zig resultó sencillo y refrescante, y la experiencia le llevó a migrar a un entorno basado en helix, alacritty y zellij.

Otra diferencia notable es la estructura de proyectos: mientras que en Rust tiende a organizar el código en carpetas desde el inicio, Zig le incentivó a mantener una estructura plana, con apenas cinco ficheros en src/. En sus propias pruebas, nunca necesitó jerarquías más profundas.

En cuanto a los tests, Zig exige una configuración más verbosa en build.zig y la gestión resulta más laboriosa, en parte por la gestión manual de memoria del lenguaje. El autor también señala la falta de paradigma funcional en Zig: Rust permite uso intensivo de combinadores, inmutabilidad y tipos algebraicos, mientras que Zig le empujó hacia la mutación in-place y los patrones imperativos. Los sum types son el punto donde ambos lenguajes se mantienen más cercanos.

El artículo es una reflexión técnica sin intención promocional: expone fricciones reales y hábitos que cambian al cambiar de lenguaje.