גיליון 04

שיתוף ופתיחות בעידן המידע: מקוד פתוח לחברה אחרת

שיתוף ושליחה

בעשור האחרון הופיע סוג חדש ואכזרי במיוחד של רגעי ייאוש בחייך.

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

 

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

מודל ה'קוד הפתוח'
בעולם מקובלים כמה מודלים של תהליכי פיתוח תוכנה. מודל אחד הראוי לתשומת לב מיוחדת, הוא זה המבוסס על העיקרון ה Open Source או 'קוד-פתוח'.  חלק ניכר מהתוכנות המניעות את האינטרנט פותחו באמצעות מודל ה'קוד-הפתוח', לרבות מערכת ההפעלה Linux (מתחרה של Windows) התוכנה Apache Web Server, תוכנות תשתית של דואר אלקטרוני. רבים מ'שרתי האינטרנט' בעולם (המחשבים עליהם נמצאים אתרי האינטרנט), פועלים באמצעות Apache ו Linux. ישנן מספר סיבות להצלחה של תוכנות אלו על גבי מחשבי התשתית של רשת האינטרנט: הן יציבות – שרתי אינטרנט מבוססי Linux ו Apache יכולים לעבוד ברציפות ובאינטנסיביות רבה במשך חודשים ושנים; הן יעילות ומנצלות היטב את היכולת של המחשב – אין צורך לשדרג את המחשב כל שנה כי הוא 'כבר חלש'; הן מתאימות בדיוק לצרכים של 'מנהלי הרשתות' המשתמשים בהן ופשוט עושות את העבודה – לא יותר ולא פחות.

מהו מודל קוד-פתוח? כאן נחוץ הסבר טכני קצר (לא צריך להבהל): מבחינה טכנית, המודל פשוט מאד – יחד עם התוכנה עצמה, זאת ש'רצה' במחשב, מפיצים מפתחי התוכנה  את 'קוד המקור' (או בקיצור ה'קוד') שלה. הקוד הוא רשימת ההוראות בשפת מחשב 'עילית' (כמו (C בה כותבים המתכנתים. קוד הופך לתוכנה על ידי תרגום אוטומטי, המתבצע בעזרת כלי מיוחד הנקרא compiler או 'מהדיר'. תוצאת התרגום, ה'תוכנה', היא קובץ שתוכנו בלתי קריא לעין אנושית והוא אינו ניתן לעריכה ושינויבאופן סביר. לעומת זאת קוד המקור ניתן לעריכה. המשמעות היא כי הגישה לקוד המקור מאפשרת לכל אחד שיש לו ידע בתכנות לשנות ולהוסיף תכונות לתוכנה המקורית ולתקן בה פגמים. במילים אחרות מודל הקוד-הפתוח מאפשר אבולוציה 'טבעית' של תוכנה. בניגוד לתוכנת Windows,למשל, שאינה מופצת עם קוד המקורואינה ניתנת לשינוי אלא על ידי Microsoft, מופצת Linux עם קוד המקור וכל אחד יכול לשנותה.

קהילות של מפתחי-תוכנה ומשתמשי-תוכנה

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

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

 

אבל האם זה 'מסחרי'?

  כדי למנוע ניצול לרעה מבוסס מודל הקוד הפתוח, גובש עיקרון ה  'copyleft' (בניגוד ל copyright): מי שמפיץ את התוכנה (בגרסתה המקורית או המשופרת) חייב לתת למשתמשים את אותם זכויות שנהנה מהן הוא עצמו ביחס לתוכנה (להשתמש בתוכנה לכל מטרה, לשנות ולהתאים אותה ללא מגבלה, להפיץ אותה בגירסתה המקורית או המעודכנת…)כלומר – מעגל החירויות שהיה בתוכנה הגרעינית נשמר גם כשהתוכנה משתכללת ועוברת מגורם לגורם.למרות זאת, תוכנה חופשית אינה בהכרח לא מסחרית. ניתן למשל להפיץ תוכנה כזאת בתשלום גם אם היא פותחה על ידי אחרים, ויש חברות רבות העושות זאת. החברה Redhat למשל, מפיצה בתשלום את Linux עם קוד המקור. כיוון שהיא נותנת ערכים מוספים, כגון תמיכה ותיעוד, יש רבים הקונים מ Redhat למרות ש Linux ניתנת גם להורדה חינם באינטרנט.

המודל של קוד פתוח התפתח באוניברסיטאות בשנות השבעים והשמונים של המאה ה-20 ושאף מהרוח האקדמית של שיתוףהידע והרחבתו בקהילה, חתירה תמידית לשכלול, חירות המחשבה, וקידום היוקרה האישית של חברי הקהילה על ידי תרומה איכותית. ההצלחה של חלק מתוכנות הקוד הפתוח גרמה לאחרונה להתעניינות של חברות מסחריות גדולות כמו Sun, IBM, Dell, HP. חברות אילו מעודדות פיתוח תוכנה שתרוץ על תשתית של Linux, בעיקר כדי לחזק את התחרות מול הדומיננטיות של Microsoft בשוק התוכנה (קוד המקור של Microsoft וחברות תוכנה נוספות הוא סוד מסחרי שמור בקפידה). גורמי ממשל ברחבי העולם מתקינים תוכנות קוד פתוח ומעודדים את השימוש בהן. הסוכנות לביטחון לאומי בארה"ב (NSA) מסייעת לפיתוח גרסה מאובטחת של Linux. הממשלה הסינית מעודדת שימוש בLinux   בעסקים סינים כדי לחסוך עלות קניה של מערכות הפעלה אחרות, ולמזער את הצורך בשדרוג מחשבים (כאמור, Linux חסכונית מבחינת משאבי המחשב). גם בכנסת ישראל נערכו לאחרונה דיונים סביב שימוש בתוכנות קוד פתוח זולות במערכת הציבורית מול השימוש בתוכנות היקרות יותר של Microsoft.

עתיד פתוח למודל ה'הקוד הפתוח'

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

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

The Free Software Definitionwww.gnu.org/philosophy/free-sw.html

Eric S. Raymond , The Cathedral and the Bazzarwww.firstmonday.dk/issues/issue3_3/raymond/

www.knesset.gov.il/committees/heb/online/protocol.asp?tid=37  דיון בכנסת בנושא קוד פתוח.

שיתוף ושליחה