This translation may not reflect the changes made since 2003-10-30 in the English original.

Please see the Translations README for information on maintaining translations of this article.

מדוע ”תוכנה חופשית“ עדיפה על ”קוד פתוח“

גם אם תוכנה חופשית בשמות אחרים תיתן לכם את אותו חופש, יש חשיבות רבה לשם בו אנו משתמשים: מילים שונות נושאות משמעויות שונות.

ב1998, החלו חלק מהאנשים בקהילת התוכנה החופשית (Free Software) להשתמש במונח “תוכנת קוד-פתוח” (Open Source Software) במקום “תוכנה חופשית” כדי לתאר את מה שהם עושים. המונח ”קוד פתוח“ הפך במהרה מקושר לגישה שונה, פילוסופיה שונה, ערכים שונים, ואפילו קריטריונים שונים לסוג הרשיונות המקובלים. תנועת התוכנה החופשית ותנועת הקוד הפתוח מהוות כיום למעשה תנועות נפרדות עם השקפות שונות ומטרות שונות, למרות שאנחנו יכולים לעבוד יחד ואכן עובדים יחד על כמה פרוייקטים מעשיים.

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

היחסים בין תנועת התוכנה החופשית ותנועת הקוד הפתוח

תנועת התוכנה החופשית ותנועת הקוד הפתוח הן כמו שני מחנות פוליטיים בקהילת התוכנה החופשית.

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

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

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

אז אנא הזכירו את תנועת התוכנה החופשית כשאתם מדברים על העבודה שעשינו ועל התוכנה שפיתחנו”קוד פתוח“ – כמו למשל מערכת ההפעלה גנו\לינוקס.

השוואת שני המושגים

שאר מאמר זה משווה את שני המושגים  ”קוד פתוח“ ו”תוכנה חופשית“. הוא מראה מדוע המושג ”קוד פתוח“ לא פותר שום בעיה, ולמעשה יוצר בעיות חדשות.

אי-בהירות

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

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

ההגדרה הרשמית של ”תוכנת קוד-פתוח“, כפי שפורסמה במיזם הקוד הפתוח, קרובה מאוד להגדרה שלנו של תוכנה חופשית; אולם היא רופפת יותר במובנים מסויימים, והם קיבלו מספר רשיונות שאנו מחשיבים מגילים למשתמשים במידה בלתי קבילה. אולם המשמעות המתבקשת למונח ”קוד פתוח“ היא ”אפשר לראות את קוד המקור.“ זה קריטריון חלש בהרבה מתוכנה חופשית; הוא כולל תוכנה חופשית, אך גם תוכנות כמה קנייניות (proprietary), כמו Xv, ו Qt במסגרת הרשיון המקורי (לפני ה-QPL).

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

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

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

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

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

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

הפחד מהחופש

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

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

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

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

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

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

אם אלו המשתמשים במונח ”קוד פתוח“ מושכים משתמשים נוספים לקהילה שלנו, זוהי תרומה, אך אנו, הנותרים, נצטרך לעבוד אפילו קשה יותר כדי להביא את נושא החופש לתשומת לבם של המשתמשים האלו. עלינו לומר,”זו תוכנה חופשית והיא נותנת לך חופש!“ – יותר ובקול רם יותר מאי-פעם בעבר.

האם סימן מסחרי יעזור?

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

אבל האם השימוש במונח שהוא סימן מסחרי ישנה הרבה? לא בהכרח.

היו חברות שהשמיעו הכרזות מהן משתמע שתוכנה היא ”תוכנת קוד פתוח“, מבלי לומר זאת במפורש. למשל, הכרזה של IBM אודות תוכנה שלא התאימה להגדרה הרשמית, אמרה כך:

כפי שמקובל בקהילת הקוד הפתוח, משתמשים בטכנולוגיית ה ... יוכלו גם הם לשתף פעולה עם IBM ...

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

וכך חברת Cygnus Solutions, שנוסדה כחברת תוכנה חופשית ולאחר מכן הרחיבה פעילותה (אם ניתן לקרוא לזה כך) לתחום התוכנה הקניינית, פרסמה כמה מוצרי תוכנה קניינית:

Cygnus Solutions היא מנהיגה בשוק הקוד הפתוח וזה עתה השיקה שני מוצרים לשוק ה[גנו\]לינוקס.

שלא כמו Cygnus, IBM כלל לא ניסתה להפוך חבילות אלו לתוכנה חופשית, והן לא התקרבו אפילו לעמידה בדרישות. אבל Cygnus לא ממש אמרה שאלו ”חבילות תוכנה חופשית“, היא רק ניצלה את המונח כדי לעשות רושם כזה על קוראים לא זהירים.

מקרים אלה מצביעים על כך שסימן מסחרי לא היה פותר באמת את הבלבול הכרוך במושג ”קוד פתוח“.

פירושים מוטעים(?) של ”קוד פתוח“

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

בכינוס ”יום מפתחי הקוד הפתוח“ (Open Source Developers Day) באוגוסט 1998, כמה מהמפתחים המסחריים שהוזמנו אמרו שהם מתכוונים להפוך רק חלק מעבודתם לתוכנה חופשית (או ”קוד פתוח“). עיקר עבודתם בפיתוח תוספים קנייניים (תוכנה או מדריכים) שימכרו למשתמשי התוכנה החופשית. הם מבקשים שנתייחס לעבודתם כמוצדקת, כחלק מהקהילה שלנו, מאחר שחלק מהכסף נתרם לפיתוח תוכנה חופשית.

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

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

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

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

בתערוכה מקצועית בשלהי 1998, שהוקדשה למערכת ההפעלה המכונה לעיתים קרובות “לינוקס”, אחד הדוברים היה מנהל בחברת תוכנה ידועה. ככל הנראה, הוזמן בשל החלטת החברה ”לתמוך“ במערכת. לרוע המזל, פירוש ה”תמיכה“ היה הפצת תוכנה לא-חופשית שעובדת עם המערכת”קוד פתוח“ – במילים אחרות, שימוש בקהילה שלנו כשוק, מבלי לתרום לה דבר.

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

אנשים בקהל אמרו לי מאוחר יותר, ”הוא פשוט מחמיץ את העיקרון.“ האמנם? איזה עיקרון החמיץ בעצם?

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

העיקרון שהחמיץ הוא העיקרון ש”קוד פתוח“ נועד להצניע: העיקרון לפיו המשתמשים זכאים לחופש.

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


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