קוד פתוח כשיטת עבודה חדשנית וקצת על פטנטים בתוכנה
עוד קצת מחשבות שעלו בדעתי בתקופה האחרונה, בהמשך למאמרים הקודמים, אני מקווה שגם מאמר זה יהיה מעניין כמו המאמרים הקודמים.
כשמדברים על קוד פתוח
(Open Source)
נראה שרבים חושבים שמדובר אך ורק בלתת את קוד המקור לתוכנה שאתה כתבת.
אז לא, קוד פתוח או תוכנה חופשית זה הרבה מעבר לזה.
אם זה היה רק זה, ברור שמדובר כאן במשהו שאינו נותן לך כמתכנתת רווח
כלשהו משחרור הקוד.
אבל זה לא, בתוכנה חופשית גם המתכנת ששחרר את הקוד מרוויח.
מה הוא מרוויח ואיך?
קוד פתוח זה לתת לאחרים את היכולת לשנות את התוכנה שלך ועל ידי כך לשפר
את מה שאתה כתבת.
בצורה זו אתה מרוויח שלא רק שמשתמשים יגידו לך אלו ואילו הבעיות בתוכנה
שלך, שאת זה הם יכולים לעשות גם אם יריצו את התוכנה בלבד ללא קוד המקור.
אם מתכנת רואה את הקוד שלך הוא יכול לא רק לדעת שיש באג בתוכנה אלא למצוא
את הבאג ולתקן אותו.
כך הרווחת מתכנת נוסף שיעזור לך לתקן את הקוד.
נוסף לכך, מתכנתים נוספים שיראו את הקוד, יכולים לעזור לך לשפר את התוכנה
ולהוסיף לה תכונות נוספות שלא היו בה מלכתחילה.
גם, אנשים נוספים שרואים את הקוד יכולים להוסיף דברים שאתה לא כתבת
מלכתחילה כי לא היה לך את הידע הדרוש בקטע הזה.
כך קוד פתוח מאפשר ליצור את התוכנה הטובה ביותר בגלל שהרבה אנשים משתתפים
בפיתוחו.
מהסיבות האלו, תוכנה חופשית היא לא רק שחרור הקוד שלך ולכן מאפשרת גם לך
להרוויח משחרור הקוד.
אבל... כדי להרוויח כך צריך שיקרו כמה דברים.
- מתכנתים אחרים שמשפרים את הקוד צריכים להיות מודעים גם הם לרעיונות של קוד פתוח ולכן הם לא רק שיעשו את השינויים והשיפורים בתוכנה אלא גם יחזירו לך את השינויים.
- אתה כמתכנת צריךה להיות מוכנה לקבל את השינויים והשיפורים ולהוסיף אותם לתוכנה לגרסאות הבאות.
כך עובדת התוכנה החופשית.
לדוגמה, הקרנל של לינוקס מערכת ההפעלה החופשית שהולכת ונעשית פופולרית
יותר ויותר.
כאשר הוא נכתב ע"י לינוס טורוולדס בשנת 1991 הוא שוחרר באינטרנט עם מכתב
מצורף שמעודד אנשים לבדוק אותו ולשנות אותו.
הרבה אנשים גם העירו הערות וגם כתבו שינויים לתוכנה ושלחו את השינויים
חזרה ללינוס.
הוא בסופו של דבר הפך ממתכנת למנהל עבודה בעצם.
אבל כאן מדובר על מנהל עבודה מסוג אחר, לא כזה שאומר לעובדים מה לעשות
אלא כזה שמחליט מה מפרי עבודתם של האחרים יכנס לגרסה הבאה.
כאן בעצם הוא המציא סגנון ניהול אחר.
סגנון שלא אומר מה לעשות, סגנון שמנחה מה רצוי מה לא רצוי ואחר כך בוחן
את התוצאות, התוצאות הטובות יכנסו, הפחות טובות לא.
סגנון ניהול כזה אפשרי רק כאשר אתה לא משלם לעובדים והמשאב של כמות
עובדים הינו אינסופי.
כמות המתכנתים הגדולה והעובדה שרק הדברים הטובים נכנסים, זה מה שהופך את לינוקס וכל תוכנות הקוד הפתוח
לתוכנות האמינות ביותר בעולם.
האמת ששיטה זו הייתה בשימוש כבר לפני זה, כאשר ריצ'רד סטולמן הקים את
תנועת התוכנה החופשית,
גם שם היה מצב כזה, ריצ'רד סטלמן עצמו כתב את עורך הטקסט Emacs שהרבה
אחרים שכללו אותו והחזירו את השינויים ועל ידי כך המוצר התפתח הרבה הרבה
מעבר למטרה המקורית, המטרה המקורית הייתה עורך טקסט, היום התוצאה היא כלי
שהוא כמעט מערכת הפעלה שלמה ונראה כאילו במקרה יכול גם לערוך טקסט.
(הערה קטנה... עוד לא ראיתי מחשב שעושה BOOT עם Emacs אבל מצד שני ראיתי
בו הרבה מאפיינים אחרים של מערכת הפעלה...).
שיטה זו מתוארת על ידי אריק ריימונד בסיפרו "הקטדרלה והבזאר".
הקוד הפתוח מתקדם בגלל העובדה שהרבה אנשים רואים את הקוד ומשפרים אותו
הקוד הפתוח מתקדם גם כי יש הרבה אנשים שבשבילם הנושא הוא אתגר.
עד כה בהרבה תחומים בחיים רואים שתחום מסויים מתקדם הכי טוב כאשר המניע
הוא אתגר ולא רק כסף.
דוגמה יפה לזה הוא תחום שייט המפרשיות.
בעבר התחום הזה היה תחום מסחרי לחלוטין ששימש לצורך העברת מטענים בדרך הים
כיום, זה ספורט והנאה בלבד.
קצב ההתקדמות של הענף הזה כיום, גדול לאין שיעור מקצב ההתקדמות של הענף
לפני מאתיים שנה.
קראתי גם שמחקרים פסיכולוגיים הראו שכאשר המניע הוא אתגר והנאה, הרצון
של אנשים גדל יותר מאשר כאשר המניע הוא רווח כספי.
איני אומר שמסחריות היא דבר רע, אני אומר רק שצריך לקחת בחשבון גם את
הרגשות של אנשים, דבר שכלכלה טהורה, לא תמיד לוקחת בחשבון (מבלי להעליב
את הכלכלנים).
פטנטים בתוכנה ולמה הם לא תמיד עוזרים
אבל מה יכול למנוע את ההתקדמות היפה הזו?לצערינו מנגנון שנבנה במקורו על מנת להגן על יזמים עלול כיום למנוע את המשך התקדמות המין האנושי, בדיוק כמו שסגירת הקוד של תוכנה מונעת את התקדמות המין האנושי.
הנושא הזה הוא פטנטים על תוכנה!
פטנט נועד במקורו להגן על יזם או חברה על ידי כך שיאסור שימוש במוצר על ידי אחרים ללא תגמול לממציא.
על פניו זה נראה דבר חיובי ביותר.
אולם מה שקורא היום בתוכנה הוא שאנשים רושמים פטנטים על אלגוריתמים לפתרון בעיות, דבר זה דומה לרישום פטנט על הנוסחא לפתרון משוואה ריבועית.
כאשר אנשים מסויימים מקבלים פטנטים על אלגוריתמים, דבר זה מונע מאחרים שימוש באותו אלגוריתם לדברים אחרים.
דבר זה כמובן עוצר את התפתחות המין האנושי, מכיוון שלא ניתן לפתח אלגוריתמים או תוכנות מתוחכמות יותר המבוססות על אלגוריתם שיש עליו פטנט.
דוגמה פשוטה שמצאתי באינטרנט בנושא הזה היא הקוד הבא:
for(x = 0; x < Height; x++) {
for(y = 0; y < Width; y++) screen[x + xpos][y + ypos] ^= arrow[x][y]; } |
דוגמה זו על פניו נראית כשני For loops אחד בתוך השני כאשר הפעולה הנעשית היא
פעולת XOR על ערכים של מערך דו ממדי.
פעולה זו משמשת לציור חץ על תמונה בדומה למה שקורא כאשר החץ של העכבר עובר
על קטע מסויים במסך, שהחץ תמיד יראה על ידי כך שהוא יצוייר בצבע הפוך מהצבע
של אותו קטע בתמונה.
אלגוריתם זה נרשם כפטנט בארצות הברית.
כל אדם שישתמש באלגוריתם זה בתוכנה שלו בעצם חשוף לתביעה.
האין זו דוגמה פשוטה לכיצד רישום פטנט על אלגוריתם עוצר את התפתחות המין האנושי?
באירופה עד היום לא ניתן לרשום פטנט על אלגוריתם ולכן בדרך כלל לא ניתן לרשום
פטנט על תוכנה אבל לצערינו דיונים באיחוד האירופי הנערכים בתקופה האחרונה מראים
שיתכן שבקרוב מדינות מסויימות באירופה יאפשרו רישום פטנטים על אלגורתמים.
רישום פטנטים יש בו עוד צד די אבסורדי שנוצר בתקופה האחרונה.
לרישום פטנט, יש צורך בתשלום אגרות למשרד המשפטים של המדינה בה נרשם הפטנט
כמו כן יש צורך בעורכי דין ורשמי פטנטים מומחים ששכר העבודה שלהם מגיע
לאלפי דולרים לפטנט, כך שעל מנת לרשום פטנט היום יש צורך להוציא סכומי כסף
בסדר גודל של עשרות אלפים על מאות אלפי דולרים.
כל זאת על מנת להגן מפני מישהו שאולי ישתמש באלגוריתם הזה במקרים רבים אפילו
לא מתוך מטרה להתחרות.
נניח שבמקרה מסויים, רשמתם פטנט על אלגוריתם ומישהו אחר השתמש באותו אלגוריתם
על מנת לאכוף את החוק על אותו אדם, תצטרכו לתבוע אותו, דבר שיעלה לכם במקרה
הטוב עשרות אלפי דולרים ובמקרה הגרוע אפילו מליון דולר.
מה שיוצא ממצב אבסורדי זה, הוא שבנוסף לעצירת התקדמות המין האנושי, שזה לכשעצמו
לדעתי דבר גרוע בפני עצמו. יוצא שהממציא עצמו יוצא נפסד!
לסיכום
בהמשך למה שכתבתי במאמרים האחרונים על מדוע תוכנה חופשית היא דבר חיוני להתקדמות המין האנושי, במאמר זה אנו רואים עוד צד מעשי, כיצד תוכנה חופשית פועלת.כמו כן אנו רואים עוד כח התנגדות לתוכנה החופשית מעבר להתנגדות הקיימת כיום מצד חברות שהמודל העסקי שלהן מבוסס על תוכנה קיניינית.
לדעתי, ההתנגדות הרבה שאנו רואים כיום בעיקר מצד חברות שהמודל העסקי שלהן מבוסס על תוכנה קיניינית היא לכשעצמה הוכחה שהמודל הזה מהווה איום עליהן ובזה מוכיח שתוכנה חופשית מהווה אלטרנטיבה רצינית לתוכנה קיניינית.
הוספת תגובה
מאמר מצויין | רכבים | 01/01/1970 00:00:00 | |
מאמר | מוניות לנתב"ג | 01/01/1970 00:00:00 | |
לינוקס קוד פתוח | משה | 01/01/1970 00:00:00 | |