Menu
Coddy logo textTech

Playground de Zero

Ler documentação

Escreva, execute e compartilhe trechos de código — sem instalação.

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

Experimente Zero no navegador

Zero é a nova linguagem de programação de sistemas da Vercel Labs, lançada pela primeira vez em maio de 2026. Na superfície tem cara de Rust — pub fun, let mut, ->, colchetes genéricos — mas o objetivo de design é diferente: todo o toolchain foi pensado para ser lido, editado e consertado por agentes de IA com a mesma naturalidade que por humanos. Os diagnósticos saem como JSON estruturado com códigos de erro estáveis, o compilador consegue emitir planos de reparo tipados e os binários ficam abaixo de 10 KiB. O playground te dá um editor limpo para mexer na linguagem sem instalar nada.

A ideia mais distintiva de Zero é a I/O baseada em capabilities. Não existem globais implícitos nem stdout ambiente — uma função que quer escrever no terminal precisa aceitar um parâmetro World e chamar world.out.write(...). Os erros se propagam com raises e check, em vez de exceptions ou panics, e os valores opcionais usam .has / .value no lugar de null. Aperte Run e o editor compila seu código no servidor e mostra a saída. O stdin ainda não está ligado porque Zero v0.1.3 não publicou uma API de stdin — use std.args pelo painel de Args.

Por que Zero é interessante

  • I/O baseada em capabilities: cada efeito colateral (stdout, arquivos, rede) passa por um parâmetro World, então a assinatura da função já te diz no que ela pode mexer. Sem globais escondidos, sem allocator implícito, sem async surpresa.
  • Toolchain pensado para agentes: zero emite diagnósticos JSON estáveis, zero fix --plan --json gera planos de reparo tipados e todo subcomando do CLI aceita --json para que agentes encaminhem a saída em vez de parsear com regex.
  • Binários nativos minúsculos, frequentemente abaixo de 10 KiB. O compilador usa emitters diretos para ELF, Mach-O, PE e WebAssembly, então não arrasta dependência do LLVM.
  • Sintaxe familiar, segurança mais afiada: parece Rust no papel, mas sem panic-on-null, sem GC implícito e sem fluxo de controle escondido. Erros são apenas valores que você propaga com check.

Coisas para experimentar no playground de Zero

  • Imprima algo com world.out.write e veja como a anotação raises te força a tratar o caminho de erro com check. É todo o idioma de Zero para conseguir segurança sem exceções, em um exemplo minúsculo.
  • Leia um argumento de linha de comando com std.args.get(N) e desempacote o opcional com .has / .value. Edite os valores no painel de Args abaixo do editor — eles são passados para o seu programa ao apertar Run, igual a um argv de verdade.
  • Escreva uma pequena fun que retorna uma String, chame-a a partir de main e veja os tipos se encaixarem sozinhos. Zero infere genéricos de forma mais agressiva que Rust, então a maioria das chamadas dispensa anotação.

Perguntas frequentes sobre Zero

O que é a linguagem de programação Zero?
Zero é uma linguagem de sistemas experimental da Vercel Labs, lançada pela primeira vez em maio de 2026. Ela compila para executáveis nativos pequenos (em geral abaixo de 10 KiB) e foi construída pensando em agentes de IA: o compilador emite diagnósticos JSON estruturados, todo subcomando do CLI aceita --json e um modo separado zero fix --plan produz planos de reparo tipados que agentes aplicam direto. Em sintaxe fica entre Rust e Zig. A ideia principal é a I/O baseada em capabilities via um parâmetro World.
Preciso instalar o compilador de Zero para usar este playground?
Não. O Coddy roda o toolchain zero no servidor, dentro de um container isolado, então você escreve o código no navegador e aperta Run. A versão do compilador é fixada (atualmente v0.1.3) e a sandbox é a mesma a cada execução. Se você também quer desenvolver localmente, o projeto Zero publica binários pré-compilados na página de releases do GitHub.
Por que o playground de Zero não tem um campo de stdin?
Porque Zero v0.1.3 ainda não expõe uma API de stdin. A linguagem só alcança o mundo externo através de capabilities no parâmetro World (world.out, world.err), mais std.args para argumentos de linha de comando e std.env para variáveis de ambiente. Até a Vercel Labs lançar uma capability de stdin, use o painel de Args abaixo do editor — é assim que você passa entrada para o seu programa.
O que é a capability World e por que main recebe uma?
Zero não tem um namespace global implícito para I/O. Uma função que queira escrever saída, ler arquivos ou bater na rede precisa receber um valor World e chamar métodos nele (world.out.write, world.err.write etc.). Isso transforma a assinatura em uma declaração honesta dos efeitos colaterais — se uma função não recebe World, ela comprovadamente não consegue tocar no mundo externo. main recebe uma porque o runtime é quem concede a capability inicial.
O que raises e check significam?
Zero lida com erros de forma explícita, sem usar exceptions. Uma função que pode falhar anota sua assinatura com raises (opcionalmente listando os nomes de erro) e quem chama escreve check expr para propagar a falha. Pense nisso como o operador ? de Rust com tipos de erro nomeados: falhas são valores, não surpresas de controle de fluxo.