כתיבת תוכנה חופשית – למה?

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

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

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

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

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

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

הסוג הראשון – ייצרני תוכנה שהם גם צרכנים. הרבה תוכנות קניניות מתבססות על תוכנות קניניות אחרות. למשל – מסד הנתונים אורקל, תוכנה קנינית ידועה, צריך מערכת הפעלה כדי לעבוד. במילים אחרות, אתם רציתם לקנות אורקל, אבל אתם גם צריכים להשקיע כסף בקניית מערכת הפעלה, אם זה חלונות ואם יוניקס. זהו כסף שאתם הוצאתם, אבל אורקל לא קיבלה. ביחס לקוח ספק שבינכם לבין אורקל, שניכם הפסדתם. כמה טוב היה אילו היתה מערכת הפעלה שהיתה מסוגלת להריץ אורקל, ולא היתה עולה לכם כסף. המוצר האפקטיבי שאורקל מוכרים נהיה יותר זול, בלי שאורקל מרוויחים פחות. כולם מרוויחים. עכשיו, מה קורה אם המוצר הזה (לינוקס) קיים, אבל יש בו דברים שכדאי לשפר? מכיוון שקיום לינוקס מאפשר לאורקל למכור יותר מסדי נתונים בלי להרוויח פחות על כל אחד, יש פה כסף עודף. משתלם לחברה להפנות חלק מהכסף הזה לשיפור לינוקס, כדי שהיא תוכל למכור אפילו עוד יותר מסדי נתונים. אין לחברה שום ייתרון בלהשאיר את הפיתוח הזה אצלה (אפילו אם הרשיון של לינוקס היה מאפשר), מכיוון שאין זה ה-business של אורקל למכור מערכות הפעלה – הם מוכרים מסדי נתונים.
דבר אחד שחברות שנמצאות בקטגוריה הזו חייבות לדעת זה שהתוכנה יכולה להתחרות בהן. כל שיפור שאורקל מכניסה בלינוקס כדי שיעזור למסד נתונים שלה לעבוד יותר טוב, משפר גם את הביצועים של mysql ושל PostgreSQL במקרה של אורקל, הם מתמודדים עם זה ע"י זה שהם מפתחים את המוצר כדי שיהיה טוב מהמתחרים הפתוחים שלו (וכולנו מרוויחים שוק שלא קופא על שמריו).

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

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

אני מקווה שזה נותן תמונה על למה 60% מהמפתחים מקבלים משכורת על פיתוח תוכנה חופשית. ה- 40% הנותרים הינם סיפור יותר מורכב.

לוחם חופש או פעיל פרגמטי?

אז הנה, חברים הציעו, ובסוף נכנעתי ופתחתי בלוג.

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

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

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

מקווה שתהנו ממחשבותי,

שחר