
מה קרה כש-NeoVim מחק את היסטוריית ה-undo של vim
הבלוג Unsung של מרצ'ין ויכארי מצטט הודעה של מדען המחשב דייוויד צ'יזנול ב-Mastodon: איך מחק NeoVim את קובץ ה-undo של vim יחד עם כל הנתונים שבו, ולמה זה שם קץ לאמון המשתמש בעורך.
ב-28 באוגוסט פרסם הבלוג Unsung של מרצ'ין ויכארי פוסט שמבוסס כמעט כולו על הודעה של מדען המחשב דייוויד צ'יזנול ב-Mastodon. הנושא הוא תכונת ה-persistent undo של vim, ובמובן רחב יותר — מה חייבת התוכנה לנתונים של המשתמשים שלה; הכותרת לקוחה מהמשפט של צ'יזנול עצמו: "לא היה להם שום מושג של חובת אחריות כלפי המשתמשים שלהם".
צ'יזנול משתמש ב-vim בערך משנת 2000. לדבריו, הוא כתב איתו חמישה ספרים, עבודת דוקטורט, כמה עשרות מאמרים מדעיים ויותר מ-150 כתבות. פקודות שגרתיות מתבצעות אצלו באופן כל כך אוטומטי שהן כבר לא מצריכות מחשבה מודעת, ובמסמכים שנכתבו בכלים אחרים נשארות באמצע פקודות vim תקועות.
מה מגן ה-persistent undo
ה-persistent undo הוא אחת התכונות האהובות על צ'יזנול. הוא לא זקוק לו לעתים קרובות, אבל כשהוא נחוץ — הוא מציל: לשחזר משהו שנמחק מהקובץ "אולי בשבוע שעבר ואחרי אתחול אחד", או להבין מה שבר עריכה מסוימת לפני קומיט. vim שומר על זה עובד לאורך שדרוגי גרסה מרכזיים כבר כ-20 שנה: גם אחרי קריסה או חזרה לקובץ כעבור חצי שנה היסטוריית ה-undo נשארת במקומה. צ'יזנול מכנה זאת חלק מהחוק הראשון של רסקין.
מה קרה עם NeoVim
NeoVim הוא פיצול של vim. צ'יזנול ניסה אותו כשהיה חדש לגמרי, והדבר הראשון ששם לב אליו היה שה-undo לא עובד, ופתיחת הקובץ ב-vim גם לא עזרה. NeoVim שינה את הפורמט של קובצי ה-undo: הוא לא שדרג את הקובץ הישן ולא נתן לקובצי שלו שם אחר, אלא פשוט מחק את קובץ ה-undo הקיים של vim יחד עם כל הנתונים שבו והחליף אותו בקובץ ש-vim לא יכול לקרוא.
כשפתח issue בנושא, נאמר לו שפורמט ה-persistent undo אינו יציב: משתמשים לא צריכים לסמוך על שימור נתונים בתכונה שנקראת במפורש "persistent", והוא השתנה פעם אחת וכנראה ישתנה שוב. שם נגמר הניסיון שלו עם NeoVim. "המפתחים הראו מיד שאי אפשר לתת בהם אמון עם שום נתון שלי", כתב צ'יזנול, והוסיף שהוא יכול לסלוח על undo שבור כבאג, אבל לא על גישה שלפיה קובץ בדיסק של המשתמש אינו סיבה מספקת לא למחוק אותו.
שלושת החוקים של רסקין
ויכארי מצטט את ההודעה כמעט במלואה ומסיק ממנה כמה לקחים: אנשים באמת זוכרים מתי תוכנה איבדה את העבודה שלהם או התייחסה אליהם בזלזול, והביטוי "זה השתנה פעם אחת וכנראה ישתנה שוב" מסביר היטב למה קשה כל כך לשקם אמון שנשבר. הפוסט גם מביא ל-Unsung לראשונה את שלושת החוקים מספרו של ג'ף רסקין The Humane Interface משנת 2000: מחשב לא יזיק לעבודתך ולא יאפשר, באי-מעשה, שתיגרם לה נזק; הוא לא יבזבז את זמנך ולא ידרוש ממך יותר עבודה ממה שנחוץ בהחלט; וממשק הוא אנושי אם הוא מגיב לצרכים של בני אדם ומתחשב בחולשותיהם. ויכארי מכנה את הספר מכונן עבורו כמעצב צעיר.
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.