יום ראשון, יוני 20, 2010

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

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

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

תרגיל בדמיון מודרך: חברה בשם Digital נרכשה על ידי Compaq שאחרי כמה שנים נרכשה על ידי HP. נסו לצייר בדמיונכם מה קרה לקוד של כל הפרוייקטים של שלושת החברות הללו ב־15 שנים האחרונות... (כמה עורכי דין היו דרושים להתיר את הפלונטר? כמה יהיו דרושים אם/כאשר יהיה פלונטר אמיתי).

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

אגב, לא צריך ניחושים באויר כמו שזרק עורך הדין. יש לנו כמה דוגמאות היסטוריות של מוצרי תכנה קיניינים גדולים שהפכו למוצרי קוד פתוח -- רק לפתור את הספגטי של הרשיונות הקנייניים לקח לכל פרוייקט כזה לפחות שנה של עבודה טכנית/משפטית. בחלק מהמקרים זה גם גרר ויתור על יכולות שהיו במוצר המקורי ולא היה ניתן לפתור את בעיות הרישוי שלהם.
מי שעוסק בעובדות במקום ספקולציות והפחדות בוודאי יודע לאיזה דוגמאות התכוונתי:
  • Mozilla
  • XFS
  • JFS
  • OpenOffice.org
  • Java

לקינוח, מעט נתונים מספריים. מתוך מחשב אחד שלי הפקתי רשימת רשיונות וספרתי כמה חבילות מכוסות על ידי כל רשיון -- והרי תשעת המובילים (פדורה 13 עם KDE ו־GNOME למי שסקרן):
  • 24 - Public Domain (technically, not a license)
  • 30 - GPL+
  • 42 - GPLv3+
  • 44 - LGPLv2
  • 91 - BSD
  • 133 - GPLv2
  • 142 - MIT
  • 271 - LGPLv2+
  • 323 - GPLv2+
סה"כ 1100 חבילות מכוסות על ידי 9 רשיונות בלבד. כולם ידועים ומפורסמים. אגב, באותו מחשב יש עוד יותר מ־250 חבילות שפשוט מאפשרות הרכבה של כמה רשיונות. לדוגמא:
  • 9 - MPLv1.1 or GPLv2+ or LGPLv2+
  • 2 - MIT and GPLv2
ויש כמובן מספר חבילות בעלי רשיון יחודי משלהן. כמה דוגמאות מפורסמות:
  • 1 - ImageMagick
  • 1 - OpenSSL

בקיצור: עם תכנה חופשית -- למעלה מ־1000 חבילות מכוסות על ידי 9 רשיונות בלבד.

כמה רשיונות נצטרך לנהל למוצר קנייני המכיל רק 50 מרכיבים חיצוניים? כמה עורכי דין נצטרך כדי לוודא ש־50 הרשיונות תואמים אחד לשני (ולדרישות החוק במדינה שלנו, או מדינות אחרות).

הוא שאמרתי: בית משוגעים.

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