אריק אלמן

אריק אלמן: השרברב של הדואר האלקטרוני

הייתה תקופה של כעשרים שנה שבה כמעט כל הודעת דוא"ל שנשלחה על פני כדור הארץ עברה דרך תוכנה שנכתבה על ידי סטודנט לתואר שני בברקלי. אריק אלמן (Eric Allman) לא תכנן את הדואר האלקטרוני, והוא מעולם לא טען זאת. הוא פתר את הבעיה המשעממת והקשה יותר שמתחתיו: לגרום למערכות דואר לא תואמות, שנבנו על ידי אנשים שמעולם לא דיברו זה עם זה, להעביר הודעות הלוך ושוב בלי לאבד אותן. כאשר איגוד מכונות המחשוב (ACM) בחר בו לעמית בשנת 2025, הציטוט היה באורך ארבע מילים - עבור פיתוח הדואר האלקטרוני.

ילדות בברקלי

אריק פול אלמן נולד ב-2 בספטמבר 1955 באל סריטו, קליפורניה, מרחק קילומטרים ספורים מהאוניברסיטה שהגדירה את חייו. הוא מצא את דרכו למחשב המרכזי של התיכון שלו מוקדם, ומשם למרכז המחשוב באוניברסיטת קליפורניה בברקלי (UC Berkeley). הוא נרשם לברקלי ב-1973, בדיוק כשיוניקס (Unix) התפשטה במחלקות מדעי המחשב בארצות הברית, והשלים תואר ראשון ב-1977 ותואר שני ב-1980.

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

הבעיה שאף אחד לא רצה

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

התשובה הראשונה של אלמן הייתה delivermail. השנייה שלו, שהגיעה עד 1981, הייתה Sendmail, וההבדל ביניהן הוא כל תרומתו. Sendmail לא הייתה מערכת דואר. היא הייתה סוכן העברת דואר (Mail Transfer Agent) - נתב ומתרגם שישב בין מערכות דואר, קיבל הודעה בכל צורה שבה הגיעה, הבין לאן היא צריכה להמשיך, ושכתב את הכתובות והכותרות שלה לכל צורה שהקפיצה הבאה דרשה. היא דיברה ב-SMTP, מאוחר יותר ב-ESMTP, וב-Mail-11 של DECnet.

THE FREE TEST
How high is yours?

Twenty questions, eight minutes on the clock, and a percentile measured against everyone who has taken it. No sign-up.

Take the IQ test →

החלטת התכנון הקריטית הייתה שאף חלק מתרגום זה לא היה מקודד קשיח. ההתנהגות של Sendmail הונעה על ידי כללי שכתוב (rewriting rules) - שפת התאמת תבניות קטנה ודחוסה, שהוחזקה בקובץ הגדרות, שתיארה כיצד להפוך כתובת מצורה אחת לצורה אחרת. אלמן בנה מנגנון ולא מדיניות. כאשר הדואר האלקטרוני השתנה, כפי שעשה ללא הרף במשך ארבעים שנה, Sendmail לא דרשה שכתוב; הכללים שלה כן.

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

Syslog

קבור בתוך Sendmail הייתה המצאה שנייה שברחה וכבשה יותר שטח מהראשונה. אלמן היה זקוק לדרך עקבית עבור התוכנית לתעד את מה שהיא עושה, אז הוא כתב מתקן רישום שנקרא syslog. במקור הוא היה ספציפי ל-Sendmail. כיום, לפי הביטוי של היכל התהילה של האינטרנט, זהו מנגנון הרישום הסטנדרטי בפועל המשמש כמעט בכל המערכות והציוד ההיקפי הפתוחים - הדבר שכותב את השורות שהשרתים, הנתבים והמדפסות שלך מייצרים כאשר קורה להם משהו. הוא תוקנן באופן לא רשמי במשך שני עשורים לפני שנכתב כ-RFC 3164 בשנת 2001 ולאחר מכן הוחלף על ידי RFC 5424.

שני חלקים קטנים יותר של אלמן שורדים בשימוש יומיומי. סגנון ההזחה של אלמן (Allman indent style), המכונה לעיתים סגנון BSD, הוא אחת משתי הדרכים שבהן מתכנתי C מציבים את הסוגריים שלהם. ו-BSD Trek, שעדיין נשלח בחבילת bsdgames של לינוקס, הוא גרסת ה-C שלו למשחק "מסע בין כוכבים" (Star Trek) שנכתב בפורטרן.

החברה

אלמן עבד בחברת מסדי הנתונים בריטון לי (Britton Lee), מאוחר יותר Sharebase, ובמכון הבינלאומי למדעי המחשב. בשנת 1998 הוא וגרג אולסון ייסדו את Sendmail, Inc. באמריוויל, קליפורניה, כדי לפתח את התוכנה באופן מסחרי לצד גרסת הקוד הפתוח; החברה נרכשה בסופו של דבר על ידי Proofpoint. הארכיטקטורה שהוא הוסיף בתקופה ההיא, milter, אפשרה לצדדים שלישיים לחבר מסננים לנתיב הדואר - הוו שדרכו סוננו דואר זבל ווירוסים מאוחר יותר לשרתי הדואר של העולם. אלמן אמר שהוא מצפה שרוב האבולוציה העתידית בדואר אלקטרוני תקרה ב-milters ולא בסוכן ההעברה עצמו.

הוא גם עזר ליצור את ACM Queue, הממוקם בכוונה בפער שבין כתבי עת אקדמיים שמתרגלים אינם קוראים לבין מגזינים מקצועיים המעוצבים על ידי מפרסמים, וישב במועצת המערכת שלו ובמועצת ה-ACM לאחר תפקידי מנהיגות קודמים ב-USENIX. הוא כתב יחד עם בריאן קוסטאלס את הספר Sendmail של הוצאת O'Reilly, תרם ל-The Architecture of Open Source Applications, ומאוחר יותר עבד במעבדת Swarm של ברקלי על מחשוב מבוזר ופלטפורמות אינטרנט של הדברים.

מדוע אריק מכונה גאון

האיכות המוצגת אינה גאונות תיאורטית ואלמן מעולם לא התיימר אחרת. זהו שיקול דעת עיצובי תחת אי-ודאות - היכולת להסתכל על בלאגן של מערכות לא תואמות ולזהות נכון איזה חלק ימשיך להשתנות ואיזה לא, ואז לבנות את החלק המשתנה כהגדרה ואת החלק היציב כקוד. כללי השכתוב של Sendmail היו הימור שמוסכמות הכתובות של הדואר האלקטרוני יישארו לא מוסדרות במשך עשורים. ההימור היה נכון, וזו הסיבה שתוכנית שנכתבה על ידי סטודנט ב-1981 עדיין נשאה נתח גדול מהדואר העולמי שלושים שנה מאוחר יותר. זו ראייה הנדסית נדירה, וההכרה משקפת זאת: היכל התהילה של האינטרנט הכניס אותו כמחדש בשנת 2014, ה-ACM הפך אותו למהנדס מצטיין בשנת 2009 ולעמית ב-2025, וברקלי הכריזה עליו כבוגר מצטיין במדעי המחשב בשנת 2013.

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

מורשת

אלמן הומוסקסואל והוא נישא למרשל קירק מקיוזיק (Marshall Kirk McKusick), מפתח מוביל של BSD Unix, באוקטובר 2013, לאחר יותר משלושים שנה יחד; הם נפגשו בבית הספר לתארים מתקדמים, וביניהם הם אחראים לחלק מפתיע מהתוכנה שהפכה את יוניקס למערכת ההפעלה של האינטרנט. הכבודים שקיבל כוללים את פרס הטכנולוגיה של Telluride Tech Festival בשנת 2006. המדד הטוב ביותר לעבודתו, עם זאת, הוא שהיא בלתי נראית. אף אחד לא חושב על סוכן העברת הדואר, ואף אחד לא קורא את שורת ה-syslog עד שמשהו נשבר - שזה בדיוק המצב שתשתית אמורה להשיג.