הטכנולוגיה התקדמה, למה ההסכמים לא?

השנה היא 1991, ראש הממשלה הוא יצחק שמיר, כולם נוסעים בסובארו ליאונה, שומעים את I Do It For You של ברייאן אדאמס בווקמן שלנו, צופים בשידור חי" של דן שילון, גולשים להנאתנו ב-BBSים, כותבים קוד ב-Quick Basic על מחשב ה-486 החדש שלנו עם 4MB של זכרון RAM ודיסק קשיח של מאה מגהבייט שלמים. הרשיון שאנחנו משתמשים בו לקוד? GPLv2 שיצא באותו החודש או MIT שיצא מספר שנים קודם. למה זה קורה לעזאזל?

מבין כל הדברים האלה, הדבר היחיד ששרד את שלושים ושניים השנים הוא הרשיון. נכון ליום זה יש כ-6,000,000 פרויקטים באתר GitHub ברשיון MIT ועוד כחצי מיליון פרויקטים ברשיון GPL2, וזה לפני שבדקנו לעומק איך, מה ופרויקטים אחרים. שני הרשיונות האלה יותר מבוגרים מרוב המתכנתים שפיתחו תוכנות אלו; וזה כואב. מדוע? כי רשיון הוא קוד לכל דבר. רשיון הוא קוד של עורכי דין; הוא מסביר מה מותר ומה אסור לעשות ביחסים בין המתכנת לבין הלקוח, וכמו כל מסמך משפטי, הוא צריך להשתנות עם הזמנים.

הפוסט הזה הוא תקציר של הרצאה שלי שתעלה ב"אוגוסט פינגוין" בשבוע הבא. מוזמנים לבוא לשמוע אנשים יותר מעניינים ממני שם.

אז מה נשתנה שצריך תיקון ברשיונות?

מה נשתנה בחוקי זכויות היוצרים ב-30 השנים האחרונות?

בשנת 1991 בישראל שררה פקודת זכות יוצרים מ-1924 וחוק זכות יוצרים מ-1911. כן, בשנת 1991 השתמשנו בחקיקה שנכתבה במקור בשנות העשרה והעשרים. החקיקה הזו עודכנה פעמים רבות, הוסיפו עדכונים לדיגיטציה, התחילו לטפל בטכנולוגיות מתקדמות כמו קלטות ריקות, והתעסקו בנושאים חשובים במיוחד כמו פסלים במרחב הציבורי. בשנת 2007 עודכן החוק בישראל וקיבלנו כמה התייחסויות חשובות, כמו הזכות להנדסה לאחור של תוכנה כדי להתאים אותה למערכת אחרת ולתקן שגיאות (סעיף 24 לחוק), הזכות לשמור גיבויים והגדרה מחדש של הזכות לשימוש הוגן.

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

מה למדנו על תוכנות ב-30 השנים האחרונות?

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

לדוגמא, אם תסתכלו על רשיון aGPL שבא לתקן את הבעיה של ההגינות ב-SaaS, תבינו חלק מהבעיה: רשיונות קוד פתוח חלים על "הפצה" של תוכנה. אבל כשכל התוכנה מותקנת על שרת, אין "הפצה" אלא "שימוש", ואז מה? האם ה-GPL לא צריך לחול? יש מי שחושב שכן.

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

מה שעוד למדנו על תוכנות זה השינויים.

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

מה למדנו מLog4J והצורך להסביר על שינויים ברשיונות תוכנה?

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

CC-BY-NC XKCD

מה למדנו על הדרך שבה מאשרים רשיונות?

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

מה למדנו על החשיבות של קוד מקומפל מול מקור?

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

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

איך אפשר להצדיק שימוש כזה אם קוד פתוח הוא לא דת?

One thought on “הטכנולוגיה התקדמה, למה ההסכמים לא?

  1. זה נשמע כמו חלק ראשון מתוך שלושה, איפה שאר ההרצאה?

Comments are closed.