קוד פתוח
קוד פתוח (באנגלית: Open source) היא פילוסופיה בתחומי הפיתוח טכנולוגי והייצור שמקדמת הפצה חופשית וכן גישה, יכולת עריכה והפצה מחודשת של ה"קוד" המידע הדרוש לעיצוב וליישום של מוצרים ושירותים. הדוגמה המוכרת ביותר לקוד פתוח היא תוכנות קוד פתוח כמו מערכת ההפעלה לינוקס, הדפדפן פיירפוקס, שרתי אפאצ'י ועוד מאות תוכנות אחרות, אך קיימת גם תנועת חומרת קוד פתוח שיוצרת בסיס ידע ומתודולוגיות להכנת מוצרים ממשיים כמו טרקטור או מדפסת בקוד פתוח.
שיטת פיתוח ועיצוב של קוד פתוח מאפשרת לכל מי שחפץ בכך ושיש לו זמן, ידע ומשאבים מספיקים לקחת חלק בפיתוח התוכנה או הקוד ולתרום לשיפורה. מושג קרוב הוא "תוכנה חופשית". לעתים כוללים את שניהם ביחד כ"תוכנה חופשית וקוד פתוח" (ראשי תיבות FOSS או FLOSS באנגלית: Free/Libre and Open Source Software).
יש להבחין בין קוד פתוח לבין קוד נגיש – מצב שבו ניתן לראות את הקוד אך אסור לבצע בו שינויים. מצב זה אינו נופל תחת הקטגוריה של קוד פתוח.
תוכנות קוד פתוח
באופן כללי תוכנות קוד פתוח הן תוכנות שקוד המקור שלהן (שכתוב בשפת תוכנה שמהנדס תוכנה אנושי יכול לקרוא) זמין לציבור הרחב. ניתן להשתמש בקוד התוכנה כמו שהוא, או לבצע בו שינויים. בדרך כלל תכונות קוד פתוח מפותחות על ידי קהילות שבונות את התוכנה במאמץ שיתופי. מתכנתים מעצבים ואנשים אחרים (לדוגמה מעצבים גרפים, אנשי בדיקות, משתמשים), לעיתים קרובות קיים גם מפתח ראשי שתרם את החלק העיקרי של הקוד או החל את הפיתוח הראשוני והוא "הרוח החיה" של הפרוייקט. בדרך כלל יש שיתוף של הקוד על שרתים באינטרנט ותוכנות יעודיות לשם שיתוף גרסאות ובדיקות של קוד חדש שנכנס.
אדם או קבוצה שרוצים לפתח מוצר תוכנה שיהיה בעל תכונות שונות מאלו של מוצר קוד פתוח אחר, יכולים לבצע "פורק" או "מיזלוג" שבה הם מעתיקים את הקוד למקום אחר, ושם מתחילים לבצע בו שינויים. בכל נערך תהליך אבולוציוני שבו לעתים פרוייקט אחד מוחלף על ידי פרוייקט אחר, כאשר הפרוייקט המקורי יכול לגווע או ששני הפרוייקטים ממשיכים במקביל. דוגמה להיבט כזה הוא הפצת מערכת ההפעלה לינוקס. לשם צרכים שונים קיימות בעצם מספר מערכות הפעלה מסוג לינוקס, כאשר יש 3-4 הפצות ראשיות (פדורה, אובונטו, רד-הט) ועוד כמה מאות הפצות משניות יותר.
יתרונות וחסרונות
קוד פתוח נוצר בקהילת הקוד הפתוח כמענה לקוד המסחרי שהוא רכוש המוגן בזכויות יוצרים ונמצא בדרך כלל בבעלות של תאגידים. בשל יתרונות לגודל של הפצה רשתית של קוד, מתקיים לא פעם שתוכנה אחת הופכת להיות מונופול בסקטור השוק שלה. לדוגמה התוכנה לעיבוד תמלילים וורד, גליון הנתונים אקסל, או התוכנה לעיבוד תמונות פוטו-שופ.
יתרונות הקוד הקנייני הוא שהוא מפותח בתשלום, ולכן מעניק מוצר קצה בעל יכולות גבוהות ובדרך כלל הוא ידידותי למשתמש, כמו כן לעיתים קרובות הוא הופך להיות תקן בתעשייה כך שכולם מכירים אותו. היתרון הגדול של מוצרים בקוד פתוח הוא שברוב המקרים הם ניתנים בחינם. דבר זה מאפשר הפצה קלה ומהירה שלהם גם בקרב מדינות עולם שלישי וכן בקרב ממשלות שאינן מעוניינות לשלם סכומים גבוהים לרישיונות תוכנה.
בעיה נוספת של תוכנה קניינית היא שלעיתים נוצרת גם נעילה טכנולוגית כאשר לחברה שמפתחת את מוצר התוכנה יש תמריץ נמוך להכניס בו שינויים ושיפורים לאחר ביסוסו של מונופול. בכל מקרה החברה המסחרית כפופה לאילוצים מסחריים שונים שמקשים על המשתמשים. לדוגמה יש חברות מסחריות שהתוכנה שלהם לא מסוגלת לפתוח סוגי קבצים שנוצרו על ידי מוצרים של חברות אחרות. היבט אחר הוא צורך ברישום משתמשים, חלוקת מפתחות ועוד שיטות כדי למנוע שימוש פיראטי בתוכנה, דבר שמקשה את השימוש בקוד מסחרי ואינו קיים בקוד פתוח.
יתרון נוסף של תוכנות קוד פתוח הוא שקל יחסית להרחיב אותן, לבנות להן תוספים ושיפורים שונים. הדוגמה הבולטת לכך היא דפדפן שועל אש, שמכיל מאות תוספות אפשרויות, כמו תוכנות להורדת וידאו, תוכנות אבטחה, דיבאג של דפי רשת, ניהול הורדות וכו'.
מבחינה כלכלית, קיימת טענה כי לתאגידי חומרה יש אינטרס בקידום של קוד פתוח בתוכנה, משום שתוכנה היא מוצר משלים לחומרת מחשבים. ככל שאנשים יוכלו להשתמש במחשבים בצורה זולה יותר, בין היתר על ידי הורדת מחיר התוכנות, תישאר להם הכנסה פנויה רחבה יותר להשקיע בחומרה.
מבחינה כלכלית גישת הקוד הפתוח מביאה פתרון שהוא חופשי ודמוקרטי יותר מגישת השוק החופשי שכן מספקים מוצר שהעלות שלו קרובה לאפס (העלות מורכבת גם מזמן הלימוד המושקע בלימוד התוכנה לדוגמה), ובנוסף הלקוח יכול, אם הוא רוצה בכך לערוך במוצר שינויים ולהתאים אותו לצרכיו, או לשכור מומחה שיבצע שינויים קלים בתוכנה או בעיצוב ויתאים אותו לצרכיו. קיימות דוגמאות רבות לדבר זה.
מבחינת תפיסה קוד פתוח התפתח גם להיבטים אחרים של שיתוף ושקיפות כמו נתונים חופשיים והחשיבות של ממשל בקוד פתוח וקיום שם מוסדות חברתיים שהם שקופים וניתנים לשינוי על ידי הציבור.
דוגמה למערכת הפעלה בקוד פתוח היא הפצות לינוקס לסוגיהן. יש מאות סוגים של תוכנות שמסוגלות לרוץ במערכת הפעלה זו. יש תוכנות קוד פתוח רבות שמסוגלות לרוץ גם במערכת הפעלה קנייניות כמו חלונות ואפל. דוגמאות לתוכנות קוד פתוח כוללות תוכנת שרת האינטרנט אפאצ'י-טום קאט, את ליברה אופיס לעיבוד תמלילים, דפדפן פיירפוקס (שועל אש), GIMP לעיבוד מתקדם של תמונות ועוד. שפות פיתוח תוכנה בקוד פתוח כוללות את פרל, פייתון ו-PHP. מערכות לבסיסי נתונים כוללים את MySQL ופתרונות נוספים. ישנן מערכות רבות לפתרונות רשת כשבין המפורסמות ביניהן הן וורדפרס לבלוגים, ומדיה-ויקי לוויקי ודורפל שמשמשת להכנת אתרים.
פרוייקטים רבים של מידע שיתופי פותחו על גבי תוכנות של קוד פתוח. הדוגמה המפורסמת ביותר לכך היא ויקיפדיה שפותחה על גבי מדיה-ויקי, ודוגמה נוספת אחרת היא Open street map שמספקת מפה חופשית. דוגמאות מישראל כוללות בין היתר את אתר כנסת פתוחה, אתר בידיים, אקו-ויקי ועוד דוגמאות נוספות.
מאגרי קוד חופשיים
תרבות הקוד הפתוח הביאה עימה יצירה והנגשה של מאגרי קוד לכלל הציבור, אשר השימוש בהם פתוח וחינמי וזמין לכל אדם שרוצה לאחסן ולפרסם קודים שלו לשימוש הרבים.
המונח מאגר קוד (באנגלית: Code storage) משמש לתאר אתר אינטרנט בו כל אדם יכול לפתוח חשבון ולאחסן ולארגן קוד מקור של תוכנות שכתב. בדרך כלל ישנה יכולת אוטומטית לבחור את רישיון הקוד וכן בדרך כלל ישנו מאפיין של ניהול גרסאות לכל "ענף" קוד (כל קובץ אחד לפחות של קוד). דוגמאות נפוצות הן אתר github.com והאתר bitbucket.com.
כל מתכנת, לא משנה איך למד תכנות וכמה תכנות למד, יכול לפרסם קוד מקור שם ולהציג אותו למעסיק כולל להסביר עליו.
ראו גם
קישורים חיצוניים
- קוד פתוח בוויקיפדיה האנגלית
- המקור עמותה ישראלית לקוד פתוח ותוכנה חופשית
- ליאור קפלן, ההחמצה של מערכת החינוך: לשימוש בקוד פתוח יתרונות כלכליים וטכנולוגיים, דה מרקר, 18.10.2017