מהי תוכנת קוד פתוח, ולמה זה משנה?
גיקים מתוארים לעתים קרובות תוכניות כמו "קוד פתוח" או "תוכנה חופשית". אם אתה תוהה בדיוק מה משמעותם של אלה ולמה הם חשובים, לקרוא על. (לא, "תוכנה חופשית" לא רק אומר שאתה יכול להוריד אותו בחינם.)
אם תוכנית היא קוד פתוח או לא לא רק משנה למפתחים, זה בסופו של דבר חשוב עבור המשתמשים, יותר מדי. רישיונות תוכנה של קוד פתוח מעניקים למשתמשים חופש שלא היה להם.
קרדיט תמונה: קווין Dombrowski על Flickr
הגדרת קוד פתוח
אם תוכנית היא קוד פתוח, קוד המקור שלה זמין באופן חופשי למשתמשים שלה. המשתמשים שלה - וכל אחד אחר - יש את היכולת לקחת את קוד המקור, לשנות אותו, ולהפיץ גירסאות משלהם של התוכנית. למשתמשים יש גם את היכולת להפיץ כמה עותקים של התוכנית המקורית כפי שהם רוצים. כל אחד יכול להשתמש בתוכנית לכל מטרה; אין דמי רישוי או מגבלות אחרות על התוכנה. OSI יש הגדרה מפורטת יותר של "קוד פתוח" באתר האינטרנט שלה.
לדוגמה, אובונטו לינוקס היא מערכת הפעלה קוד פתוח. אתה יכול להוריד Ubuntu, ליצור עותקים רבים ככל שתרצה, ולתת אותם לחברים שלך. ניתן להתקין את אובונטו על כמות בלתי מוגבלת של המחשבים שלכם. ניתן ליצור רמיקסים של דיסק ההתקנה של אובונטו ולהפיץ אותם. אם היית מוטיבציה במיוחד, אתה יכול להוריד את קוד המקור של תוכנית ב אובונטו ולשנות אותו, יצירת גרסה מותאמת אישית משלך של התוכנית - או של אובונטו עצמה. רישיונות קוד פתוח מאפשרים לך לעשות זאת, בעוד שרשיונות של קוד סגור מניחים עליך מגבלות.
ההיפך של תוכנת קוד פתוח הוא תוכנת קוד סגור, שיש לה רישיון שמגביל את המשתמשים ושומרת על קוד המקור שלהם.
פיירפוקס, Chrome, OpenOffice, Linux ו- Android הם דוגמאות פופולריות של תוכנות קוד פתוח, ואילו Microsoft Windows היא כנראה היצירה הפופולרית ביותר של תוכנת קוד סגור.
קוד פתוח לעומת תוכנה חופשית
יישומים קוד פתוח הם בדרך כלל זמינים באופן חופשי - אם כי אין דבר לעצור את היזם מ לחייב עבור עותקים של התוכנה אם הם מאפשרים חלוקה מחדש של היישום ואת קוד המקור שלה לאחר מכן.
עם זאת, זה לא מה "תוכנה חופשית" מתייחס. "החופשי" בתוכנה חופשית פירושו "חופשי כמו בחופש" ולא "חופשי כמו בבירה". מחנה התוכנה החופשית, בראשותו של ריצ'רד סטולמן וקרן התוכנה החופשית, מתמקד באתיקה ובמוסר של שימוש בתוכנות שיכולות להיות הנשלט ושונה על ידי המשתמש. במילים אחרות, מחנה התוכנה החופשית מתמקד בחירויות המשתמש.
ריצ'רד סטולמן. תמונה של Fripog על Flickr.
תוכנת קוד פתוח התוכנה נוצרה להתמקד יותר סיבות פרגמטיות לבחירת סוג זה של התוכנה. תומכי קוד פתוח רצו להתמקד בהטבות המעשיות של שימוש בתוכנות קוד פתוח, שימשכו יותר לעסקים, ולא לאתיקה ולמוסר.
בסופו של דבר, הן קוד פתוח והן תומכי תוכנה חופשית מפתחים אותו סוג של תוכנה, אבל הם חולקים על ההודעות.
סוגי רישיונות
ישנם רישיונות שונים רבים המשמשים קוד פתוח פרויקטים, תלוי איזה מפתחים מעדיפים את התוכנית שלהם.
ה- GPL, או הרישיון הציבורי הכללי של GNU, נעשה שימוש נרחב בפרויקטים רבים של קוד פתוח, כגון Linux. בנוסף לכל ההגדרות לעיל של קוד פתוח, תנאי ה- GPL מציינים כי אם מישהו משנה תוכנית קוד פתוח ומפיץ עבודה נגזרת, הם חייבים גם להפיץ את קוד המקור של העבודה הנגזרת שלהם. במילים אחרות, אף אחד לא יכול לקחת קוד פתוח קוד וליצור תוכנית מקור סגור ממנו - הם חייבים לשחרר את השינויים שלהם בחזרה לקהילה. מיקרוסופט התייחסה ל- GPL כאל "ויראלי" מסיבה זו, שכן היא מאלצת תוכניות המשלבות קוד GPL כדי לשחרר את קוד המקור שלהם. כמובן, מפתחי התוכנית יכולים לבחור שלא להשתמש בקוד GPL אם זו בעיה.
רישיונות אחרים, כגון רישיון BSD, מניחים פחות מגבלות על מפתחים. אם התוכנית מורשית תחת רישיון BSD, כל אחד יכול לשלב את קוד המקור של התוכנית לתוכנית אחרת. הם לא צריכים לשחרר את השינויים שלהם בחזרה לקהילה. חלק מהאנשים רואים את זה הוא להיות אפילו יותר "חינם" מאשר רישיון GPL, כפי שהוא נותן למפתחים את החופש לשלב את הקוד לתוך תוכניות המקור שלהם סגור, בעוד כמה אנשים רואים את זה כמו להיות פחות "חינם" כי זה לוקח זכויות משם ממשתמשי הקצה של התוכנית הנגזרת.
יתרונות למשתמשים
זה לא כל דבר יבש, חשוב כי רק חשוב למפתחים. היתרון הברור ביותר של קוד פתוח התוכנה היא שזה יכול להיות בחינם. הדוגמה של אובונטו לינוקס לעיל עושה את זה ברור - שלא כמו Windows, אתה יכול להתקין או להפיץ כמו עותקים רבים של אובונטו כפי שאתה רוצה, ללא הגבלות. זה יכול להיות שרתים שימושיים במיוחד - אם אתה הגדרת שרת, אתה יכול פשוט להתקין את זה על לינוקס. אם אתה מגדיר אשכול וירטואלי של שרתים, תוכל בקלות לשכפל שרת אובונטו יחיד. אתה לא צריך לדאוג רישוי וכמה מקרים של לינוקס מותר לך לרוץ.
תוכנית קוד פתוח היא גם גמישה יותר. לדוגמה, הממשק החדש של Windows 8 מאוכזב הרבה זמן משתמשי שולחן העבודה של Windows. מאחר ש- Windows הוא מקור סגור, אף משתמש ב- Windows אינו יכול להשתמש בממשק Windows 7, לשנות אותו ולהפעיל אותו כראוי ב- Windows 8. (חלק ממשתמשי Windows מנסים, אך זהו תהליך קפדני של הנדסה הפוכה ושינוי קבצים בינאריים. )
כאשר שולחן העבודה של לינוקס כמו אובונטו מציגה ממשק שולחן עבודה חדש, כי משתמשים מסוימים לא אוהדים, למשתמשים יש יותר אפשרויות. לדוגמה, כאשר GNOME 3 שוחרר, משתמשי שולחן עבודה רבים של Linux הופסקו באותה מידה. חלק לקחו את הקוד לגירסה הישנה, GNOME 2, ושינו אותו כדי להפוך אותו לרוץ על הפצות לינוקס האחרונה - זה MATE. חלקם לקחו את הקוד ל- GNOME 3 ושינו אותו כדי לגרום לו לעבוד בצורה שהם העדיפו - זהו קינמון. חלק מהמשתמשים פשוט עברו לשולחנות עבודה חלופיים קיימים. אם Windows היה מקור פתוח, משתמשי Windows 8 היו יותר בחירה וגמישות. רק תסתכל על CyanogenMod, פופולרי, הקהילה הפצה מונחה של אנדרואיד המוסיפה תכונות ותמיכה עבור התקנים חדשים.
תוכנת קוד פתוח מאפשרת למפתחים "לעמוד על כתפיהם של ענקים" וליצור תוכנה משלהם. צפו ב- Android וב- Chrome OS, שהן מערכות הפעלה המבוססות על לינוקס ותוכנות קוד פתוח אחרות. הליבה של מערכת ההפעלה של אפל X - וגם עבור iOS - נבנתה על קוד פתוח. Valve הוא עובד בזעם על porting פלטפורמת המשחקים שלהם Steam ללינוקס, כמו זה יאפשר להם ליצור את החומרה שלהם לשלוט על הגורל שלהם בצורה שאינה אפשרית על Windows של מיקרוסופט.
זה לא תיאור ממצה - ספרים שלמים נכתבו על הנושא הזה - אבל עכשיו אתה צריך להיות רעיון טוב יותר של מה קוד פתוח התוכנה היא באמת ולמה זה שימושי לך.