מהי תוכנת קוד פתוח ומדוע זה משנה?

גיקים מתארים לעתים קרובות תוכנות כ"קוד פתוח "או" תוכנה חופשית ". אם אתה תוהה בדיוק מה המשמעות של מונחים אלה ולמה הם חשובים, המשך לקרוא. (לא, "תוכנה חופשית" לא רק אומרת שתוכלו להוריד אותה בחינם.)

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

קרדיט תמונה: קווין דומברובסקי בפליקר

הגדרת קוד פתוח

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

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

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

Firefox, Chrome, OpenOffice, Linux ו- Android הם כמה דוגמאות פופולריות לתוכנות קוד פתוח, בעוד שמיקרוסופט Windows היא כנראה החלק הכי פופולרי של תוכנת קוד סגור שיש.

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

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

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

ריצ'רד סטולמן. תמונה של Fripog ב- Flickr.

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

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

סוגי רישיונות

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

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

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

יתרונות למשתמשים

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

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

כאשר שולחן עבודה של לינוקס כמו אובונטו מציג ממשק שולחן עבודה חדש שחלק מהמשתמשים אינם אוהדים, למשתמשים יש יותר אפשרויות. לדוגמה, כאשר שוחרר GNOME 3, משתמשי שולחן עבודה רבים של לינוקס כבויים באותה מידה. חלקם לקחו את הקוד לגרסה הישנה, ​​GNOME 2, ושינו אותו כדי להפעיל אותו בהפצות לינוקס האחרונות - זה MATE. חלקם לקחו את הקוד ל- GNOME 3 ושינו אותו כדי שהוא יעבוד בצורה שהעדיפו - זה קינמון. חלק מהמשתמשים פשוט עברו לשולחנות עבודה חלופיים קיימים. אם חלונות היו קוד פתוח, למשתמשי חלונות 8 היו יותר אפשרויות וגמישות. רק התבונן ב- CyanogenMod, הפצה פופולרית ומונעת על ידי אנדרואיד, המוסיפה תכונות ותמיכה במכשירים חדשים.

תוכנת קוד פתוח מאפשרת גם למפתחים "לעמוד על כתפי ענקיות" וליצור תוכנה משלהם. היו עדים ל- Android ו- Chrome OS, שהם מערכות הפעלה הבנויות על לינוקס ותוכנות קוד פתוח אחרות. הליבה של מערכת ההפעלה X של אפל - וגם iOS - נבנתה גם על קוד קוד פתוח. Valve עובד בזעם על הנחיית פלטפורמת המשחקים Steam שלהם לינוקס, מכיוון שהדבר יאפשר להם ליצור חומרה משלהם ולשלוט בגורלם שלהם באופן שאינו אפשרי ב- Windows של מיקרוסופט.

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