Menu

Zero Playground

Dokumentation lesen

Code-Snippets schreiben, ausführen und teilen — keine Einrichtung nötig.

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

Zero im Browser ausprobieren

Zero ist die neue Systems Programming Language von Vercel Labs, erstmals veröffentlicht im Mai 2026. Auf den ersten Blick wirkt sie Rust-ähnlich — pub fun, let mut, ->, generische Klammern — aber das Designziel ist ungewöhnlich: Die gesamte Toolchain ist darauf ausgelegt, von KI-Agents genauso bequem gelesen, bearbeitet und repariert zu werden wie von Menschen. Diagnostics kommen als strukturiertes JSON mit stabilen Error Codes raus, der Compiler kann typisierte Repair Plans erzeugen und Binaries bleiben unter 10 KiB. Der Playground gibt dir einen sauberen Editor, um an der Sprache herumzubasteln, ohne irgendetwas zu installieren.

Die markanteste Idee in Zero ist capability-basierte I/O. Es gibt keine impliziten Globals und kein ambient stdout — eine Funktion, die ins Terminal schreiben will, muss einen World-Parameter entgegennehmen und world.out.write(...) aufrufen. Fehler werden mit raises und check weitergereicht statt mit Exceptions oder Panics, und optionale Werte verwenden .has / .value statt null. Drück auf Run, der Editor kompiliert deinen Code serverseitig und zeigt die Ausgabe. Stdin ist noch nicht angeschlossen, weil Zero v0.1.3 noch keine stdin-API ausgeliefert hat — nutze stattdessen std.args über das Args-Panel.

Warum Zero spannend ist

  • Capability-basierte I/O: Jeder Seiteneffekt (stdout, Dateien, Netzwerk) läuft über einen World-Parameter, dadurch verrät dir die Signatur einer Funktion genau, was sie anfassen kann. Keine versteckten Globals, kein impliziter Allocator, kein Überraschungs-Async.
  • Agent-orientierte Toolchain: zero liefert stabile JSON-Diagnostics, zero fix --plan --json produziert typisierte Repair Plans, und jedes CLI-Subcommand akzeptiert --json — Agents können die Ausgabe also pipen, statt sie per Regex zu parsen.
  • Winzige native Binaries, oft unter 10 KiB. Der Compiler nutzt direkte Emitter für ELF, Mach-O, PE und WebAssembly, du schleppst also keine LLVM-Abhängigkeit mit.
  • Vertraute Syntax, schärfere Sicherheit: auf dem Papier Rust-artig, aber ohne panic-on-null, ohne implizites GC, ohne versteckten Kontrollfluss. Fehler sind einfach Werte, die du mit check weitergibst.

Was du im Zero Playground ausprobieren kannst

  • Gib etwas über world.out.write aus und sieh, wie die raises-Annotation dich zwingt, den Error-Pfad mit check zu behandeln. Das ist Zeros komplette Idee von Sicherheit ohne Exceptions, in einem winzigen Beispiel.
  • Lies ein Kommandozeilen-Argument mit std.args.get(N) und entpacke das Optional mit .has / .value. Bearbeite die Werte im Args-Panel unter dem Editor — beim Run werden sie deinem Programm übergeben, genau wie ein echtes argv.
  • Schreib eine kleine fun, die einen String zurückgibt, ruf sie aus main auf und beobachte, wie sich die Typen von selbst durchziehen. Zero inferiert Generics aggressiver als Rust, die meisten Aufrufstellen brauchen daher gar keine Annotationen.

Häufige Fragen zu Zero

Was ist die Programmiersprache Zero?
Zero ist eine experimentelle Systems Language von Vercel Labs, erstmals veröffentlicht im Mai 2026. Sie kompiliert zu kleinen nativen Executables (oft unter 10 KiB) und wurde mit Blick auf KI-Coding-Agents gebaut: Der Compiler liefert strukturierte JSON-Diagnostics, jedes CLI-Subcommand akzeptiert --json, und ein separater Modus zero fix --plan erzeugt typisierte Repair Plans, die Agents direkt anwenden können. Syntaktisch liegt sie irgendwo zwischen Rust und Zig. Die Kernidee ist capability-basierte I/O über einen World-Parameter.
Muss ich den Zero-Compiler installieren, um diesen Playground zu nutzen?
Nein. Coddy führt die zero-Toolchain serverseitig in einem Sandbox-Container aus, du schreibst deinen Code also im Browser und drückst Run. Die Compiler-Version ist gepinnt (aktuell v0.1.3) und die Sandbox ist bei jedem Run gleich. Wenn du zusätzlich lokal entwickeln möchtest, veröffentlicht das Zero-Projekt vorgebaute Binaries auf seiner GitHub-Releases-Seite.
Warum hat der Zero Playground kein stdin-Eingabefeld?
Weil Zero v0.1.3 noch keine stdin-API anbietet. Die Sprache erreicht die Außenwelt ausschließlich über Capabilities am World-Parameter (world.out, world.err), plus std.args für Kommandozeilen-Argumente und std.env für Umgebungsvariablen. Bis Vercel Labs eine stdin-Capability ausliefert, nimm das Args-Panel unter dem Editor — so fütterst du dein Programm mit Eingaben.
Was ist die World-Capability und warum bekommt main eine?
Zero hat keinen impliziten globalen Namespace für I/O. Eine Funktion, die Ausgabe schreiben, Dateien lesen oder ins Netz greifen will, muss einen World-Wert entgegennehmen und Methoden darauf aufrufen (world.out.write, world.err.write usw.). Das macht aus der Signatur eine ehrliche Deklaration der Seiteneffekte — eine Funktion ohne World kann beweisbar nicht in die Außenwelt eingreifen. main bekommt eine, weil die Runtime die initiale Capability vergibt.
Was bedeuten raises und check?
Zero behandelt Fehler explizit statt mit Exceptions. Eine Funktion, die fehlschlagen kann, annotiert ihre Signatur mit raises (optional inklusive der konkreten Fehlernamen), und Aufrufer schreiben check expr, um den Fehler nach oben weiterzureichen. Stell dir das wie Rusts ?-Operator mit benannten Error-Typen vor: Fehler sind Werte, keine Kontrollfluss-Überraschungen.