Playground Zero
Tulis, jalankan, dan bagikan potongan kode. Tanpa setup.
Coba Zero di browser
Zero adalah bahasa pemrograman sistem baru dari Vercel Labs, pertama kali dirilis pada Mei 2026. Sekilas bentuknya mirip Rust, dengan pub fun, let mut, ->, dan tanda kurung generic, tapi tujuan desainnya tidak biasa: setiap bagian toolchain-nya dirancang agar bisa dibaca, diedit, dan diperbaiki oleh agen AI senyaman oleh manusia. Diagnostiknya dikirim sebagai JSON terstruktur dengan kode error yang stabil, compiler-nya bisa menghasilkan rencana perbaikan bertipe, dan ukuran binary-nya di bawah 10 KiB. Playground ini memberimu editor yang bersih untuk mencoba-coba bahasanya tanpa menginstal apa pun.
Ide paling khas di Zero adalah I/O berbasis capability. Tidak ada global implisit dan tidak ada stdout yang tersedia begitu saja: fungsi yang ingin menulis ke terminal harus menerima parameter World dan memanggil world.out.write(...). Error diteruskan dengan raises dan check, bukan exception atau panic, dan nilai opsional memakai .has / .value, bukan null. Tekan Jalankan dan editornya meng-compile kode sumbermu di server lalu menampilkan output-nya. Stdin belum tersambung karena Zero v0.1.3 belum punya API stdin; pakai std.args lewat panel Argumen sebagai gantinya.
Kenapa Zero menarik
- I/O berbasis capability: setiap efek samping (stdout, file, jaringan) mengalir lewat parameter
World, jadi signature sebuah fungsi memberi tahu apa saja yang bisa disentuhnya. Tidak ada global tersembunyi, tidak ada allocator implisit, tidak ada async yang tiba-tiba muncul. - Toolchain yang mengutamakan agen:
zeromenghasilkan diagnostik JSON yang stabil,zero fix --plan --jsonmenghasilkan rencana perbaikan bertipe, dan setiap subperintah CLI menerima--json, jadi agen bisa meneruskan output-nya ke mana saja tanpa harus mengurainya dengan regex. - Binary native yang mungil, sering di bawah 10 KiB. Compiler-nya memakai emitter langsung untuk ELF, Mach-O, PE, dan WebAssembly, jadi tidak ada dependensi LLVM yang harus dibawa.
- Sintaks yang familier, keamanan yang lebih ketat: mirip Rust di atas kertas, tapi tanpa panic karena null, tanpa GC implisit, dan tanpa alur kontrol tersembunyi. Error hanyalah nilai yang kamu teruskan dengan
check.
Yang bisa dicoba di playground Zero
- Cetak sesuatu lewat
world.out.writedan lihat bagaimana anotasiraisesmemaksamu menangani jalur error dengancheck. Itulah seluruh idiom Zero untuk keamanan tanpa exception, dalam satu contoh kecil. - Baca argumen command line dengan
std.args.get(N)dan buka nilai opsionalnya dengan.has/.value. Edit nilainya di panel Argumen di bawah editor; nilai-nilai itu diteruskan ke programmu saat Jalankan, persis seperti argv sungguhan. - Tulis
funkecil yang mengembalikanString, panggil darimain, dan lihat tipenya mengalir. Zero menyimpulkan generics lebih agresif daripada Rust, jadi sebagian besar pemanggilan sama sekali tidak butuh anotasi.
Pertanyaan yang sering diajukan tentang Zero
Apa itu bahasa pemrograman Zero?
--json, dan mode zero fix --plan yang terpisah menghasilkan rencana perbaikan bertipe yang bisa langsung diterapkan agen. Secara sintaks, Zero berada di antara Rust dan Zig. Ide utamanya adalah I/O berbasis capability lewat parameter World.Apakah aku perlu menginstal compiler Zero untuk memakai playground ini?
zero di server dalam container sandbox, jadi kamu menulis kode di browser dan menekan Jalankan. Versi compiler-nya dikunci (saat ini v0.1.3) dan sandbox-nya sama untuk setiap eksekusi. Kalau kamu juga ingin mengembangkan di komputermu sendiri, proyek Zero menyediakan binary siap pakai di halaman rilis GitHub-nya.Kenapa playground Zero tidak punya kotak input stdin?
World (world.out, world.err), plus std.args untuk argumen command line dan std.env untuk environment variable. Sampai Vercel Labs merilis capability stdin, pakai panel Argumen di bawah editor: itulah cara memberi input ke programmu.Apa itu capability World dan kenapa main menerimanya?
World dan memanggil method-nya (world.out.write, world.err.write, dan seterusnya). Dengan begitu, signature fungsi menjadi deklarasi jujur tentang efek sampingnya: kalau sebuah fungsi tidak menerima World, bisa dipastikan ia tidak bisa menyentuh dunia luar. main menerimanya karena runtime-lah yang memberikan capability awal.Apa arti raises dan check?
raises (bisa sambil mencantumkan nama error tertentu), dan pemanggilnya menulis check expr untuk meneruskan kegagalan itu ke atas stack. Anggap saja seperti operator ? di Rust dengan tipe error bernama: kegagalan adalah nilai, bukan kejutan dalam alur kontrol.Alat berguna untuk Zero
Alat gratis berbasis browser yang cocok dipakai bersama Playground Zero, semuanya bagian dari Coddy.