ההבדל בין קוד פתוח לתכנה חופשית, ההקבלה בין חופש תוכנה לחופש האזרח

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

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

ניתן להגדיר תוכנה חופשית כתוכנה המעניקה למשתמש בה מספר חרויות בסיסיות:

  • החופש להשתמש בתוכנה לכל מטרה (חירות 0).
  • החופש ללמוד את דרכי פעולת התוכנה ולהתאים אותה לצרכיו (חירות 1). כדי לממש את חירות זו, נדרשת גישה לקוד המקור של התוכנה.
  • החופש להפיץ מחדש עותקים של התוכנה לאנשים אחרים כדי לסייע להם (חירות 2).
  • החופש לשפר את התוכנה ולשחרר את השיפורים לציבור כדי שכל הקהילה תרוויח מכך (חירות 3). כדי לממש את חירות זו, נדרשת גישה לקוד המקור של התוכנה.

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

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

ברור לכולם שחירויות 1-3 אינן פיצ'רים נפוצים של תוכנה קניינית, אבל רק שתבינו כמה רחוק מוכנים מיקרוסופט ללכת, אפילו חירות 0 איננה מובנה מאליה בעניהם. היה ניסיון, נדמה לי ברשיון אופיס 2003, לאסור על קונים להשתמש בfrontpage לשם ייצור אתרי פארודיה או שנאה נגד מיקרוסופט. הענין נפל כמובן מיידית בבית משפט על התיקון הראשון לחוקה האמריקנית, אבל אי אפשר שלא להאשים אותם בנסיון.

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

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

ולכן בהרצאה עשיתי הקבלה לחרויות שניתנות לי בדמוקרטיה:

  • חירות 0 – מקבילה לחופש הפעולה והדיבור
  • חירות 1 – סיפוק הסקרנות האישית – שמידע לא יוסתר מהאזרחים, יצונזר או יסולף. הלוואי שבישראל זה היה מובן ופועל כראוי…
  • חירות 2 – החופש לעזור לאחרים, זכות שבמדינות מסוימות לא רואים בעין יפה, במיוחד אם מדובר בעזרה למיעוטים חלשים. גם בזה ישראל לא מקבלת ציון 10.
  • חירות 3 – הכוח לשנות ולהקים קהילות, התארגנויות, ועדי שכונה, עמותות ותנועות לעזרה הדדית, צמצום פערים- זכות שלא כולם משתמשים בה לצערי. בנוסף, אם יש צורך, יש להן את הכח לבקר את המשטר ואת נציגיו ולפעול למען שינוי וקידום רעיונות (למשל להקים מפלגה ולרוץ למועצה או לכנסת)

אני מקווה אם כך שהענין הובהר, כי זה מתקשר לפוסט הבא :-)

11 Replies to “ההבדל בין קוד פתוח לתכנה חופשית, ההקבלה בין חופש תוכנה לחופש האזרח”

  1. עירא, קודם כל תודה רבה על ההשקעה והזמן – תמיד רציתי להבין יותר בתחום הזה של "חופש מידע" ובעיקר ההבדל בין קוד פתוח לתוכנה חופשית.

    אבל עירא, יש לי בעיה, ואני באמת אומר את זה בכנות: אני בנאדם די פשוט, אולי אף פשטני – ובזמן שאתה מסביר בהרחבה על ההבדלים הניכרים ועושה הקבלות (שחלקן מאוד עזרו להבין) – אני שואל את עצמי מה ההבדל בתכל'ס בין תוכנה חופשית לקוד פתוח?

    האם בתוכנה חופשית אתה מתכוון ל freeware כפי שהגולש הטיפוסי תופס אותו? או על Open source software/ platform?

    הרי open source זה קוד פתוח לא?

    הגדרת פה תוכנה חופשית ב 4 נקודות, שאני רואה כ open source – בעיקר בנקודות 2,4.

    האם ההבדל בין תוכנה חופשית ל open source הוא הפיתחון והאפשרות של כל אחד לאלתר ולשפר את התוכנה לצרכיו, מבלי לשנות את "ייעוד" התוכנה הראשוני?

    קיצר – אני די מבולבל ולכן יכול להיות שהשאלות לא כל כך ברורות, תודה על הסבלנות!
    זיגמונד

    1. מעניין ששתי הדוגמאות שנתת, Sourceforge ו־github מספקות שרותי אירוח תוכנה לא לשם שמיים או למען קידום האידאולוגיה, אלא כדי לפרסם את שרותי התוכנה הקניינית (במקרה של Sourceforge) או האחסון (במקרה של github).

      אם מתעקשים להבדיל בין Open Source לבין Free Software, הרי ש־Sourceforge נוצרה ע"י חברה שהיא Open Source ברמ"ח איבריה.

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

  2. עירא פה טועה טעות שהיא, למרבה הצער, יחסית נפוצה.

    בקצרה – אין הבדל בין תוכנה חופשית לקוד פתוח. בשני המקרים מכוונים לאותה התוכנה. כל ההבדל מתמצא בשאלה "מי עושה". התוכנה היא אותה התוכנה. ההבדל הוא באנשים.

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

    ארגון ה-Open Source Initiative, מצד שני, בא ממקום אחר לגמרי. הגישה שלהם אומרת שתוכנה חופשית היא הדבר הנכון, הן כלכלית והן מעשית. לאור זאת, לא צריך לקרוא לתוכנה קניינית בשמות – כוחות השוק כבר ידאגו לזה.

    ושוב, התוכנה היא אותה התוכנה.

    שחר

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

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

    קוד פתוח, לרוב האנשים, משמעותו "איזה יופי, דפדפן בחינם!" ולא יותר. דפדפנים כמו אופרה וספארי הם freeware, מחולקים חינם אבל ללא קוד או החופש למשתמש לשפר אותם, וזו אחת מהסיבות אין להם ענן של משפרים (ומעריצים) כמו לפיירפוקס. אם לא הצלחתי להעביר את ההבדל הזה זה חבל לי, וברור לי שקשה להסביר את המונח למי שלא מתכנת.

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

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

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

    1. התנגדות לפטנטים היא גם באופן כללי אינטרס של השחקנים הקטנים בשוק התוכנה. לכן גם כמעט כל אנשי ה"קוד הפתוח" להגדרתך ישתתפו במאבקים נגד פטנטים. וגם חברות תוכנה קניינית כמו אופרה. זה, באוםן כללי, גם היחס לתקנים פתוחים. ר' גם המאבק של סאן ו־IBM עבור תקן ה־ODF.

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

      אז מתוך שלא לשמה, בא לשמה, לפחות בתחום התוכנה. האם גם בתחומים אחרים?

      1. "התנגדות לפטנטים היא גם …" – אז? אם ביבי יתנגד פתאום לשאיבת יתר של הכנרת זה עושה אותו סביבתי או אותי לליכודניק? אני לא הבנתי את הפסקה הזו.

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

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

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

        באותה צורה IBM נלחמה בSCO ומשתמשת במליוני שרתי גנו/לינוקס, אבל רושמת פטנטים ומייצרת תוכנה קניינית, וכמוה אלפי ארגונים נוספים.

        1. אנחנו מוכרים חומרה עם תוכנה. אנחנו מספקים גם תמיכה לחומרה ולתוכנה שאנחנו מוכרים.

          אם מישהו שינה את התוכנה "שינויים לא נתמכים", שלא יצפה לקבל מאיתנו תמיכה לתוכנה. אבל זו כמובן זכותו המלאה.

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

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

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

          האם קיימת הצטלבות אינטרסים כזו גם בתחומים אחרים?

          1. האם אתם מחלקים את הקוד או שתוכנת הניהול שלכם קניינית? לחלופין האם הקוד שלה מתועד?

            לגבי שם התוכנה – אני יודע, אני אנושי, גם לי יש תקלדות.

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

להגיב על צפריר כהן לבטל