This translation may not reflect the changes made since 2006-04-26 in the English original.
Please see the Translations README for information on maintaining translations of this article.
מדוע על תוכנה להיות חופשית
מאת ריצ'ארד סטולמן
הקדמה
קיום מוצר ה”תוכנה“ מעלה את השאלה על דרך קבלת ההחלטות בקשר אליה. לדוגמא, נניח כי אדם מסוים, בעל עותק של תוכנה, פוגש אדם אחר המעונין בעותק שלה. האם הם יכולים להעתיק את התוכנה? מי צריך להחליט על כך? האם האנשים המעורבים, או שמא ישות נוספת, ”הבעלים“ של המוצר?
מפתחי תוכנה בדרך כלל מתייחסים לשאלות אלו בהנחה שהקריטריון לתשובה הוא מיקסום רווחים למפתח. הכוח הפוליטי של עולם העסקים הוביל את השלטון לאמץ הן את הקריטריון והן את התשובה שהוצעה : למוצר תוכנה יש בעלים, שהם בד"כ חברה המזוהה עם פיתוח המוצר.
במאמר זה ננסה לבחון את אותה שאלה, אבל עם קריטריון שונה: השגשוג והחופש של הציבור.
התשובה אינה יכולה להתבסס על החקיקה הנוכחית – החוק צריך לעקוב אחרי האתיקה ולא להפך, ובכלל, החקיקה הנוכחית אינה פותרת את השאלה, למרות שהיא מציעה מספר פתרונות אפשריים. הדרך היחידה לשפוט בנושא היא לגלות מי נפגע ומי מרוויח בהכרה בבעלות על תוכנה, למה, ובאיזו מידה. במילים אחרות, עלינו לבצע אנליזת מחיר/תועלת בשם החברה כישות אחת, תוך שאנו לוקחים בחשבון את החופש האישי ובנוסף את היצור של מוצרים ברי קיימא.
במאמר זה יתוארו האפקטים של ”בעלות“, ונראה כי התוצאה היא מזיקה בעליל. המסקנה המתבקשת היא כי למתכנתים יש את החובה לעודד אחרים לחלוק, להפיץ מחדש, ללמוד ולשפר תוכנה שהם כותבים, או במילים אחרות, לכתוב תוכנה חופשית. (1)
כיצד בעלי קניין מצדיקים את כוחם
אלו הנהנים מהמערכת הנוכחית, בה תוכנות הנן רכוש, מציעים שני נימוקים לתמיכה בדרישתם לבעלות על תוכנה: הנימוק הרגשי והנימוק הכלכלי.
הנימוק הרגשי פשוט: ”השקעתי מאמצים, זמן ונשמה במוצר, המוצר בא ממני, הוא שלי!“
נימוק זה אינה דורש מאמץ רב להפרכתו. תחושת ה-”קשר הרגשי“ אינה בלתי-נמנעת אלא כזו שמתכנתים יכולים לטפח כאשר זה מתאים להם. ניקח לדוגמא, כיצד תחושת הקשר נעלמת במסתוריות במקרה הנפוץ בו מתכנתים מוכנים, בד"כ, להעביר את כל זכויותיהם לתאגיד גדול תמורת שכר. בניגוד לכך, שיקלו את גישתם של האמנים והאומנים הגדולים של ימי הביניים, שאפילו לא חתמו על עבודותיהם. להם, שם האמן לא היה חשוב. מה שכן היה חשוב היה הצורך שהעבודה תשרת והעובדה שהיא נעשתה. גישה זה שלטה מאות שנים.
הנימוק הכלכלי מתואר כך : ”אני רוצה להתעשר (או, בתיאור הפופולרי אך לא מדויק, להתקיים), אם לא אוכל על ידי פיתוח תוכנה, אז לא אפתח תוכנה. כל האחרים הם כמוני, ולכן אף אחד לא יתכנת. ואז מה תעשו?“ – איום זה בד"כ מוסווה כעצה ידידותית.
בהמשך נראה מדוע איום זה הנו איום סרק. אבל תחילה נפנה לטפל בהנחה סמויה שניתן לגלות ביתר קלות בניסוח אחר של הטיעון הנ"ל.
ניסוח זה מתחיל בהשוואת התועלת הציבורית של תוכנה קניינית לעומת אי קיום תוכנה, ומסיים במסקנה כי פיתוח תוכנה קניינית הנו, למרות הכל, משתלם, ויש לעודדו. הטעות פה הנה ההשוואה של שתי תוצאות בלבד, תוכנה קניינית ואי-תוכנה. וההנחה שאין אפשרויות נוספות.
בהינתן מערכת של זכויות יוצרים, פיתוח תוכנה בד"כ מקושר עם קיום בעלים השולט על השימוש בתוכנה. כל עוד קישור זה קיים, אנו לרוב עומדים בפני הבחירה בין תוכנה קניינית וכלום. בכל אופן, הקישור הזה אינו טבעי או בלתי-נמנע, הוא תוצאה של מדיניות משפטית/חברתית שעליה אנו מערערים: ההחלטה על קנייניות. הגדרת הברירה כבחירה בין תוכנה קניינית לאי קיום תוכנה ממש דורש מאיתנו לשאול
הטיעון נגד קנייניות
השאלה שעל הפרק – ”האם פיתוח תוכנה צריך להיות קשור לקיום בעלות והגבלת שימוש?“
על מנת לפסוק בסוגיה זו, אנו צריכים למדוד את ההשפעה של כל אחת מהפעילויות על החברה באופן בלתי תלוי. ההשפעה של פיתוח תוכנה (ללא קשר לשיטות ההפצה שלה) וההשפעה של הגבלת השימוש (בהנחה שהתוכנה פותחה). אם אחת מהפעילויות הללו הנה חיובית והשניה הרסנית, מוטב לנו לבטל את הקישור בינן ולבצע רק את החיובית.
או במילים אחרות – אם הגבלת הפצה של תוכנה פוגע בחברה, אזי מתכנת מוסרי ימנע מאפשרות זו.
למדידת התוצאה של הגבלת ההפצה, אנו צריכים להשוות את הערך לחברה של תוכנה קניינית (מוגבלת הפצה) והערך של אותה תוכנה, הזמינה לכולם – כלומר השוואה של שני עולמות שונים.
השוואה זו מטפלת גם בנימוק הנגדי הפשוט שעולה מפעם לפעם - ”התועלת לשכן שלו נתת עותק תוכנה מבטלת את התועלת לבעלי התוכנה“ – נימוק זה מניח שהנזק והתועלת שווים בערכם. בהשוואה שנבצע נשווה גם את הערכים, ונראה כי התועלת גדולה לעין שיעור מהנזק.
להבהרת הטיעון, בואו ננסה להפעיל אותו על נושא אחר – בניית כבישים.
ניתן לממן את בניית כל הכבישים על ידי אגרת-מעבר. מימון כזה ידרוש הקמת נקודות גבייה בכל צומת רחובות. מערכת כזו תהווה תמריץ גדול לשיפור הדרכים ותגרום לכל משתמש בדרך לשלם על השימוש בה, אולם, נקודת גבייה היא מכשול מלאכותי המפריע לזרימת התנועה. מלאכותי מכיוון שאינו תוצאה של דרך פעולתן של מכוניות או כבישים.
בהשוואת דרכים חופשיות לכבישי אגרה אנו מוצאים (בהנחה כי כל שאר הפרמטרים זהים) כי כבישים רגילים זולים יותר לבנייה ולתחזוקה, בטוחים יותר ויותר יעילים בשימוש. (2) במדינה ענייה, אגרות מעבר מונעות את השימוש בכבישים מאזרחים רבים. יוצא מזה כי כבישים נטולי אגרה (חופשיים) מציעים יותר תועלת לחברה בעלות קטנה יותר והם מועדפים על ידי החברה. לכן, על החברה לבחור לממן סלילת כבישים בדרכים אחרות, ולא על ידי נקודות גביית אגרה. השימוש בכביש, אחרי בנייתו, צריך להיות חופשי.
כאשר הסניגורים של כבישי האגרה טוענים כי הם רק דרך לגיוס כספים, הם מסתירים את העובדה שיש חלופות. נקודות גביית אגרה אכן מגייסות כספים, אבל הן גם מורידות את רמת הכביש. כבישי האגרה אינם טובים כמו כבישים חופשיים.
כמובן, בניית כביש חופשי עולה כסף, שעל הציבור לשלם. אולם, אין משמעות הדבר מעבר לשיטת כבישי האגרה. אנו, הנדרשים לשלם בכל מקרה, נקבל תמורה טובה יותר לכספנו בבניית כבישים חופשיים.
איננו טוענים כי דרך אגרה גרועה מאי קיום דרך, למרות שטענה זו תתקיים אם האגרה תהיה גבוהה במידה כזאת שלא נוכל להשתמש בדרך (זו אינה מדיניות הגיונית לבעלי הכביש). אולם, כל עוד כבישי אגרה גורמים לבזבוז ואי נוחות, עדיף לגייס את הכסף בדרכים פחות פוגעניות.
ניתן להפעיל אותם טיעונים לגבי פיתוח תוכנה, נראה כי קיום ”נקודות גבייה“ לתוכנה שימושית עולה רבות לחברה – גורם לתוכנה להיות יקרה יותר לפיתוח, יקרה יותר להפצה ופחות מספקת ויעילה לשימוש. מזה יוצא כי יש לעודד פיתוח תוכנה בדרכים אחרות, ויתוארו גישות אחדות לעידוד ומימון (בהיקף הנדרש באמת) של פיתוח תוכנה.
הנזק הנגרם על ידי תוכנות חוסמות (Obstructing Software)
שערו לרגע כי תוכנה פותחה והתשלומים הנדרשים לפיתוחה שולמו. עתה על החברה (society) להחליט האם להתיר שימוש חופשי או להגביל הפצתה. הניחו כי קיום התוכנה וזמינותה הינם רצויים. (3)
הגבלת ההפצה ואי התרת שינוי אינם מקדמים את השימוש בה, הם יכולים רק להפריע, והאפקט יכול להיות רק שלילי. אבל כמה? ובאיזו צורה?
שלוש רמות שונות של נזקים ממשיים באות מהפרעה כזו:
- פחות אנשים משתמשים בתוכנה
- אף אחד מהמשתמשים אינו יכול להתאימה לצרכיו המיוחדים
- מפתחים אחרים אינם יכולים ללמוד ממנה, או לבסס עליה עבודה חדשה.
לכל רמת נזק יש צורה קשורה של נזק פסיכו-חברתי – הכוונה לאפקט שבו להחלטות שאנשים מקבלים יש השפעה על רגשותיהם, גישתם לחיים ורגישותם. לשינויים אלו בדרכי המחשבה יש השפעה גם על קשריהם עם אזרחים אחרים ויתכנו להם השפעות חומריות.
שלוש רמות אלו של נזקים חומריים מבטלות חלק מהערך שהתוכנה יכלה לתרום, אבל אינם יכולים לבטלו לחלוטין. אם הן מבטלות אותו לחלוטין, הנזק לחברה על ידי כתיבת התוכנה יהיה לא יותר מהמאמצים לכתוב אותה. ניתן לטעון כי תוכנה שניתן למכור חייבת להביא תועלת ישירה כלשהי.
אולם, בהילקח בחשבון הנזק הפסיכו-סוציאלי הקשור, אין מגבלה לנזק שפיתוח תוכנה קניינית יכול לגרום.
הגבלת השימוש בתוכנה
הרמה הראשונה של נזק מונעת את השימוש הפשוט בתוכנה. לעותק של תוכנה יש ערך אפסי של עלות שולית (וניתן לשלם עלות זו על ידי ביצוע העבודה בעצמך), ולכן, בשוק חופשי, יהיה לו מחיר קרוב לאפס. דמי רשיון הנם תמריץ שלילי לשימוש בתוכנה – אם תוכנה שימושית לציבור הרחב הנה קניינית, הרבה פחות אנשים מהמצופה ישתמשו בה.
ניתן להראות בקלות שהתרומה הכוללת של תוכנה לחברה מוקטנת כאשר מגדירים לה בעלים. כל משתמש פוטנציאלי בתוכנה הניצב בפני הצורך לשלם עבור השימוש בה, יכול לבחור לשלם או לוותר על השימוש בה. כאשר משתמש בוחר לשלם, הנזק לחברה הינו אפס, מאחר וצד אחד מרוויח מה שצד אחר משלם, [a zero-sum transfer of wealth] אבל כאשר מישהו מחליט לוותר על השימוש בתוכנה, נגרם לו נזק מבלי שצד אחר מרוויח, ולכן התוצאה הסופית שלילית.
אבל, אין זה מקטין את כמות המאמץ הנדרש לפתח את התוכנה, וכתוצאה, היעילות הכוללת של התהליך, ביחידות של ”שביעות רצון משתמש לשעת עבודה“ קטנה.
מצב זה משקף את ההבדל העקרוני בין שכפול תוכנה ומכוניות, כסאות או סנדוויצים. עדיין לא קיימת מכונת שכפול למוצרים גשמיים מחוץ למדע הבדיוני, אבל תוכנות הנן קלות להעתקה – כל אחר יכול לייצר כה עותקים שהוא רוצה, במאמץ קטן במיוחד. זה אינו נכון למוצרים גשמיים לפי חוק שימור החומר – כל עותק חדש חייב להבנות מחומר גולמי באותה דרך בה נבנה העותק הראשון.
עם מוצרים גשמיים, תמריץ שלילי לשימוש בהם הוא הגיוני, מאחר וקניית עותקים מעטים משמעו פחות חומרים גולמיים ועבודה הנדרשת לייצרם. נכון כי יש בד"כ עלות פתיחה, עלות פיתוח, המפוזרת על פני קו היצור כולו, אבל כל עוד העלות השולית של היצור משמעותית, הוספת החלק היחסי של עלות הפיתוח אינה גורמת שינוי משמעותי בתמחור, ואינה דורשת הגבלה על חירותם של המשתמשים הרגילים.
אולם כפיית מחיר על דבר שאחרת היה חינם גורמת לשינוי גדול, תשלום כפוי על הפצת תוכנה הופך לתמריץ שלילי חזק.
בנוסף, שכפול מרכזי [central production] כמתבצע עתה הינו לא יעיל אפילו כאמצעי של הפצת התוכנה. המערכת דורשת סגירה של דיסקים פיזיים או סרטים מגנטיים באריזות עודפות, משלוח מספר גדול של אריזות אלו לרחבי העולם ואחסונם לצרכי מחירה. עלות זו מוצגת כהוצאה של ביצוע עסקים, אבל, באמת, היא חלק מבזבוז הנגרם עקב קיום בעלים לתוכנה.
פגיעה באחדות חברתית
נניח כי גם אתה וגם שכנך מגלים כי שימוש בתוכנה מסוימת יעיל עבורכם. מתוך דאגה לשכנך, אתה צריך להרגיש כי תשובה הולמת למצב תהיה לאפשר לשניכם להשתמש בה. הצעה לאפשר רק לאחד מכם להשתמש בתוכנה, ולמנוע את השימוש מהאחר, הוא מעורר מחלוקת, ולא אתה ולא שכנך תמצאו אותו הולם.
חתימה על הסכם טיפוסי לשימוש בתוכנה פירושו כי אתה בוגד בשכנך - ”אני מבטיח למנוע משכני תוכנה זו כדי שאני אוכל לקבל עותק לשימושי“. אנשים המקבלים החלטות כאלו מרגישים לחץ פסיכולוגי פנימי להצדקת מעשיהם, על ידי הקטנת חשיבות העזרה לשכנים וגורמים לפגיעה ב-”רוח הציבורית“ זוהי פגיעה פסיכו-סוציאלית הקשורה לפגיעה החומרית של דיכוי השימוש בתוכנה.
משתמשים רבים מכירים באופן בלתי מודע בטעות של סירוב לחלוק, ולכן הם מחליטים להתעלם מהרשיונות ומהחוק, ובכל אופן לחלוק תוכנה. אבל לעיתים קרובות הם מרגישים אשמה, הם יודעים שעליהם לעבור על החוק על מנת להיות שכנים טובים, אבל הם עדיין מתייחסים לחוק כסמכות עליונה, ומסיקים כי להיות שכן טוב (כפי שהם) הנה התנהגות לא-הולמת ומבישה. זוהי גם כן סוג של פגיעה פסיכו-חברתית, אבל אדם יכול להימנע ממנה על ידי החלטה כי הרשיונות והחוקים הנוגעים להם אינם בעלי תוקף מוסרי.
מתכנתים סובלים גם הם מפגיעה פסיכו-חברתית בכך שהם יודעים כי משתמשים רבים לא יזכו להשתמש במוצר אותו פיתחו – דבר המוביל להכחשה או גישה צינית. מתכנת יכול לתאר בהתלהבות את עבודה אותה הוא מוצא מלהיבה מבחינה טכנית, אבל כאשר ישאל ”האם אוכל להשתמש בה?“, יפלו פניו, והוא יודה שלא. על מנת להימנע מלהרגיש כך, הוא ישתדל להתעלם מעובדה זו ככל האפשר או יפתח עמדה צינית לצמצום משמעות הדבר.
מאז ימי רייגן, הדבר הנדיר ביותר בארה"ב אינו חדשנות טכנולוגית, אלא הנכונות לעבוד יחד לטובת הציבור. אין הדבר הגיוני לתמרץ את את הנכונות לעבוד על חשבון טובת הציבור.
הגבלת האפשרות להתאמת תוכנה
הרמה השניה של פגיעות חומריות היא המניעה מהתאמת התוכנה. הקלות של הכנסת שינויים בתוכנה היא אחד היתרונות הגדולים שלה על פני טכנולוגיות ישנות, אבל, רוב המוצרים המסחריים הזמינים אינם מאפשרים שינויים על ידי הלקוח, אפילו אחרי קניתם. המוצר זמין עבורך – לקחת או לוותר, כקופסא שחורה – וזהו.
התוכנה שהנך יכול להריץ מורכבת מסדרת מספרים שמשמעותם מעורפלת, אף אחד, אפילו לא מתכנת מעולה, יכול לשנות מספרים אלו בקלות כך שהתוכנה תבצע משהו אחר.
מתכנתים בדרך כלל עובדים עם ”קוד מקור“, הכתוב בשפת תכנות כדוגמת פורטרן או C. השפה משתמשת בשמות לציון הנתונים לשמוש וציון חלקי התוכנה, ומייצגת פעולות על ידי סמלים כגון '+' לחבור ו-'-' לחיסור. היא מתוכננת לעזור למתכנתים לקרוא ולשנות תוכניות. הנה דוגמא לתוכנית לחישוב המרחק בין שתי נקודות על משטח:
float distance (p0, p1) struct point p0, p1; { float xdist = p1.x - p0.x; float ydist = p1.y - p0.y; return sqrt (xdist * xdist + ydist * ydist); }
והנה אותה תוכנית בצורה ברת הרצה במחשב בו אני בדרך כלל משתמש:
1314258944 -232267772 -231844864 1634862 1411907592 -231844736 2159150 1420296208 -234880989 -234879837 -234879966 -232295424 1644167167 -3214848 1090581031 1962942495 572518958 -803143692 1314803317
קוד מקור הנו שימושי (לפחות פוטנציאלית) לכל משתמש בתוכנה, אבל רוב המשתמשים אינם מורשים להחזיק עותקים שלו. קוד המקור לתוכנות קנייניות בד"כ מוחזק בסודיות על ידי הבעלים, על מנת למנוע מאחרים ללמוד ממנו. כל שהמשתמשים מקבלים הם קבצים בינאריים, המכילים הוראות ביצוע שרק מחשב יכול לבצע – מתוך כך, רק בעלי התוכנה יכול לבצע בה שינויים.
חברה סיפרה לי פעם על עבודתה כמתכנתת עבור בנק במשך 6 חודשים, בה כתבה תוכנה הדומה לתוכנה הזמינה מסחרית. היא האמינה כי אם יכולה הייתה לקבל את קוד המקור של התוכנה המסחרית, השינויים הנדרשים היו קלים מאוד. הבנק היה מוכן לשלם עבור קוד המקור, אבל לא הורשה – קוד המקור נשמר בסודיות – והיא הייתה צריכה לעבוד חצי שנה, עבודה שנחשבת מבחינת תוצר לאומי, אך היא בעצם בזבוז זמן.
מעבדת האינטליגנציה המלאכותית ב-MIT קיבלה מדפסת גרפית כמתנה מחברת XEROX בסביבות 1977. היא הופעלה על ידי תוכנה חופשית שעליה הוספנו תכונות נוחות רבות, לדוגמה, התוכנה יכלה להודיע למשתמש מיד בסיום עבודת ההדפסה שלו. בכל פעם שהיתה למדפסת בעיה, כדוגמת תקיעת נייר או חסר נייר, התוכנה הודיעה מיידית לכל המשתמשים שהיו להם עבודות בתור להדפסה. תכונות אלו הביאו לעבודה נעימה ונוחה מול המדפסת.
מאוחר יותר, העבירה XEROX למעבדה אחת מראשונות מדפסות הלייזר - מדפסת חדשה ומהירה יותר. התוכנה שהפעילה אותה הייתה תוכנה קניינית, שרצה על מחשב ייעודי נפרד, כך שלא יכולנו להוסיף אף אחת מהתכונות שאהבנו בתוכנת המדפסת הישנה. אמנם יכולנו לסדר שליחת הודעה כאשר עבודת הדפסה הגיעה למחשב הייעודי, אבל לא כאשר היא הודפסה בפועל (והבדלי הזמנים היו בד"כ משמעותיים) ולא הייתה כל דרך לדעת מתי המדפסת באמת מדפיסה – ניתן היה רק לנחש. כמו כן, אף אחד לא דווח כאשר הייתה תקיעת נייר, וכך לא נדירים היו המקרים בהם המדפסת הייתה מושבתת לשעה ללא תשומת לב.
מתכנתי המערכות של מעבדת ה-AI היו בעלי הכישורים לתקן בעיות אלו לא פחות מהמפתחים המקוריים של התוכנה, אבל XEROX לא הייתה מעונינת לתקנם, ובחרה למנוע מאתנו לתקנם, כך שהוכרחנו לחיות עם המצב – בעיות אלו לא תוקנו מעולם.
רוב המתכנתים הטובים התנסו לא פעם בחוויה מעין זו - הבנק יכול היה להרשות לעצמו לפתור את הבעיה על ידי כתיבת התוכנה מחדש בהתאמה לצרכיו, אבל משתמש טיפוסי, לא משנה כמה כשרוני, יכול רק להרים ידיים.
הרמת ידיים גורמת לנזק פסיכו-חברתי – לרוח ההסתמכות על עצמך. מייאש לחיות בבית שאינך יכול להתאימו לצרכיך וזה מוביל לדיכאון וייאוש ויכול להתפשט ולהשפיע על תחומי חיים אחרים - אנשים החשים כך הנם עצובים ואינם עושים עבודה טובה.
דמיין לעצמך איך יהיו החיים אם מתכונים היו נצברים בדומה לתוכנה. אתה יכול להגיד, ”איך אני משנה את המתכון הזה ומוריד ממנו את המלח?“, והשף הגדול יאמר, ”איך אתה מעז להעליב את המתכון שלי, יליד מוחי וחוש הטעם שלי, בניסיון לחבל בו? אין לך את חוש השיפוט לשנות את המתכון שלי ולעשותו נכון!“
”אבל הרופא שלי אסר עלי לאכול מלח! מה אני יכול לעשות? האם תוציא את המלח מהמתכון בשבילי?“
”אשמח לעשות כן, ושכרי הנו רק 50,000$.“ מאחר ולבעלים מונופול על השינויים, השכר נוטה להיות משמעותי. ”אבל, כרגע אין לי זמן. אני עסוק במשימה לאומית לתכנון מתכון חדש לקרקר למנות קרב עבור הצבא. כנראה אתפנה אליך בעוד שנתיים.“
פיתוח תוכנה מגבילה
הרמה השלישית של פגיעה חומרית משפיעה על פיתוח תוכנה. פיתוח תוכנה היה בעבר תהליך אבולוציוני, בו אדם לוקח תוכנה קיימת ומשכתב חלקים ממנה להוספת תכונה חדשה, ואחריו, אדם נוסף ישכתב חלקים להוספת תכונה נוספת - במקרים מסוימים, התהליך יכול להמשך יותר מעשרים שנים. בינתיים, מתבצעת ”קניבליזציה“ של חלקים מהתוכנה ונוצרת תוכנה חדשה.
הקיום של ”בעלים“ מונע תהליך אבולוציוני כזה, ומכריח להתחיל מאפס בעת פיתוח תוכנה. הוא גם מונע מאנשים נוספים ללמוד מתוכנה קיימת טכניקות מועילות או אפילו איך בנויות תוכנות מורכבות.
בעלים יכולים גם למנוע חינוך. בעבר פגשתי סטודנטים מבריקים במדעי המחשב שלא ראו מעולם את קוד המקור של תוכנה מורכבת. הם יכולים להיות מצוינים בכתיבת תוכניות קטנות, אבל הם אינם יכולים אפילו להתחיל ללמוד את הכישורים המורכבים הנדרשים לכתיבת תוכנות מורכבות אם הם אינם יכולים לראות כיצד אחרים מתמודדים עם האתגר.
בכל תחום אינטלקטואלי, אדם יכול להגיע לפסגות חדשות בכך שהוא עמוד על כתפיהם של אחרים. אבל לא עדו בתחום התוכנה – אתה יכול לעמוד רק על כתפיהם של אנשים אחרים בחברה שבה אתה מועסק.
הנזק הפסיכו-סוציאלי הקשור משפיע על רוח השיתוף המדעית, שהייתה כל כך חזקה, עד כי מדענים ממדינות אויבות שיתפו פעולה. ברוח זו, חוקרי ימים יפניים שנטשו את מעבדתם באי באוקיינוס הפסיפי שימרו את הנתונים שאספו, והשאירו מכתב המבקש מהכוחות הכובשים לדאוג לשמר את הנתונים.
העימותים ליצור רווחים הרסו מה שעימותים בינלאומיים שימרו. בימינו אנו, מדענים בתחומים רבים אינם מפרסמים די נתונים במאמריהם כדי לא לאפשר לאחרים לשחזר את עבודתם. הם מפרסמים מספיק רק בכדי להראות כמה הם הצליחו להשיג. זה בהחלט נכון במדעי המחשב, היכן שקוד המקור עליהם מבוססים מאמרים בדרך כלל נשאר חסוי.
אין זה משנה איך מגבילים שיתוף
עד עתה דנו בתוצאות האיסור על העתקה, שינוי והתבססות על תוכנה. לא ציינו איך המגבלות מבוצעות, בגלל שאין לכך השפעה על התוצאה. בין אם המגבלה נאכפת על ידי מנגנוני מניעת העתקה,זכויות יוצרים, רשיונות, הצפנה, שימוש בזיכרונות ROM או מספרים סידוריים בחומרה, אם המגבלה נאכפת, היא גורם לנזק.
משתמשים מתייחסים לחלק משיטות ההגנה כמגעילות יותר מאחרות – השיטות השנואות יותר הן כנראה אלו המשיגות את מטרתן.
תוכנה צריכה להיות חופשית
ראינו עד עתה כי בעלות על תוכנה – הכוח להגביל שינויים או העתקה הוא גורם מעכב שהשפעותיו השליליות הנן נרחבות וחשובות. ומכאן המסקנה כי לציבור אסור שלתוכנה יהיו בעלים.
דרך אחרת להבין זאת היא כי לציבור נחוצה תוכנה חופשית, וכי תוכנה קניינית היא תחליף נחות. עידוד התחליף אינו דרך שקולה להשגת צרכינו.
וצ'לב הבל [Vaclav Havel] אמר ”צריך לעבוד עבור משהו כי הוא טוב, לא רק בגלל שיש לו סיכוי להצליח“. לעסק היוצר תוכנה קניינית יש סיכוי להצלחה בהגדרה הצרה, אבל אין זה טוב עבור הציבור.
למה אנשים יפתחו תוכנה
אם אנו מעלימים את הרכוש האינטלקטואלי כאמצעי לעידוד אנשים לפיתוח תוכנה, נקבל בתחילה פחות תוכנה, אך היא תהיה יותר שימושית. אין זה ברור ששביעות הרצון הכללית של הציבור תהיה פחותה, אבל אם כן, או אם אנו רוצים להגדילה בכל זאת, ישנן דרכים אחרות לעידוד פיתוח, בדיוק כפי שישנן דרכים אחרות חוץ מכבישי אגרה לגיוס כספים לסלילת כבישים. לפני שנדבר כיצד ניתן להשיג זאת, ננסה לבחון כמה עידוד מלאכותי אכן נחוץ.
תכנות זה כיף
ישנן מקצועות רבים שמעט אנשים יעבדו בהם ללא תמורה הולמת, לדוגמא, סלילת כבישים. ישנם תחומים אחרים של לימוד ואמנות שבהם יש סיכוי קלוש (אם בכלל) להתעשר, שאליהם אנשים נמשכים עקב קסמם או ערכם הנראה לציבור. דוגמאות כוללות מתמטיקה ולוגיקה, מוזיקה קלאסית, ארכיאולוגיה ופוליטיקה של איגודי עובדים. אנשים מתחרים, על מעט עמדות הכוח הפנויות, שאף אחת מהן אינה משתלמת יותר מדי. יש אפילו סיכוי כי הם ישלמו מכיסם לצורך העבודה בתחום, אם הם יכולים לממן זאת.
תחום כזה יכול להפוך עצמו בן לילה אם הוא מתחיל להציע אפשרות להתעשר. כאשר עובד אחד מתעשר, אחרים דורשים את אותה ההזדמנות. ודי מהר כולם דורשים סכומי כסף גדולים כתשלום על העבודה אותה עשו עד כה להנאתם. כאשר עוברות עוד כמה שנים, כל הקשורים לתחום לועגים לרעיון כי העבודה תעשה ללא החזרים כספיים ניכרים. הם ימליצו למתכננים חברתיים להבטיח כי החזרים כאלו אפשריים, וימליצו על הטבות מיוחדות, כוח, ומונופולים כנדרשים למימוש.
שינוי כזה חל בעולם תכנות המחשבים בעשור האחרון. לפני חמש עשרה שנים, היו מאמרים על ”מכורים למחשבים“: משתמשים היו ”מקוונים“ והיו להם הרגלים בעלות של מאה דולר לשבוע. אנשים לפעמים אהבו מחשבים מספיק כדי לשבור את נישואיהם. היום, אף אחד לא חושב לתכנת אלא לצורך קבלת שכר גבוה. אנשים שכחו מה שידעו לפני חמש עשרה שנים.
גם אם זו אמת בנקודת זמן מסוימת שרוב האנשים יעבדו בתחום מסוים רק עבור משכורות גבוהות, אין זה צריך להישאר כך. הדינמיקה של השינוי יכולה לעבוד גם בכיוון ההפוך, אם הציבור יספק את התנופה. אם ננטרל את האפשרות לעושר רב, אזי אחרי זמן מה, אנשים יסגלו מחדש את גישתם, וישתוקקו שוב לעבוד בתחום מתוך חדוות היצירה.
השאלה ”איך נוכל לשלם למתכנתים?“ הופכת לפשוטה יותר כאשר אנו מבינים שאין צורך לשלם להם הון – פרנסה בלבד קל יותר לגייס.
מימון תוכנה חופשית
למוסדות המשלמים למתכנתים אינם חייבים להיות בתי תוכנה. קיימים מוסדות רבים אחרים היכולים לעשות זאת.
יצרני חומרה רואים את התמיכה במפתחי תוכנה כהכרחית גם אם אינם יכולים לשלוט בתוכנה אותה הם מפתחים. בשנת 1970, רוב התוכנה היתה חופשית בגלל שלא חשבו להגביל אותה. היום, נכונותם הרבה להצטרף לארגונים ממחישה כי הבעלות על תוכנה היא לא הדבר החשוב להם.
מוסדות להשכלה גבוהה מקיימות פרוייקטי תכנות רבים. היום, הם בדרך כלל מוכרים את התוצרת, אבל לא בשנות ה70'. האם יש איזה שהוא ספק שאוניברסיטאות יפתחו קוד חופשי אם הן לא היו מורשות למכור אותו? ניתן היה לממן פרויקטים אלו על ידי אותם חוזים ומענקים ממשלתיים המופנים כעת לפיתוח תוכנות קנייניות.
מקובל היום עבור חוקרים אקדמאים לקבל מענקים לפיתוח מערכות, לפתח אותן כמעט עד לסיום ולהכריז עליהן כ”גמורות“, ואז להקים חברות שבאמת רק מסיימות את הפרויקט וגורמות לו להיות שימושי. לעיתים הם מכריזים על המוצר הלא-סופי כ-”חופשי“ אבל לעיתים, אם הם מושחתים באמת, הם מקבלים זכות בלעדית מהאוניברסיטה. זה אינו סוד, זוהי אמת פומבית שכולם מודים בה. אבל עדיין, אם חוקרים לא היו חשופים לפיתוי לעשות דברים כאלו, הם עדיין היו מבצעים את מחקרם.
מתכנתים הכותבים קוד חופשי יכולים להתקיים על ידי מכירת שרותים הקשורים לתוכנה. אני עצמי נשכרתי להסב את קומפיילר השל גנו C לחומרות חדשות, ולייצר הרחבות לממשקי האנוש של GNU Emacs. (והצעתי את ההרחבות הללו לציבור ברגע בו הם היו מוכנות), כמו כן אני מלמד קורסים עבורם אני מקבל שכר.
אינני לבד בצורת עבודה זו, ישנה עכשיו חברה מצליחה וגדלה העובדת בדיוק באותה הדרך. גם כמה חברות אחרות מספקות תמיכה מסחרית לתוכנה החופשית של מערכת GNU. זוהי ההתחלה של תעשיית התמיכה לתוכנה חופשית – תעשייה היכולה לגדול אם תוכנה חופשית תהיה שכיחה. היא מספקת למשתמשים אופציה שבדרך כלל אינה קיימת עבור תוכנות מסחריות, למעט לעשירים ביותר.
מוסדות חדשים כדוגמת ארגון התוכנה החופשית (Free Software Foundation) גם כן יכולים לממן מתכנתים. רוב כספי הארגון באים ממשתמשים הקונים מדיה מגנטית בדואר. התוכנה על המדיה הינה חופשית, כלומר, לכל משתמש הזכות להעתיקה ולשנותה, אבל רבים מעדיפים לשלם על העותק שלהם. (המושג ”תוכנה חופשית“ מתייחס לחופש, לא למחיר) חלק מהמשתמשים מזמינים עותקים אפילו אם יש להם כבר עותק, כדרך לתרומה שהם חשים צודקת. הארגון מקבל גם תרומות לא קטנות מיצרני מחשבים.
ארגון התוכנה החופשית הוא ארגון צדקה, והכנסותיו יוצאות לשכירת מתכנתים רבים ככל האפשר. אם הוא היה מוקם כעסק להפצת אותה תוכנה חופשית לציבור תמורת תשלום, הוא היה מביא למייסדיו רווח נאה.
בגלל שהארגון הנו ארגון צדקה, מתכנתים בד"כ עובדים עבורו תמורת מחצית השכר אותו היו מקבלים במקום אחר. הם עושים זאת בגלל שאנו חופשיים מבירוקרטיה, ובגלל שהם חשים סיפוק שעבודתם לא תהיה חסומה ומוגבלת משימוש. יותר מכל, הם עושים זאת בגלל שתכנות זה כיף. בנוסף, מתנדבים כתבו תוכניות רבות עבורנו (לאחרונה אפילו כותבים טכניים התחילו להתנדב).
דבר זה מאשר כי תכנות הנו אחד התחומים המעניינים ביותר, יחד עם מוזיקה ואמנות. איננו צריכים לחשוש שאף אחד לא ירצה לתכנת.
מה המשתמשים חייבים למתכנתים?
ישנה סיבה טובה מאוד למשתמשי תוכנה לחוש מחויבות מוסרית לתרום לתמיכה בה. מתכנתים של קוד חופשי תורמים לפעילויות המשתמשים, ואין זה אלא הוגן ואינטרס לטווח הארוך לתת להם מימון להמשך הדרך.
אבל אין זה מתייחס לתוכנה קניינית, מאחר ולמגבלות מגיע עונש ולא פרס.
ולכן יש לנו פרדוקס: המפתח של תוכנה שימושית זכאי לתמיכה ממשתמשיה, אבל כל ניסיון להפוך התחייבות מוסרית זאת לדרישה הורס את הבסיס להתחייבות. מפתח יכול להיות זכאי לפרס או לדרוש אותו, אבל לא ביחד…
אני מאמין שמתכנת מוסרי הניצב מול פרדוקס זה חייב להתנהג כזכאי לפרס, אבל גם חייב להפציר במשתמשים לתרום מרצונם החופשי. בסופו של דבר משתמשים ילמדו לתמוך במפתחים ללא כפייה, בדיוק כמו שהם למדו לתמוך בתחנות רדיו וטלוויזיה ממלכתיות
מהי פרודוקטיביות בתוכנה?
אם תוכנה הנה חופשית, עדיין דרושים מתכנתים, אבל אולי פחות. האם זה רע לציבור?
לא בהכרח. במדינות המפותחות יש היום פחות חקלאים מאשר היו ב1900, אבל אנו לא רואים בכך דבר רע לציבור, בגלל שהמעטים הללו מפיקים יותר מזון לצרכנים מאשר הרבים עשו בעבר - אנו קוראים לכך פריון עבודה משופר. תוכנה חופשית תדרוש הרבה פחות מתכנתים לסיפוק הדרישה בגלל עליה בפריון העבודה בפיתוח בכל הרמות:
- שימוש נרחב יותר לכל תוכנה שפותחה.
- היכולת לשנות תוכנה קיימת והתאמתה במקום לכתוב מאפס.
- חינוך טוב יותר למתכנתים.
- חיסול כפל המאמצים בפיתוח
אלו המתנגדים לשיתוף הפעולה בגלל שיגרום להעסקת פחות מתכנתים בעצם מתנגדים לתפוקת עבודה משופרת. אבל בכל זאת, הם בד"כ מקבלים את האמונה הרווחת כי תעשיית התוכנה זקוקה לפריון עבודה משופר. הכיצד יתכן?
”פרודוקטיביות בתכנות“ יכול להתפרש כשני מושגים שונים: פריון העבודה של כלל פיתוח התוכנה או פריון העבודה של פרויקטים בודדים. פריון עבודה כולל הוא מה שהחברה תרצה לשפר, והדרך הברורה ביותר להשיג שיפור זה הוא הסרת המכשולים המלאכותיים לשיתוף פעולה המקטינים אותו. אבל חוקרים הלומדים את תחום ”פריון עבודה בתכנות“ מתמקדים רק בפירוש השני, הצר, שבו שיפורים דורשים פתרונות טכנולוגים מסובכים.
האם תחרות הנה בלתי נמנעת?
האם בלתי נמנע שאנשים ינסו להתחרות, לגבור על מתחריהם בחברה? יתכן וכך, אבל, תחרות בפני עצמה אינה מזיקה, הדבר המזיק הוא קרב.
ישנן דרכים רבות להתחרות. תחרות יכולה להיות רצון להשיג יותר, לעשות יותר ממה שאחרים עשו. לדוגמא, בימים עברו, היתה תחרות בין גאוני מחשוב, מי יגרום למחשב לבצע את הדברים המדהימים ביותר או את התוכנה הקצרה או המהירה ביותר לביצוע משימה מסוימת. סוג זה של תחרות גורם לכולם להרוויח, כל עוד היא מנוהלת ברוח ספורטיבית.
”תחרות בונה“ מספיקה להמרצת אנשים למאמצים עילאיים. מספר אנשים מתחרים להיות הראשון שיבקר בכל המדינות על כדור הארץ, אחדים אפילו השקיעו סכומים ניכרים בתחרות זו. אבל הם אינם משחדים בעלי ספינות להוריד את מתחריהם על איים נטושים. הם רוצים לתת לאדם הטוב לנצח.
תחרות הופכת לקרב כאשר המתחרים מתחילים לסכל את צעדי היריב במקום לקדם את עצמם – כאשר ”הטוב ינצח“ מפנה מקום ל-”אני אנצח, בין אם אני הטוב ביותר או לא“. תוכנה קניינית הנה מזיקה, לא בגלל שהיא סוג של תחרות, אלא בגלל שהיא סוג של קרב בין אזרחים בחברה.
תחרות בין עסקים אינה בהכרח קרב. לדוגמא, כאשר שתי חנויות מכולת מתחרות, כל מאמציהן מופנים לשיפור עצמי, לא למעשי חבלה אצל המתחרה. אבל אין זה מדגים מחויבות מיוחדת לאתיקה עסקית, אלא, שיש מקום צר מאוד לקרב ללא אלימות פיזית בסוג זה של עסקים. לא כל תחומי העסקים חולקים את המאפיינים הללו. מניעת מידע היכול לעזור לכולם הנה סוג של קרב.
השקפת עולם עסקית אינה מכינה אנשים להתנגד לפיתויי הקרב עם המתחרים. כמה צורות של מאבק נאסרו על ידי חוקים אנטי-מונופוליים, חוקי האמת בפרסום וכולי, אבל במקום להכליל זאת למניעה עקרונית של מאבקים, מנהלים ממציאים צורות אחרות של מאבקים אשר אינן אסורות במפורש. משאבי הציבור מבוזבזים על המקבילה הכלכלית של מלחמת אזרחים.
”למה אתה לא עובר לרוסיה?“
בארצות הברית, כל תומך במשהו חוץ מצורה קיצונית של יוזמה חופשית אנוכית שמע טיעון זה תכופות. לדוגמא, נגד תומכי מערכת הבריאות הציבורית, הנמצאת בכל יתר המדינות המפותחות של העולם החופשי או נגד התומכים בתמיכה ציבורית באמנות, גם כן הנחה ברורה במדינות מתקדמות. הרעיון כי לאזרחים יש מחויבות לטובת ציבור מזוהה בארה"ב עם הקומוניזם. אבל כמה קרובים באמת רעיונות אלו?
הקומוניזם שהיה נהוג בברית המועצות היה מערכת של בקרה מרכזית בה כל הפעילויות היו מאורגנות, כביכול לטובת הכלל, אבל בפועל לטובת החברים במפלגה הקומוניסטית. ובה נשמרו בקפידה אמצעי העתקה למניעת יצירת העתקים לא חוקיים.
המערכת האמריקנית של זכויות יוצרים אינטלקטואליות משתמשת בבקרה מרכזית על הפצת תוכנה, ושומרת על ציוד ההעתקה בעזרת מנגנונים אוטומטיים להגנת העתקה למנוע העתקה לא חוקית.
בניגוד לכך, אני עובד לבניית מערכת בה אנשים חופשיים להחליט על האופציות שלהם, ובאופן מפורש, חופשיים לעזור לשכניהם וחופשיים לשנות ולשפר את הכלים שבהם הם משתמשים בחיי היום-יום. מערכת המבוססת על התנדבות, שיתוף פעולה וביזור.
לכן, אם עלינו לשפוט דעות על פי קרבתן לאורח החיים הקומוניסטי, בעלי התוכנה הם הקומוניסטים בינינו.
שאלת הנחת היסוד
אני מניח במאמר זה כי משתמש התוכנה אינו פחות חשוב מכותב התוכנה, או אפילו המעביד של כותב התוכנה. במילים אחרות, לאינטרסים והצרכים שלהם משקל שווה בבואנו להחליט באיזו דרך לפעול.
הנחת יסוד זו אינה מקובלת גלובלית. רבים מחזיקים בדעה כי המעביד של כותב התוכנה חשוב יותר מכל האחרים. הם אומרים, לדוגמא, כי המטרה של בעלות על תוכנה הנה לתת למעביד את היתרון לו הוא זכאי, ללא קשר לצורה שבה זה משפיע על הציבור.
אין תועלת בניסיון להוכיח או להפריך טענה זו. הוכחה דורשת הנחות יסוד משותפות. ולכן רוב הדברים שאומר מופנים רק לאילו החולקים את הנחות היסוד שלי, או לפחות מעונינים בתוצאותיהן. לאלו המאמינים כי הבעלים הנם חשובים יותר מכל האחרים, מאמר זה פשוט לא רלוונטי.
אבל מדוע מספר כה רב של אמריקאים מקבלים את הנחות היסוד המרוממות אנשים מסוימים מעל כל האחרים? חלקית בגלל אמונתם כי הנחות יסוד אלו הינן חלק ממסורת משפטית של החברה האמריקאית. אנשים מסוימים מפקפקים כי הנחות היסוד הללו קוראות תיגר על בסיס החברה.
חשוב ביותר לומר לאנשים אלו כי הנחות היסוד אינן חלק מהמסורת המשפטית שלנו. הם לא היו אף פעם.
לכן, החוקה של ארה"ב אומרת שמטרת זכויות היוצרים ”לקדם את התקדמות המדע והאמנות השימושית“ בית המשפט העליון הרחיב על כך, בהצהירו במשפט סרטי פוקס כנגד דויאל כי ”האינטרס היחיד של ארצות הברית וההתנגדות העיקרית להבטחת מונופולים של זכויות יוצרים היא ברווח הכללי שיוצא לציבור מעבודת היוצרים“
איננו נדרשים להסכים עם החוקה או עם בית המשפט העליון (בזמן מסוים, שניהם מחלו לעבדות) כך שעמדותיהם אינן מפריכות את הנחות היסוד של עליונות הבעלים. אבל כולי תקווה כי המודעות כי זוהי הנחה קיצונית-ימנית ולא הנחה בעלת הכרה מסורתית תחליש את כוח משיכתה.
סיכום
ברצוננו לחשוב כי חברתנו מעודדת עזרה לשכנים, אבל בכל פעם שאנו מתגמלים מישהו על הפרעה, או מעריצים אותם בשל העושר שהם צברו בדרך זו, אנו שולחים את המסר ההפוך.
אגירת תוכנה היא אחת הצורות של נכונותנו להתעלם מרווחת הציבור לצורך רווח אישי. אנו יכולים לעקוב אחר רוח זאת מרונלד רייגן ועד ג'ים בקר, מאיון בוסקי עד אקסון, מבנקים כושלים לבתי ספר כושלים. אנו יכולים למדוד זאת בגידול אוכלוסיית חסרי הבית ואוכלוסיית בתי הכלא. הרוח האנטי-חברתית מזינה את עצמה, בגלל שככל שאנו רואים אנשים אחרים שאינם עוזרים לנו, כך אנו רואים חוסר תוחלת בעזרה לאחרים. והחברה דועכת לג'ונגל.
אם איננו רוצים לחיות בג'ונגל, עלינו לשנות את גישתנו לחיים. אנו חייבים להתחיל לשלוח את המסר כי אזרח טוב הוא זה המשתף פעולה כאשר זה נדרש, ולא אחד המצליח בגזל אחרים. כולי תקווה כי התנועה לתוכנה חופשית תתרום לכך – לפחות בתחום אחד נחליף את הג'ונגל במערכת יותר יעילה המעודדת ובנויה על התנדבות ושיתוף פעולה.
הערות
- המלה ”חופשית“ ב”תוכנה חופשית“ מתייחסת לחופש, לא למחיר. המחיר המשולם עבור עותק של תוכנה חופשית יכול היות אפס, נמוך או במקרים נדירים, גבוה.
- נושא הזיהום וצפיפות התנועה אינו משנה את המסקנה. אם ברצוננו לעשות את הנהיגה יקרה יותר ולהרתיע מנהיגה באופן כללי, הפתרון הנחות הוא על ידי כבישי אגרה, אשר תורמים לזיהום ולצפיפות גם יחד. מס על דלק הינו יעיל הרבה יותר.כמו כן, הרצון להגביר את הבטיחות על ידי הסרת מגבלת המהירות המקסימלית אינו רלוונטי, גישה חופשית לכביש מגדילה את המהירות הממוצעת על ידי הימנעות מעצירות ועיכובים, לכל מגבלת מהירות.
- ניתן לראות תוכנה מסוימת כמזיקה וככזו שאינה צריכה כלל להתקיים, כמו בסיס נתוני המסחר האישיים של לוטוס, אשר הוסר ממדפי המכירות עקב מורת רוח הציבור. רוב דברי אינם חלים על מקרה זה, אבל אין זה הגיוני להתווכח על נחיצות בעלות על תוכנה בכך שבעלים יכול להקטין את תפוצת התוכנה. הבעלים לא ימנע לגמרי את ההפצה, כפי שניתן היה לקוות במקרה של תוכנה שהשימוש בה נחשב למזיק.
מאמר זה מפורסם בתוכנה חופשית, חברה חופשית: המאמרים הנבחרים של ריצ'ארד מ. סטולמן.