האם הימים שבהם נדרשתם לאנגלית ברמת שפת אם כדי להתקבל למשרות בהייטק עומדים להיות מאחורינו? מתכנת ישראלי החליט לאפשר לכם להשתמש בשפת תסריט בעברית מלאה, והוא קרא לה בשם הדי גאוני, “חווה סקריפט”, עם לוגו שלפחות שדי מזכיר את הזמרת האגדית, חווה אלברשטיין.
לא רק גוגל טרנסלייט
חווה סקריפט היא לא רק מנגנון תיאורטי או הלצה קלה ל-1 באפריל. המפתח שעומד מאחורי הפרויקט בנה גם “מגרש משחקים” שבו אתם יכולים לבנות לעצמכם קוד, להריץ אותו ולקבל את הפלט.
מנוע תרגום משפת הקודש ל-JavaScript
“חווה סקריפט” היא לא שפת תכנות חדשה, אלא מנוע תרגום ופענוח מעברית לאנגלית, שבעצם בנוי מעל JavaScript קלאסית. גם כאן תשתמשו ב-var, let ו-const – אך אלו יומרו ל”משתנה”, “יהי” ו”קבוע” בהתאמה. תוכלו להשתמש ב”יכולות” (function), “ביטויי הגיון”, “לולאות”, “החלפת מקרה” ועוד.
כאשר אתם מסיימים לכתוב את הקוד שלכם בעברית ומבקשים להריץ אותו, המנגנון מאחורי חווה סקריפט מתרגם את שמות המשתנים ללועזית. במקרה שבו יש חוסר התאמה בין המילון של חווה לבין שם המשתנה שאתם כתבתם, הוא יתורגם באופן מילולי כדי שתווים עבריים לא ימצאו את דרכם לקוד הסופי. כל מילות המפתח ושמות המשתנים זמינים לקריאה משעשעת למדי כאן. עד כה תורגמו 160 מילים, כולל “נסי”, “זרקי”, “תפסי” וגם “פנח”ס”. היינו נותנים לכם שנייה לנחש מה זה מחליף – אבל החלטנו לספיילר לכם ולהגיד שזה JSON.
כדאי לשים לב שכאשר אתם מנחים את חווה, אתם תשתמשו בשמות ציווי של משתנים בלשון נקבה (כמו למשל “שערכי”), וכאשר אתם משתמשים בשמות ציווי על גבי משתנה כלשהו, הם יוטו ללשון זכר.
מגינת הכלבים לדפדפן שלכם
מאחורי הפיתוח של “חווה סקריפט” עומדים אביב כרמי, ארכיטקט בקאנד ב-PerimeterX, ויקיר יהודה, מפתח אנדרואיד ב-Waze, שעבדו עליו בעיקר בשעות הרבות שבילו בגינת הכלבים. “בזמן שהכלבים אכלו אחד את השני אנחנו אכלנו אחד לשני את הראש עם דילמות מורכבות כמו האם נכון לתרגם פונקציה ל’יכולת’ או לא, רעיון שהיום בדיעבד מייצר לא מעט debates ודיונים עמוקים”. כרמי מספר שבמקור השפה תוכננה להיות “חווה”, “אבל הבנו שזה יהיה פחות בר ביצוע ופחות אטרקטיבי – אז הלכנו על חווה סקריפט”.
אחרי הרעיון הראשוני, השניים החלו בפיתוח שארך מספר שבועות, והתבסס על 2 ספריות: acorn, שלוקחת קוד JavaScript, מפרסרת אותו ומעבירה אותו ל-Abstract Syntax Tree; ו-Escodegen שמקבלת את ה-Abstract Syntax Tree וממירה אותו בחזרה לקוד. “על זה למעשה רק נשאר להלביש מנגנון תרגום די פשוט. למען האמת חלק ניכר מהזמן הושקע בלכתוב syntax highlighter ו-code editor שעובד right to left, בלעדיהם כל הרעיון מאבד מהכיף שלו”, מספר כרמי. ואם כבר אנחנו בענייני כיף, כרמי מספר שעיקר הכיף מבחינתם היה התרגום והניואנסים הקטנים שמלווים את חווה סקריפט.
גם כרמי מודע לכך שהמגבלה העיקרית של הפרויקט טמונה בעובדה שאף אחת או אחד לא הולכים לכתוב פרוייקט ב-right to left “כי זה מאוד כואב בעיניים”, אבל הוא בכל זאת משדר אופטימיות: “אני שולח מפה אתגר לכל מי שחושבת או חושב להרים את הכפפה ולכתוב פרויקט קטן בחווה סקריפט, אנחנו נדאג שחווה תפרסם את הפרוייקט באתר שלה בגאווה גדולה. היי, אולי אפילו יום אחד נכתוב את חווה סקריפט בחווה סקריפט כמו שכל קומפיילר בוגר עושה בשלב מסויים”.
כרמי מזמין את כל מי שרוצה לתרום, להציע רעיונות, לדחוף קוד או אפילו להציע keywords חדשים ומדויקים יותר בגיט של חווה סקריפט.
הכתבה פורסמה לראשונה באתר GEEKTIME, להמשך קריאת הכתבה