דלג לתוכן

איך בחרנו את הכלים: Tauri, Electron, ואז Wails ו־Go

התחלנו עם Rust ו־Tauri, חזרנו לכלים שאנחנו מכירים, והגענו ל־Go ול־Wails, שלא תכננו. הלקח: בוחרים כלים שאפשר לספק איתם מוצר.

6 דקות קריאה

מגירה פתוחה של כלים מסודרים באור חם, ויד, שרואים אותה מאחור, שולפת אחד מהם.

6 דקות קריאה

ב־13 בנובמבר 2025, פחות משבועיים אחרי שהתחלנו, מחקנו כמעט את כל קוד ה־Rust (נפתח בלשונית חדשה) שכתבנו עד אז. מדריך ניקוי שנכתב באותו יום נשאר בהיסטוריית הפרויקט, ובו רשימה של מה יוצא.

בחירת כלים נשמעת עניין טכני. אצלנו זו הייתה החלטת מוצר: אילו כלים באמת יביאו מוצר עובד לידיים של בית ספר? ציון ברגע עברה שלוש תשתיות שונות עד שהתייצבה. הנה הסיפור לפי הסדר שבו ההיסטוריה מתעדת אותו.

בקצרה

  • ב־1 בנובמבר 2025 הקמנו את הפרויקט על Tauri ועל Rust, כי הם נראו לנו כלים מגניבים. אף אחד לא ביקש Rust.
  • פחות משבועיים אחר כך מחקנו כמעט את כל קוד ה־Rust שכתבנו.
  • חזרנו ל־Electron, שבנויה על כלים שהכרנו, ואחר כך הגענו ל־Go ול־Wails, שלא תכננו.
  • הלקח: בוחרים כלים שאפשר לספק איתם מוצר.

הבחירה הראשונה: Tauri ו־Rust

הפרויקט נוצר ב־31 באוקטובר 2025, וב־1 בנובמבר הוקם על Tauri (נפתח בלשונית חדשה). Tauri בונה תוכנות שולחן עבודה שהצד האחורי שלהן כתוב ב־Rust, שפה מודרנית שיצא לה שם של שפה מהירה וזהירה. התגובה הראשונה שלנו הייתה כמו של רוב המפתחים: כלי מגניב, ואמור להיות מהיר.

מה זה צד אחורי?

לתוכנה יש חזית, המסכים שאנשים רואים, ו״צד אחורי״ (Back end), החלק שמאחורי המסכים ששומר נתונים ועושה את העבודה הכבדה. בחנות, החזית היא האולם והצד האחורי הוא המחסן והמשרד.

זו הייתה בחירה של טעם, לא של דרישה. אף אחד לא ביקש Rust.

בשבועיים הראשונים ההיסטוריה מראה עבודה אמיתית: קישור ראשון אל AMC (נפתח בלשונית חדשה) (כלי קיים למבחנים), תוכנת Rust שכתבה קובצי מבחן לתוכנת עימוד בשם LaTeX, גופנים בעברית, מסד נתונים מקומי, מערכת משתמשים ורישום אירועים. זה הרבה מאוד קוד לשבועיים הראשונים.

איפה Rust נעצר

ב־13 בנובמבר הפרויקט נוקה. מדריך ניקוי שנכתב באותו יום מפרט מה להסיר מצד ה־Rust: את קוד ה־AMC, את מחולל סדר הדפוס, את מערכת המשתמשים ואת מסד הנתונים. הנימוקים שלו פשוטים: הגישה הישנה “לא נחוצה”, חלק אחד “מורכב מדי”, והבחירה היא בדרך פשוטה יותר. רוב קוד ה־Rust נמחק באותו יום, בכמה שמירות בהיסטוריית הפרויקט (commit).

מה זו היסטוריית פרויקט?

מאגר (Repository) הוא התיקייה שבה שמורים כל קובצי הפרויקט יחד עם תיעוד של כל שינוי. בכל פעם ששומרים קבוצת שינויים עם הערה קצרה, זה נקרא קומיט (Commit), ולכן ההיסטוריה נקראת כמו יומן עם תאריכים. אנחנו משתמשים בה כדי לראות מה עשינו ומתי.

Rust לא היה פשוט עבורנו: הניסיון שלנו הוא ב־Node.js ולא ב־Rust. למחרת, ב־14 בנובמבר, ההיסטוריה מראה סט חדש של קובצי Rust להפקת PDF של מבחנים, ותוכנת PDF חיצונית ארוזה לכל אחת משלוש מערכות ההפעלה.

ההערות שנכתבו לצדם מסבירות את הקיר שפגשנו. ברכיב הדפדפן של המערכת (ה־web view) ש־Tauri משתמשת בו, פונקציית ההדפסה של הדפדפן דורשת שאדם ילחץ, והתוכנה לא יכלה לשמור PDF בעצמה. ההערות מונות כמה אפשרויות, ביניהן תוסף הדפסה של Tauri, ואף אחת מהן לא מסומנת כעובדת.

הבחירה השנייה: חוזרים למה שמכירים

אז הפסקנו לנסות להיות חכמים. ב־19 בנובמבר מופיע קוד ה־Electron (נפתח בלשונית חדשה) הראשון, עם ההודעה “working pdf generation tested” (הכתיב תוקן כאן). Electron בנויה על JavaScript ועל Node, הכלים שכבר ידענו לספק איתם מוצר, והיא יודעת להדפיס דף ל־PDF בעצמה. את Tauri הסרנו לגמרי שבוע אחר כך, ב־26 בנובמבר.

ההחלטה הייתה פשוטה: כלי שמכירים היטב ואפשר לסיים איתו מוצר שווה יותר מכלי מרגש יותר. Electron עשתה את העבודה כמה חודשים.

היא גם הביאה איתה את בעיית ההדפסה שמתוארת ב“למה עזבנו את Electron”: עמודים שזזו כשהודפסו בכמות גדולה, וחיפוש ארוך אחר משהו אחר.

למה Electron כבדה, במילים פשוטות

תוכנת שולחן עבודה שמציגה מסכים כמו דפי אינטרנט צריכה משהו שיודע לצייר דפי אינטרנט. Electron מביאה דפדפן משלה: היא שמה עותק שלם של דפדפן בתוך כל תוכנה. מי שמתקין שלוש תוכנות Electron מקבל במחשב שלושה דפדפנים, וכל אחד מהם בגרסה שהיוצרים בחרו ושולטים בה. זה המחיר של הוודאות שהכול ייראה אותו דבר בכל מקום, ולכן תוכנות כאלה נוטות להיות כבדות.

Tauri ו־Wails (נפתח בלשונית חדשה) הולכות בדרך ההפוכה. הן משתמשות במנוע הדפדפן שכבר קיים במערכת ההפעלה, ושמו web view. ב־Windows זה המנוע שמאחורי Microsoft Edge, והוא מבוסס על Chromium (נפתח בלשונית חדשה). ב־Mac זה WebKit, המנוע של אפל, וגם ב־Linux זה WebKit, בגרסה שמתאימה לשם. התוכנה נשארת קטנה יותר כי הדפדפן לא בתוכה. המחיר הוא שהמנוע כבר לא שלנו: הוא מה שהמחשב מספק. סמן העכבר שנראה לא נכון מראה איך זה יכול להיראות.

הבחירה השלישית: Go ו־Wails, שלא תכננו

החיפוש הוביל אל Folio (נפתח בלשונית חדשה), ספרייה שכתובה ב־Go (נפתח בלשונית חדשה) ומפיקה PDF ישירות, ואל ספריות לסורק ולעיבוד תמונה, שגם הן היו חזקות יותר ב־Go.

מה זו ספרייה?

ספרייה (Library) היא אוסף מוכן של קוד שעושה עבודה אחת היטב, כדי שמפתחים לא יצטרכו לכתוב אותו מאפס. כמו להשאיל כלי במקום לייצר אותו.

מסמך ההחלטה על Wails (פתק קצר שכתבנו כשבחרנו בין אפשרויות), מ־14 במאי 2026, מונה מה נשקל:

  • להשאיר את Electron לצד עוזר ב־Go אומר שתי סביבות הרצה ועותק מלא של Chrome בכל התקנה.
  • להריץ הכול בדפדפן נפסל, כי דפדפן לא יכול לקרוא בחופשיות פלט של סורק או לכתוב לתיקיות של המשתמש.
  • Tauri עלה שוב ונדחה מסיבה פשוטה ולא רעה: את הצד האחורי היה צריך לכתוב מחדש ב־Rust, והספריות שהיינו צריכים היו ב־Go.
  • ערכת ממשק של Go שמשתמשת ברכיבי המערכת עצמה נפסלה, כי היא לא יכלה לשאת את המסכים בעברית מימין לשמאל שכבר בנינו.

מה זה סביבת הרצה?

סביבת הרצה (Runtime) היא המנוע שתוכנה צריכה מתחתיה כדי לרוץ, כמו החשמל שמכונה צריכה. שתי סביבות הרצה אומרות ששני מנועים כאלה צריכים לנסוע יחד בתוך אותה תוכנה.

Wails היא זו שהתאימה. היא בונה את התוכנה ב־Go ומציגה את המסך דרך רכיב הדפדפן שכבר קיים ב־Windows וב־macOS. המסכים שבנינו ב־React עברו כמעט כמו שהם. תוכנית המעבר ל־Wails נכנסה ב־2 במאי 2026, וב־7 במאי הגיעה השמירה הראשונה שהסירה את הקבצים של Electron מהאפליקציה. תיקיית Electron עצמה נמחקה ב־9 ביולי.

ההפתעה

הנה החלק שמצחיק אותנו. מה שמשך אותנו ב־Tauri היה תוכנה קטנה ומהירה שמשתמשת ברכיב הדפדפן של המערכת במקום לשאת דפדפן. את זה לא קיבלנו מ־Tauri. קיבלנו תוצאה מאותו סוג מ־Wails, כלי שלא תכננו להשתמש בו.

אנחנו לא טוענים לשום מספר מהירות. מסמך ההחלטה נותן נימוקים, כמו היעדר Chromium מצורף וקובץ תוכנה אחד, אבל מה שחשוב לסיפור הזה הוא הסדר: התוצאה שרצינו הגיעה מכלי אחר מזה שבחרנו בשבילה.

גם Go לא הכרנו

כדי להיות ברורים: לא הכרנו את Go לפני כן. למדנו אותו תוך כדי עבודה, כשאנחנו נשענים הרבה על עוזרי תכנות מבוססי בינה מלאכותית, ולמדנו לתת להם כללים כתובים ומיומנויות לשימוש חוזר, כדי שהקוד יישאר מסודר. לקחנו את הסיכון הזה בכוונה, כי עד אז הספריות שהיינו צריכים היו ב־Go והאפשרויות האחרות היו גרועות יותר.

מה למדנו

בוחרים כלים שאפשר לספק איתם מוצר. כלים מרגשים הם מפתים, אבל כשהמוצר מיועד לבתי ספר, השאלה הראשונה היא אם אתם מסוגלים לסיים אותו, לתמוך בו ולתקן אותו בלילה. הבחירה הראשונה שלנו נכשלה במבחן הזה, השנייה עברה אותו לזמן מה, והשלישית הגיעה כי הבעיה דחפה אותנו אליה, לא כי הייתה לנו תוכנית. בנינו את הפרויקט בצורה רזה וזהירה, בלי לחתוך פינות, וזה התחיל בבחירת כלים שאפשר לסמוך עליהם.

עוד עובדה על הדרך: העיצוב, הארכיטקטורה וכל עבודת ההנדסה של ציון ברגע נעשו בידי אדם אחד.

עוד סיפורי מקרה לקריאה

למה עזבנו את Electron: המבחן שזז על הדףציון ברגע הדפיסה מבחנים דרך חלון Chrome נסתר, והעמודים זזו. ניסינו LaTeX פעמיים, ואז מצאנו את Folio, את Go ואת Wails. היסטוריית הפרויקט מראה את הדרך.להדפיס בלי חלון ההדפסה: לומדים איך Chrome עושה את זההרעיון הראשון היה למסור את ההדפסה למערכת ההפעלה ולתת לאנשים להסתדר עם האפשרויות. זו הייתה טעות. כך צמצמנו את הבחירות לשלוש, וכך עזרה לנו קריאת הקוד של Chromium.

יש לכם מה לבנות? בואו נדבר.

בלי מצגות מכירה. ספרו לנו מה העסק צריך, ונגיד לכם בכנות איך היינו ניגשים לזה, ואם בכלל צריך את זה.

9 סיפורים על ציון ברגע

כל 9 הסיפורים

“למה אי אפשר פשוט לסרוק?” איך התחילה ציון ברגעהכול התחיל במייל אחד, עם שאלה פשוטה. זה הסיפור כפי שבעל הפרויקט מספר אותו: החיפוש הראשון, השוואה ללוטו, זיכרון מילדות על מילוי עיגולים, ולמה בנינו קורא משלנו.איך בחרנו את הכלים: Tauri, Electron, ואז Wails ו־Goזה הסיפור שאתם קוראים עכשיו. התחלנו עם Rust ו־Tauri, חזרנו לכלים שאנחנו מכירים, והגענו ל־Go ול־Wails, שלא תכננו. הלקח: בוחרים כלים שאפשר לספק איתם מוצר.למה עזבנו את Electron: המבחן שזז על הדףציון ברגע הדפיסה מבחנים דרך חלון Chrome נסתר, והעמודים זזו. ניסינו LaTeX פעמיים, ואז מצאנו את Folio, את Go ואת Wails. היסטוריית הפרויקט מראה את הדרך.להדפיס בלי חלון ההדפסה: לומדים איך Chrome עושה את זההרעיון הראשון היה למסור את ההדפסה למערכת ההפעלה ולתת לאנשים להסתדר עם האפשרויות. זו הייתה טעות. כך צמצמנו את הבחירות לשלוש, וכך עזרה לנו קריאת הקוד של Chromium.למצוא את הסורק, ולקחת על עצמנו את ההגדרות שלומורים יכולים ללחוץ על כפתור אחד ולקבל סריקה. מאחורי הכפתור יש חיפוש של הסורק, רשימת הגדרות שאף אחד לא צריך לגעת בהן, והפתעה מחומת האש של Windows.בונים תוכנת Windows מתוך Mac: מחשב שאול, מכונה וירטואלית ותמונה של שגיאהבתי הספר עובדים עם Windows. אנחנו עובדים על Mac ועל Ubuntu. כך למדנו לבנות ולבדוק את ציון ברגע ל־Windows, והתמונה שלימדה אותנו הכי הרבה.סמן עכבר שנראה לא נכון ב־Windowsאותה תוכנה יכולה להיראות אחרת בכל מערכת הפעלה. יום אחד סמן העכבר השתנה ב־Windows, אז בחרנו סמן משלנו ולמדנו לבדוק גם את הדברים הקטנים.לראות מחשב של בית ספר מרחוק: מה היומנים לימדו אותנו על מחשבים קטניםציון ברגע שולחת הביתה את היומנים שלה כדי שנוכל לראות אותה עובדת במקומות שאי אפשר לבקר בהם. מחשב קטן בעיירה רחוקה הראה לנו שגודל המחשב, ובסופו של דבר המעבד שלו, קובע עד כמה התוכנה עובדת טוב.קודם כול בלי אינטרנט, אבל האם יש אינטרנט? מלמדים תוכנה לבדוקציון ברגע עובדת בלי אינטרנט, ובכל זאת כמה תכונות צריכות אותו. להבדיל בין שני המצבים התברר כקשה יותר מלשאול את הדפדפן או להסתכל על הכבל.
תפריט נגישות

קיצורי מקלדת

פתיחת תפריט נגישותAlt+A
הצהרת נגישות

ההגדרות נשמרות במכשיר שלכם בלבד ומשמשות להתאמת התצוגה. הן אינן משנות את תוכן האתר ואינן שולחות מידע לשרת.