Menu
Coddy logo textTech

לכתוב, להריץ ולשתף קטעי קוד - בלי שום התקנה.

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

נסו 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?
Zero היא שפת תכנות מערכתית ניסיונית של Vercel Labs, שיצאה לראשונה במאי 2026. היא מתקמפלת לקובצי הפעלה נייטיב קטנים (לעיתים קרובות מתחת ל-10 KiB) ונבנתה עם סוכני קוד מבוססי AI בראש: הקומפיילר מפיק הודעות אבחון מובנות ב-JSON, כל פקודת משנה של ה-CLI מקבלת --json, ומצב נפרד zero fix --plan מייצר תוכניות תיקון עם טיפוסים שסוכנים יכולים להחיל ישירות. מבחינת תחביר היא נמצאת איפשהו בין Rust ל-Zig. הרעיון המרכזי הוא I/O שמבוסס על capabilities דרך פרמטר World.
צריך להתקין את הקומפיילר של Zero כדי להשתמש בעורך הזה?
לא. Coddy מריצה את ה-toolchain של zero בצד השרת בקונטיינר מבודד, כך שכותבים קוד בדפדפן ולוחצים על הרצה. גרסת הקומפיילר קבועה (כרגע v0.1.3) וסביבת הריצה זהה בכל הרצה. אם תרצו לפתח גם מקומית, פרויקט Zero מפרסם קבצים בינאריים מוכנים בדף ה-releases שלו ב-GitHub.
למה אין לעורך ה-Zero תיבת קלט stdin?
כי Zero v0.1.3 עוד לא חושפת API ל-stdin. השפה מגיעה לעולם החיצון רק דרך capabilities על הפרמטר World (world.out, world.err), וגם std.args לארגומנטים של שורת הפקודה ו-std.env למשתני סביבה. עד ש-Vercel Labs תוסיף capability ל-stdin, השתמשו בחלונית Args שמתחת לעורך: כך מזינים קלט לתוכנית.
מה זה ה-capability World ולמה main מקבלת אחד?
ל-Zero אין מרחב שמות גלובלי מרומז ל-I/O. פונקציה שרוצה לכתוב פלט, לקרוא קבצים או לגשת לרשת חייבת לקבל ערך World ולקרוא למתודות שלו (world.out.write, world.err.write וכן הלאה). כך החתימה הופכת להצהרה כנה על תופעות לוואי: אם פונקציה לא מקבלת World, מוכח שהיא לא יכולה לגעת בעולם החיצון. main מקבלת אחד כי סביבת הריצה היא זו שמעניקה את ה-capability הראשוני.
מה המשמעות של raises ו-check?
Zero מטפלת בשגיאות באופן מפורש במקום דרך exceptions. פונקציה שעלולה להיכשל מסמנת את החתימה שלה ב-raises (ואפשר לפרט את שמות השגיאות הספציפיות), והקוראים כותבים check expr כדי להעביר את הכישלון במעלה המחסנית. חשבו על זה כמו האופרטור ? של Rust עם טיפוסי שגיאה בעלי שם: כישלונות הם ערכים, לא הפתעות בזרימת הבקרה.

כלים שימושיים ל-Zero

כלים חינמיים בדפדפן שמשתלבים היטב עם עורך ה-Zero אונליין - כולם חלק מ-Coddy.