Menu

Playground de Zero

Leer documentación

Escribe, ejecuta y comparte fragmentos de código, sin instalaciones.

main.0
Output
Click Run to see the output here.

Prueba Zero en el navegador

Zero es el nuevo lenguaje de programación de sistemas de Vercel Labs, publicado por primera vez en mayo de 2026. Por fuera tiene aire de Rust — pub fun, let mut, ->, corchetes genéricos — pero su objetivo de diseño es distinto: todo el toolchain está pensado para que los agentes de IA puedan leerlo, editarlo y repararlo con la misma soltura que un humano. Los diagnósticos salen como JSON estructurado con códigos de error estables, el compilador puede emitir planes de reparación tipados y los binarios pesan menos de 10 KiB. El playground te da un editor limpio para trastear con el lenguaje sin instalar nada.

La idea más distintiva de Zero es la I/O basada en capabilities. No hay globales implícitos ni stdout ambiente — una función que quiera escribir en la terminal tiene que aceptar un parámetro World y llamar a world.out.write(...). Los errores se propagan con raises y check en lugar de excepciones o panics, y los valores opcionales usan .has / .value en vez de null. Pulsa Run y el editor compila tu código en el servidor y te muestra la salida. Stdin todavía no está conectado porque Zero v0.1.3 aún no ha publicado una API de stdin — usa std.args desde el panel de Args.

Por qué Zero es interesante

  • I/O basada en capabilities: cada efecto secundario (stdout, ficheros, red) pasa por un parámetro World, así la firma de una función te dice exactamente qué puede tocar. Sin globales ocultos, sin allocator implícito, sin asincronía sorpresa.
  • Toolchain pensado para agentes: zero emite diagnósticos JSON estables, zero fix --plan --json genera planes de reparación tipados y todos los subcomandos del CLI aceptan --json para que los agentes redirijan la salida en lugar de parsearla con regex.
  • Binarios nativos diminutos, a menudo por debajo de 10 KiB. El compilador usa emitters directos para ELF, Mach-O, PE y WebAssembly, así que no arrastra una dependencia de LLVM.
  • Sintaxis familiar, seguridad más afilada: parece Rust sobre el papel, pero sin panic-on-null, sin GC implícito y sin flujo de control oculto. Los errores son simplemente valores que propagas con check.

Cosas que probar en el playground de Zero

  • Imprime algo con world.out.write y observa cómo la anotación raises te obliga a manejar el camino de error con check. Es todo el idioma de Zero para conseguir seguridad sin excepciones, en un ejemplo minúsculo.
  • Lee un argumento de línea de comandos con std.args.get(N) y desempaqueta el opcional con .has / .value. Edita los valores en el panel de Args debajo del editor — se pasan a tu programa al pulsar Run, igual que un argv real.
  • Escribe una pequeña fun que devuelva un String, llámala desde main y mira cómo los tipos se enhebran solos. Zero infiere los genéricos de forma más agresiva que Rust, así que la mayoría de llamadas no necesita anotaciones.

Preguntas frecuentes sobre Zero

¿Qué es el lenguaje de programación Zero?
Zero es un lenguaje de sistemas experimental de Vercel Labs, publicado por primera vez en mayo de 2026. Compila a ejecutables nativos pequeños (a menudo por debajo de 10 KiB) y está construido pensando en agentes de IA: el compilador emite diagnósticos JSON estructurados, cada subcomando del CLI acepta --json y un modo separado zero fix --plan produce planes de reparación tipados que los agentes pueden aplicar directamente. En sintaxis se sitúa entre Rust y Zig. La idea principal es la I/O basada en capabilities a través de un parámetro World.
¿Necesito instalar el compilador de Zero para usar este playground?
No. Coddy ejecuta el toolchain zero del lado del servidor en un contenedor aislado, así que tú escribes el código en el navegador y pulsas Run. La versión del compilador está fijada (actualmente v0.1.3) y la sandbox es la misma para cada ejecución. Si además quieres desarrollar en local, el proyecto Zero publica binarios precompilados en su página de releases de GitHub.
¿Por qué el playground de Zero no tiene un cuadro de stdin?
Porque Zero v0.1.3 todavía no expone una API de stdin. El lenguaje accede al mundo exterior solo a través de capabilities sobre el parámetro World (world.out, world.err), más std.args para argumentos de línea de comandos y std.env para variables de entorno. Hasta que Vercel Labs publique una capability de stdin, usa el panel de Args debajo del editor — así es como le pasas entrada a tu programa.
¿Qué es la capability World y por qué main recibe una?
Zero no tiene un espacio global implícito para I/O. Una función que quiera escribir salida, leer ficheros o llamar a la red tiene que recibir un valor World y llamar a métodos sobre él (world.out.write, world.err.write, etc.). Eso convierte la firma en una declaración honesta de los efectos secundarios — si una función no recibe World, demostrablemente no puede tocar el mundo exterior. main recibe uno porque el runtime es quien concede la capability inicial.
¿Qué significan raises y check?
Zero gestiona los errores de forma explícita en lugar de usar excepciones. Una función que puede fallar anota su firma con raises (opcionalmente listando los nombres de error concretos) y quien la llama escribe check expr para propagar el fallo hacia arriba. Piénsalo como el operador ? de Rust con tipos de error con nombre: los fallos son valores, no sorpresas de flujo de control.