Zero Online
לכתוב, להריץ ולשתף קטעי קוד - בלי שום התקנה.
נסו Zero בדפדפן
Zero היא שפת התכנות המערכתית החדשה של Vercel Labs, שיצאה לראשונה במאי 2026. על פני השטח היא נראית כמו Rust, עם pub fun, let mut, -> וסוגריים גנריים, אבל מטרת התכנון יוצאת דופן: כל חלק ב-toolchain נועד להיקרא, להיערך ולהיות מתוקן על ידי סוכני AI באותה נוחות כמו על ידי בני אדם. הודעות האבחון מגיעות כ-JSON מובנה עם קודי שגיאה יציבים, הקומפיילר יכול להפיק תוכניות תיקון עם טיפוסים, והקבצים הבינאריים קטנים מ-10 KiB. העורך נותן לכם סביבה נקייה להתנסות בשפה בלי להתקין שום דבר.
הרעיון הייחודי ביותר ב-Zero הוא I/O שמבוסס על capabilities. אין משתנים גלובליים מרומזים ואין stdout סביבתי: פונקציה שרוצה לכתוב לטרמינל חייבת לקבל פרמטר World ולקרוא ל-world.out.write(...). שגיאות מתפשטות עם raises ו-check במקום exceptions או panics, וערכים אופציונליים משתמשים ב-.has / .value במקום null. לחצו על הרצה, והעורך מקמפל את קוד המקור שלכם בצד השרת ומציג את הפלט. stdin עדיין לא מחובר, כי Zero v0.1.3 עוד לא כוללת API ל-stdin. השתמשו במקום זאת ב-std.args דרך חלונית Args.
למה Zero מעניינת
- I/O שמבוסס על capabilities: כל תופעת לוואי (stdout, קבצים, רשת) עוברת דרך פרמטר
World, כך שהחתימה של פונקציה מראה במה היא יכולה לגעת. בלי משתנים גלובליים נסתרים, בלי allocator מרומז ובלי async מפתיע. - toolchain שמיועד קודם כול לסוכנים:
zeroמפיק הודעות אבחון יציבות ב-JSON,zero fix --plan --jsonמייצר תוכניות תיקון עם טיפוסים, וכל פקודת משנה של ה-CLI מקבלת--json, כך שסוכנים יכולים להעביר פלט הלאה במקום לפענח אותו עם regex. - קבצים בינאריים נייטיב זעירים, לעיתים קרובות מתחת ל-10 KiB. הקומפיילר משתמש ב-emitters ישירים ל-ELF, Mach-O, PE ו-WebAssembly, כך שאין תלות ב-LLVM לגרור איתכם.
- תחביר מוכר, בטיחות חדה יותר: נראית כמו Rust על הדף, אבל בלי panic על null, בלי GC מרומז ובלי זרימת בקרה נסתרת. שגיאות הן פשוט ערכים שמעבירים הלאה עם
check.
מה לנסות בעורך ה-Zero האונליין
- הדפיסו משהו דרך
world.out.writeוצפו איך ההערהraisesמחייבת אתכם לטפל בנתיב השגיאה עםcheck. זה כל הניב של Zero לבטיחות בלי exceptions, בדוגמה קטנטנה אחת. - קראו ארגומנט של שורת הפקודה עם
std.args.get(N)ופתחו את הערך האופציונלי עם.has/.value. ערכו ערכים בחלונית Args שמתחת לעורך: הם מועברים לתוכנית שלכם בזמן ההרצה, בדיוק כמו argv אמיתי. - כתבו
funקטנה שמחזירהString, קראו לה מ-main, וצפו איך הטיפוסים זורמים. Zero מסיקה generics בצורה אגרסיבית יותר מ-Rust, כך שברוב מקומות הקריאה לא צריך הערות טיפוס בכלל.
שאלות נפוצות על Zero
מה זו שפת התכנות Zero?
--json, ומצב נפרד zero fix --plan מייצר תוכניות תיקון עם טיפוסים שסוכנים יכולים להחיל ישירות. מבחינת תחביר היא נמצאת איפשהו בין Rust ל-Zig. הרעיון המרכזי הוא I/O שמבוסס על capabilities דרך פרמטר World.צריך להתקין את הקומפיילר של Zero כדי להשתמש בעורך הזה?
zero בצד השרת בקונטיינר מבודד, כך שכותבים קוד בדפדפן ולוחצים על הרצה. גרסת הקומפיילר קבועה (כרגע v0.1.3) וסביבת הריצה זהה בכל הרצה. אם תרצו לפתח גם מקומית, פרויקט Zero מפרסם קבצים בינאריים מוכנים בדף ה-releases שלו ב-GitHub.למה אין לעורך ה-Zero תיבת קלט stdin?
World (world.out, world.err), וגם std.args לארגומנטים של שורת הפקודה ו-std.env למשתני סביבה. עד ש-Vercel Labs תוסיף capability ל-stdin, השתמשו בחלונית Args שמתחת לעורך: כך מזינים קלט לתוכנית.מה זה ה-capability World ולמה main מקבלת אחד?
World ולקרוא למתודות שלו (world.out.write, world.err.write וכן הלאה). כך החתימה הופכת להצהרה כנה על תופעות לוואי: אם פונקציה לא מקבלת World, מוכח שהיא לא יכולה לגעת בעולם החיצון. main מקבלת אחד כי סביבת הריצה היא זו שמעניקה את ה-capability הראשוני.מה המשמעות של raises ו-check?
raises (ואפשר לפרט את שמות השגיאות הספציפיות), והקוראים כותבים check expr כדי להעביר את הכישלון במעלה המחסנית. חשבו על זה כמו האופרטור ? של Rust עם טיפוסי שגיאה בעלי שם: כישלונות הם ערכים, לא הפתעות בזרימת הבקרה.כלים שימושיים ל-Zero
כלים חינמיים בדפדפן שמשתלבים היטב עם עורך ה-Zero אונליין - כולם חלק מ-Coddy.