סיפור האהבה-שנאה של מיקרוסופט עם הקוד הפתוח

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

תמונה: flickr, cc-by, *_Abhi_*

תמונה: flickr, cc-by, *_Abhi_*

הפוסט נכתב על-ידי מני רחמני, ארכיטקט תוכנה בחברת Tikal

אנחנו חיים בעולם של רעיונות. מוקפים מכל הצדדים במידע, ואנחנו רוב הזמן שוכחים שרק לפני שתי מאות החשמל נעשה פופולארי. לפני 10,000 שנה החקלאות החלה ושינתה את אורך חיינו מלקטים לעבדים. לפני 500 שנה גילינו את אמריקה ועד אז מרכז העולם היה בכלל בין הודו לסין. ואם אתם חושבים שזה הרבה, אז מבחינה אבולוציונית 65,000, שנים למין שקיים 5 מליון שנים, זה כמו לומר אתמול…

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

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

אז מה יש למיקרוסופט להציע לנו?

  • שירותי ענן? – יקר מדי לחברה שרק רוצה להתחיל לפתח.
  • MSSQL – לא רציני בעידן ה-BigData.
  • האם Windows מסוגלת להתמודד עם מיליוניי משתמשים?
  • אולי נעבור צד? Java? Ruby?

יש לנו ידע רחב בפלטפורמה נהדרת, C# שזכתה בשפת השנה ל-2012, VisualStudio זה אחד הכלים הכי חזקים בשוק, ומעל הכל, כמעט כל שנה-שנתיים ככה יוצא עידכון משמעותי ל.Net להבדיל משפות מקרטעות אחרות. אחרי הכל, אם ביל גייטס לא היה עושה את המהפכה בעולם המחשבים בשנות ה-90 המוקדמות – איפה רובנו היינו היום? כן כן, כל ילידי שנות ה-80 וה-70 שיושבים כרגע על ה-Mac שלהם או מעלעלים ב-Debian או Ubunto שלהם – ספק אם הייתם פה עכשיו אילולא המהפכה הזאת.

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

תמונה: flickr, cc-by, Sean MacEntee

תמונה: flickr, cc-by, Sean MacEntee

אז איפה הכל התחיל?

כשמיקרוסופט התבססה לה אי שם בשנות ה-80 מערכת ההפעלה הראשונה שלה הייתה Xenix שהתבססה רובה ככולה על Unix. רק מאוחר יותר בשנת 1987, IBM ומיקרוסופט נכנסו לשותפות ופיתחו את OS/2 ומאז איבדו את העניין ב-Xenix (ואחר כך גם ב OS/2). אני דרך אגב, באותו הזמן, היתי בן 3 והצלחתי לומר את השם שלי ולענות על שאלות מאד פשוטות.

באותה התקופה בדיוק התחילה תנועת הקוד הפתוח (1983) ע"י בחור בשם ריצ'רד סטלמן שלא בדיוק הבין למה לשחרר תוכנות בצורה סגורה כקובץ להרצה והעדיף לקבל את הקוד שלהן במקום. מיד הוא יצר את רשיון ה-GNU, האב הקדמון של רשיון ה-GPL הפופולארי של ימינו. אבל כל זה כאין וכאפס לעומת הבום הגדול – 1991: לינוס טרובלדס פרסם הודעה נאיבית באחת הקבוצות שהוא "הולך לפתח מערכת הפעלה חינמית, כתחביב, לא משהו רציני, כדי שירוץ על 386\486”. אני דרך אגב, שוב לא עשיתי יותר מדי: חגגתי את בר המצווה שלי וכמה שנים אחר כך קיבלתי את התואם אפל הראשון שלי.

תקופת הפארנויה

אז בעצם מיקרוסופט התחילו ב-Unix. השנה כבר 1995, Windows95 יצא לשוק ולינוקס מתחיל לצבור תאוצה. כיאה למיקרוסופט, הם נכנסים לפארנויה ומתחילים להתכתב על מה לעשות ואיך – מהלך שמאוחר יותר קיבל את השם The Halloween Documents של 1998. אלה בעצם היו תזכירים ומיילים שנעו בין המנהלים באותה תקופה והודלפו לעיתונות. המסמכים התייחסו ללינוקס כאיום מרכזי בשליטה המוחלטת של מיקרוסופט. וציינו כמה הרסני כל המהלך\תנועת הקוד הפתוח. בנוסף לכך, ביל גייטס הצהיר ש"נולד מתחרה חדש" – האינטרנט.

כבר אז החלה העבודה ובשנת 95 MSN שוחרר כמתחרה ל-AOL ורוב מוצרי מיקרוסופט הפכו להיות מוכווני רשת ו-World Wide Web.

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

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

מיקרוסופט וקוד פתוח – אהבה ושנאה

בשנת 2000, ה-CLI שעומד מאחורי .NET הוצג כסטנדרט פתוח וב-2001 מיקרוסופוט כבר שיחררה 2 רשיונות Shared Source (שימו לב שזה עדיין לא Open Source) המאפשרים לראות את הקוד אבל לא לחולל בו שינויים. ובכלל החלו לבצע מהפכונת:

  • 2003 Patterns and Practices הוקם (שפיתחה כלים משלימים בקוד פתוח)
  • 2005 Enterprise Library שפותחו ע"י החברה לעיל.
  • 2006 CoedPlex אתר שיתוף ואחסנה לפרוייקטי קוד פתוח שהיום מכיל מעל ל-32K פרוייקטים.

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

ואני, בסוף שנות ה-90 התחברתי לאינטרנט, מרגיש לי בדיוק כתמול שלשום. קיבלתי את כתובת המייל הראשונה שלי מספקית האינטרנט ושנה אחר כך עברתי ל Hotmail – זוכרים?

תקופת השינוי

תנועת הקוד הפתוח העניקה גושפנקא לשני רשיונות קוד של מיקרוסופט בשנת 2007, וב-2008 מיקרוסופוט אימצה את JQuery כחלק מהפלטפורמה שלה. באותו זמן מיקרוסופט גם ייצרה פורמט חדש לחבילת ה-Office שלה – Open XML וקיבלה עליו תו תקן של ISO. הרבה ביקורת הייתה על המהלך הזה והאישורים שמיקרוסופט קיבלה, שכן עדיין חלקים מהפורמט לא היו מתועדים ועד היום, גוגל לא מצליחה להמיר בצורה מלאה מסמכים של מיקרוסופט אל הפורמט שלה (Google Drive).

ואז הגיעה המפולת הגדולה – שנת 2012

  • ASP.NET MVC, WEB API, Razor פלטפורמת הווב של מיקרוסופוט נפתחה בצורה מלאה כקוד פתוח.
  • Entity Framework פתרון ה-ORM של מיקרוסופט נפתח.
  • Nuget, Reactive Extension, TypeScript ועוד רבים וטובים נפלו מייד אחר כך שבכל אותו זמן הקהילה המיקרוסופטית מייצרת פרוייקטים פתוחים כרימון (less, Nancy, NHibernate, Massive, Orchad…)

אנחנו מוכרים Windows

ב-2011 מיקרוסופט הוכרזה כאחד התורמים העיקריים ל-Kernel של לינוקס. מיקרוסופט החלה לתמוך ב-Apache, PHP ו-Ruby כחלק מפלטפורמת הענן שלה – Azure. הוסיפה תמיכה ב-Hadoop והיום היא מממנת את Joyent נותנת המטרייה ל-Node.JS.

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

סיכום

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

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

Tikal

צוות המומחים של טיקל יעזרו לכל צוות פיתוח לסיים כל משימת פיתוח בזמן ובאפקטיביות גבוהה. החל מהתאמה ומעבר לטכנולוגיות חדשות, דרך תכנון ובניית פרוייקטים ואופטימיזציה בתחומי: JAVA, Javascript, Ruby, ALM & .NET

תגיות לכתבה:

להגיב

12 תגובות

  1. מאת אלון:

    הקישורים שבורים :(

  2. מאת tho6:

    Obunto???? האם זה מ"ה חדשה?????? חובבנים….

  3. מאת איתי:

    אחלה כתבה!

  4. מאת עמירם:

    אחלה מאמר. כל הכבוד מני!

  5. מאת אורי עידן:

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

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

      • מאת יודה:

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

  6. מאת יובל:

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

  7. מאת יעקב:

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

    "MSSQL – לא רציני בעידן ה-BigData."
    קביעה בומבסטית ולא מבוססת. תלוי מאוד מהם צרכי האפליקציה. MSSQL הוא עדיין בין הפתרונות הטובים ביותר לאפליקציות OLAP.
    לפתרונות ה-NOSQL יש ככל בעיות רציניות סביב ACID ויציבות ושמישות כללית.

    "האם Windows מסוגלת להתמודד עם מיליוניי משתמשים?"
    StackOveflow על מאות אלפי משתמשיה, עם מליוני ביקורים יומיים יושבת על ווינדוס, ASP.Net, ו-SQL Server.
    http://meta.stackoverflow.com/questions/10369/which-tools-and-technologies-are-used-to-build-the-stack-exchange-network

    "אולי נעבור צד? Java? Ruby?"
    אם אתה מזוכיסט. בהצלחה עם anonymous classes ב-Java כתחליף ל-Lambdas ב-C#…

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

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

      לגבי MSSQL על זה בדיוק אני הולך לדבר באירוע ולפרט הרבה יותר ממה שהכתבה פה נותנת לי.

      ולא, אני כרגע לא עובר צד :)

      תודה

הרשם לאתר

רק גיקים יכולים ליצור דיון חדש! כדי להפוך לגיק מדופלם, הרשם לאתר.