קוד פתוח

לוגו של יוזמות קוד פתוח
קוד פתוח משמש בעולם התוכנה לציון תוכנה שקוד המקור שלה נגיש (זמין לצפייה) וכן חופשי לשימוש, לעריכת שינויים ולהפצה מחודשת לכל. שיטת פיתוח כזו מאפשרת לכל מי שחפץ בכך לקחת חלק בפיתוח התוכנה ולתרום לשיפורה. מושג קרוב במשמעותו הוא "תוכנה חופשית". לעיתים שניהם נכללים ביחד כ"תוכנה חופשית וקוד פתוח" (באנגלית: Free/Libre and Open Source Software ובראשי תיבות FOSS או FLOSS).

היותה של תוכנה קוד פתוח משמעותה איננה בהכרח שהיא תוכנה חופשית. אנדרואיד למשל, היא מערכת הפעלה חינמית וקוד פתוח ו-Red Hat Enterprise Linux, היא הפצת לינוקס מסחרית וקוד פתוח.

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

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

המונחים קוד פתוח ותוכנה חופשית הם מונחים קרובים במשמעותם המעשית, ומשמשים לעיתים קרובות לציון משמעות זהה, אך נבדלים באידאולוגיה שמאחוריהם. את המונח תוכנה חופשית טבע ריצ'רד סטולמן אשר ייסד את פרויקט GNU ואת המוסד לתוכנה חופשית (Free Software Foundation), והוא מתרכז בחופש המוענק למשתמש בתוכנה כערך חברתי. המונח קוד פתוח מגיע מארגון יוזמת הקוד הפתוח (Open Source Initiative), והשיקולים העומדים מאחוריו הם של כדאיות כלכלית וטכנולוגית.

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

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

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

===גורמי הנעה בתחום===
באופן כללי, מחלקים המחקרים את גורמי ההנעה לשלושה סוגים: צרכים פנימיים, צרכים חיצוניים וצרכים משולבים (Internalized Extrinsic).

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

===מחקר והמלצות===
מחקר אמפירי בנושא סקר שלושה פרויקטים של קוד פתוח בקהילת אפאצ'י (Apache). מהמחקר עלו הממצאים הבאים:

# ישנם קשרים שונים בין גורמי המוטיבציה השונים – בפרט אין סתירה בין מוטיבציה פנימית וחיצונית, מוטיבציית מעמד מגבירה מוטיבציה פנימית ומוטיבציה חיצונית תורמת למוטיבציית מעמד (לפירוט הקשרים ראו איור 2 במאמר).
# ישנם גורמי מוטיבציה משמעותיים יותר ופחות – מוטיבציה חיצונית ומוטיבציית מעמד קשורות להשתתפות מעל הממוצע, בעוד מוטיבציית ערך שימושי קשורה להשתתפות מתחת לממוצע.

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

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

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

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

בין הדוגמאות הידועות והמצליחות הנוספות ניתן למנות את פרויקט גיט (Git) שמטרתו לסייע למפתחים בניהול קוד, תיאום עבודה צוותית ומעקב אחר שינויים בקובצי תוכנה, Node.js המהווה סביבת ריצה לשפת JavaScript, שמאפשרת לקוד לרוץ ללא צורך בדפדפן; Docker, פרויקט קוד פתוח המספק שכבת הפשטה ואוטומציה להתקנת והרצת יישומים בתוך קונטיינרים (מכולות) על גבי Windows, macOS ו-Linux; האדופ (Hadoop), פרויקט קוד פתוח של מוסד התוכנה אפאצ'י המגדיר מסגרת תוכנה ליישום מבוזר המעבד כמויות גדולות של נתונים (Big Data); אלסטיקסרץ (Elasticsearch), מנוע חיפוש המבוסס על Lucene, המספק יכולת multitenant מבוזרת לחיפוש מעל טקסט מלא. 

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

==ראו גם==
* תוכנה חופשית
* מונחים בתוכנה
* יצרן תוכנה בלתי תלוי
* חומרה פתוחה
* מערכת פתוחה

==קישורים חיצוניים==

* אריק ס. ריימונד, [http://www.isoc.org.il/magazine/magazine3_8.html הקתדרלה והבזאר], בתרגום עדי סתיו, אלירן גונן ושלומי פיש
* ריצ'רד סטולמן, [http://www.oreilly.com/openbook/freedom/ Free as in Freedom]
* דו"ח: [https://web.archive.org/web/20050715102645/http://www.csc.com/features/2004/uploads/LEF_OPENSOURCE.pdf קוד פתוח - פתוח לעסקים]
* [http://opensource.org/licenses/ רשימת רישיונות קוד פתוח על פי ארגון הקוד הפתוח]
* המקור – [http://www.hamakor.org.il/ עמותה ישראלית לתוכנה חופשית ולקוד מקור פתוח]
* [https://maakaf.netlify.app/ מעקף - קהילת קוד פתוח ישראלית]

==הערות שוליים==

קטגוריה:תוכנה חופשית
קטגוריה:תרבות אינטרנט
קטגוריה:סוציולוגיה של הנתינה
קטגוריה:מונחים בתוכנה