Zig by Example
Estado de “Zig by Example”
- Apunta a Zig 0.14; quienes comentan señalan cambios importantes desde entonces (impresión/formateo “writergate”, sistema de compilación, interoperabilidad con C).
- Varios dicen que los ejemplos no compilan en Zig actual; consideran que está al menos ~2 años desactualizado y que es “muy breve” / demasiado simplista.
- Varias personas afirman que parece generado por IA y, por tanto, no es fiable para aprender.
Recursos alternativos para aprender Zig
- Recomendados con frecuencia:
- Learning Zig (libro en línea), zig.guide.
- “Introduction to Zig” (libro en línea basado en proyectos).
- Ziglings (ejercicios interactivos; mantenido al día con la última versión; listado en el sitio oficial de Zig).
- Página oficial “Why Zig over Rust/D/C++”.
- Documentación TigerStyle del proyecto Tigerbeetle como referencia de estilo/mejores prácticas.
- zigdoc y ziglint, además de
zig fmt, para herramientas.
Versionado, estabilidad y herramientas
- Punto doloroso: muchos proyectos de Zig necesitan una versión específica del compilador; es común que no coincida con la instalación local o entre proyectos.
- Algunos lo llaman un “gran fallo”; otros dicen: está en pre-1.0, la inestabilidad es esperable y aceptada por los primeros usuarios.
- Comparaciones con las ediciones de Rust, que permiten mezclar versiones; Zig carece de un equivalente.
- Mitigaciones sugeridas: usar gestores de versiones/entornos aislados (mise, Nix, Docker, etc.).
Si aprender Zig (vs. Rust/C/C++)
- Opiniones a favor de Zig:
- Más simple, más cercano a C (con algunos aspectos tipo Go), más fácil entender lo que hace la máquina.
- Buena opción para desarrolladores de alto nivel que ocasionalmente bajan a bajo nivel por rendimiento, gracias a su sintaxis simple y a una herramienta/cross-compiling potentes.
- Aunque siga siendo de nicho, el conocimiento se traslada a la comprensión general de sistemas.
- Opiniones escépticas:
- Rust ya cubre la mayor parte del espacio de “sistemas modernos”, con seguridad de memoria y un fuerte impulso industrial.
- Zig no es seguro, es inestable y quizá siga siendo de nicho o siga la trayectoria de D; C sigue siendo el lenguaje dominante de sistemas.
- Para aprender sistemas en profundidad, se prefiere C (y quizá Rust); Zig puede parecer redundante si ya conoces bien C.
- Algunos cuestionan tratar los lenguajes como “inversiones” a largo plazo; otros responden que la fluidez y mantenerse al día con los cambios son costes reales.
Diseño del lenguaje, sintaxis y concurrencia
- A algunos no les gusta
.{}- Se percibe como ruidoso cuando se usa para argumentos y patrones predeterminados/opcionales/variádicos.
- Quejas por tener que descartar explícitamente valores de retorno no usados.
- Quienes lo defienden explican:
.{}es construcción inferida de struct/tupla, a menudo menos verbosa que nombrar tipos.- El descarte explícito es intencional para detectar errores.
- Modelo de concurrencia:
- Se dice que es, en general, similar a Go: colas en lugar de canales, APIs asíncronas/concurrentes en vez de la palabra clave
go, y una construcción similar aselect. - Algunos lamentan la falta de cobertura de esto en el material de ejemplo.
- Se dice que es, en general, similar a Go: colas en lugar de canales, APIs asíncronas/concurrentes en vez de la palabra clave
IA, ecosistema y soporte para LLM
- Hay tensión en torno a la IA:
- Algunos critican las prohibiciones a nivel de proyecto de Zig sobre contribuciones generadas por IA y a la gente “anti-IA” por perjudicar la adopción.
- Otros aclaran que puedes usar libremente IA para escribir aplicaciones en Zig; las restricciones aplican sobre todo al propio código base de Zig.
- Para mejorar el soporte de Zig en los LLM, se sugieren:
- Integración con el servidor de lenguaje de Zig, documentación local y el código fuente como referencias canónicas.
- Construir servidores/herramientas MCP para consultar documentación, linters, formateadores (
zig fmt) y bases de código reales. - Usar historiales de proyectos de Zig como benchmarks para calificar PR generados por IA.
- Algunas personas expresan que la IA ha hecho Rust más accesible y temen que Zig se pierda esa ola; otras argumentan que siempre puedes preguntarle directamente a un LLM en lugar de consumir tutoriales generados por IA.
Adopción, comunidad y motivación
- Las percepciones varían:
- Algunos ven Zig como prometedor por su toolchain, interoperabilidad con C y una sólida biblioteca estándar.
- Otros predicen que seguirá siendo de nicho, con adopción corporativa limitada y una comunidad a veces descrita como hostil o elitista.
- Anécdotas de uso:
- Aficionados y profesionales no especializados en C/C++ usando Zig para drivers, capas FFI y proyectos personales.
- Un comentarista cuestiona si Zig todavía “importa” en la era de la IA y cuenta que ha perdido motivación para seguir aprendiendo sobre él.