דף הבית > טכנולוגיה, תכנות > קצת על קוד פתוח – החזית הטכנולוגית

קצת על קוד פתוח – החזית הטכנולוגית

[הפוסט התפרסם גם בגיקטיים]

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

בפוסט הזה אני אחלוק כאן הדברים שדווקא פחות קשורים לשפת פייתון עצמה, אלא יותר למאקרו: המעבר מפיתוח בסביבת Microsoft, כלומר דוט-נט על Windows, לפיתוח בסביבת open-source: כיום אני מפתח בפייתון וב Clojure על לינוקס.

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

TL;DR

החזית הטכנולוגית נמצאת בסביבת open-source. הנוחות נמצאת בסביבות אחרות, כמו דוט-נט. ויש לזה סיבה.

הכנתם קפה? יפה. נתחיל.

באופן כללי, אחרי יותר משנתיים בסביבת open-source, אני חושב שבסביבה הזו אפשר לראות באופן בולט שני דברים חשובים:

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

העולם הישן – פתרונות עקומים לבעיות אמיתיות

הצורך הוא אבי ההמצאה. אבל מהו הצורך? מי מגדיר מהו הצורך?

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

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

נסתכל לרגע על בעיה ידועה: איך אפשר לפתח ל web בצורה מהירה וקלה לתחזוקה?

הפתרון של Microsoft

בואו נצעד אחורה בזמן לתקופה של 2002-2003, כאשר Microsoft הכריזו בקול גדול על דוט-נט (עזבו את 1.0, נלך ישר ל 1.1), ובפרט על ASP.NET עם הפיצ'ר המדהים שנקרא WebForms. על איזה צורך ענה כל הנושא הזה של WebForms ב ASP.NET?

מהנדסי Microsoft חשבו וחשבו, וחשבו עוד קצת, והגיעו למסקנה שמתכנתי web צריכים לאמץ שיטות פיתוח של מתכנתי desktop, כלומר "לצייר" ב Visual Studio אלמנטים ע"י drag-and-drop, והכל בסוף יתרגם ל HTML. אה, והלהיט הגדול: התוצאה הסופית תיקבע על פי הדפדפן עצמו (לפי ה user-agent), כי ככה נוכל לעצב פעם אחת את המסכים שלנו והשרת ייצור HTML (או WML, למי שהתנסה בזה) שמותאם לדפדפן הנוכחי.

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

בקיצור, Microsoft סיפקו פתרון עקום לבעיה אמיתית.

הפתרונות מעולם ה open-source

המודל שמתכנתי web מעדיפים הוא בד"כ מודל פיתוח שנקרא MVC. בסביבת הקוד הפתוח זה מודל שמוכר ועובד היטב כבר שנים:

  • בפייתון יש מספר פרויקטים, והמוכר שבהם נקרא Django, שקיים מ 2005.
  • ברובי יש את Rails, שקיים מ 2005.
  • ב PHP יש את CakePHP שקיים מ 2005.
  • בדוט-נט, בסביבת open-source:
    • פרויקט MonoRail, שהוא תת-פרויקט של Castle. קיים בערך מ 2005-2006. נוהל במשך תקופה ארוכה ע"י חן אגוזי.
    • פרויקט ASP.NET MVC, התחיל בסביבות 2007 ע"י Scott Guthrie, וצבר תאוצה די מהר.

ובינתיים, במשרדי Microsoft, אי שם ברדמונד

מה קרה בינתיים, בתקופה של 2005-2010? בתקופה הזו, Microsoft התעלמו לחלוטין ממודל MVC לפיתוח web, לפחות כלפי חוץ. רק בסביבות 2010 פרויקט ASP.NET MVC "אומץ" ע"י Microsoft והפך להיות חלק מ Visual Studio, בתור תוסף.

רק ב 2012, Microsoft הטמיעו באופן רשמי פרוייקטים מסוג MVC ב Visual Studio.

לזה קוראים הצתה מאוחרת.

מענה אמיתי לבעיות אמיתיות

מההתרשמות שלי, הספריות והפריימוורקס שקיימים בסביבת open-source נותנים מענה אמיתי לבעיות אמיתיות.

בואו ניקח דוגמה, ונבדוק את הבעיה (האמיתית!) שנקראת בעיית ה C10K. לעצלנים שביניכם אסביר רק שהבעיה היא איך להחזיק סדר גודל של 10,000 (במילים: עשרת אלפים) חיבורים פתוחים בו זמנית, ולספק תוכן דינמי (תלוי בקשה). דמיינו למשל מערכת צ'ט שרצה על שרת יחיד ומחוברים אליה בו זמנית 10,000 משתמשים – איך עושים את זה?

איך Microsoft פותרים את בעיית C10K בדוט-נט? כנראה ע"י מספר שרתי Windows Server עם load-balancer רציני לפניהם. כלומר, הבעיה נופלת על ה load-balancer, והפתרון הזה עולה די הרבה כסף בסופו של דבר. אמנם, כבר בדוט-נט 2.0 הוצג הפיצ'ר שנקרא Asynchronous Pages, וידידו ה"קל" יותר IHttpAsyncHandler שכבר קיים (!) מגירסה 1.1.

אלה פתרונות חלקיים לבעיה. באופן כללי, ASP.NET זו מערכת שנבנתה עם מערכת שיקולים משלה, וכנראה בזמן ה design, לא ייחסו חשיבות גבוהה מדי לכל הנושא של concurrency ושל non-blocking execution. רק בשנת 2012, החל מגירסה 4.5 של דוט-נט, יש סוף-סוף התייחסות סבירה ל async I/O בתבנית של async/await. בלי להכנס לפרטים, אסביר רק שהכוונה ב async I/O היא להעביר למערכת ההפעלה עצמה (ולמעשה לבקר החומרה הרלוונטי) את הביצוע ברקע של משימות I/O, כגון כתיבה/קריאה לדיסק, או שליחה/קבלה של נתונים ממשאבי רשת. בזמן הביצוע ברקע, ה thread ה"נוכחי" מתפנה למשימות אחרות. אפשר לקרוא עוד פה, כאן ופה. זה עדיין פתרון חלקי אם דרוש thread לכל חיבור.

ואיך בסביבת open-source פותרים את בעיית C10K? כאן כבר יש התייחסות ענפה לבעיה, ויש פתרונות טובים וזולים, כבר משנת 2009. שלוש דוגמאות בולטות:

  1. node.js, שתוכנן מראש להיות event-driven, כולל non-blocking I/O, והוא נותן מענה יפה ל concurrency. קיים מ 2009.
  2. הפריימוורק/שרת שנקרא Tornado, שוחרר כ open-source, כתוב בפייתון, משתמש ב Reactor pattern. יש בו שימוש אינטנסיבי ב async I/O. הוא מאוד קל לפיתוח והוא מאוד סקאלבילי (אין לי סטטיסטיקה מדויקת, אבל אתם יודעים, פייסבוק קנו את FriendsFeed, החברה שכתבה את זה…). קיים מ 2009.
  3. הפריימוורק שנקרא Twisted, כתוב בפייתון, open-source. באופן כללי הוא "כבד" יותר מ Tornado. קיים מ 2002.

אלו רק שלוש דוגמאות, אבל היד עוד נטויה. ב open-source יש פתרונות מלאים וזמינים לבעיית C10K.

פתרונות חדשניים לבעיות אמיתיות

בסביבת open-source, יש פרויקט פתוח (!), ואפשר בד"כ לשפר אותו ולהוסיף פיצ'רים שמתבססים על צרכים אמיתיים, שהגיעו "מהשטח". פרוייקטי open-source צומחים מהשטח, וחופש הבחירה שיש לנו, המפתחים, מאפשר לפרויקטים המוצלחים יותר – להמשיך ולהתקיים, ולפחות מוצלחים – להתפוגג לאיטם.

זוהי אבולוציה במיטבה. המוצלח – שורד. הפחות מוצלח – מתפוגג.

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

כדוגמה לפרויקט מוצלח אתן את Kafka. זה פרויקט מדהים, שבא מצורך אמיתי, של distributed message queue עם יכולות מאוד מתקדמות, וכתוב ב Scala. האם חברה כמו Microsoft תספק מוצר חדשני כמו זה בעתיד?

יש עוד הרבה פרויקטים מוצלחים וחדשניים. רשימה קצרה: Redis, Couchbase, Storm, Hadoop, Cassandra ועוד ועוד. כל פרויקט מוצדק בפני עצמו, ונותן מענה חדשני לבעיה מסויימת. לרובם קהילה פעילה ומדריכים טובים.

למה כל זה קורה?

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

מצד שני, אני חושב שכבר מ 2008 היא הופכת להיות פחות ופחות אטרקטיבית במובן של תשתיות פיתוח (דוט-נט וכד'). גם עופר כותב שמהנדסים של סטארט-אפים פשוט מתעלמים ממה שיש ל Microsoft להציע (במילים שלו: "לא אכפת להם").

למה זה קורה?

להבנתי, יש כאן שני עניינים שמסבירים את זה:

Microsoft היא חברת תוכנה לשוק ה Enterprise

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

Microsoft היא חברה שמפתחת פתרונות לשוק ה Enterprise. תחשבו על זה רגע:

  • כל הסיפור הזה שנקרא MS-SQL-Server הוא ל Enterprise, כיום בתחרות ישירה מול Oracle.
  • כל הסיפור הזה שנקרא Windows Server – לשוק ה Enterprise.
  • הסיפור עם Dynamics – שייך ל Enterprise.
  • וגם SharePoint – שייך ל Enterprise.

ע"פ הערכה מ 2013, כל פריט מהרשימה הזו מכניס ל Microsoft למעלה ממיליארד דולר בשנה.

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

אני חוזר: Microsoft היא חברה ששייכת ל Enterprise. ולכן הפתרונות שהיא מספקת הם פתרונות Enterprise:

  • יש עומס? -לא הבעיה שלנו. שימו load-balancer.
  • יש ביקוש לפיצ'ר מסויים? -חכו לגירסה הבאה, שתצא אולי עוד חצי שנה במקרה הטוב.
  • יש באג? חכו ל fix הבא. או גרוע מזה: חכו ל service-pack הבא. או גרוע מזה: זה מה יש.

כלומר:

  • הדרישות לסקאלביליות גבוהה מקבלות פתרון Enterprise מצד Microsoft. או שפשוט תלכו על Azure (בהצלחה!)
  • קצב האבולוציה של המוצרים של Microsoft הוא קצב של Enterprise.

הסטארט-אפים התרבו

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

אזור הנוחות של Microsoft

חברה רווחית כמו Microsoft יכולה להרשות לעצמה לעמוד מן הצד ולראות לאן השוק הולך. למעשה המודל הזה הצליח לה לא רע עד עכשיו:

  • דוט-נט זו העתקה טובה של Java
  • Excel זו העתקה טובה של Lotus 1-2-3
  • ואולי Windows זו גם העתקה של משהו?

הדפוס של Microsoft הוא כזה:

  • הבשלה: להמתין ולראות אם רעיון מסויים הוא רעיון רווחי
  • העתקה: להעתיק את הרעיון, לעיתים גם להשביח אותו
  • ליטוש: לכתוב תיעוד מצוין
  • שיוק ומכירות: לשווק אותו בצורה אגרסיבית

ככה יוצרים אזור נוחות למשתמשים של המוצרים עצמם.
למעשה, ככה גם Microsoft יצרה לעצמה את אזור הנוחות שלה.

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

התפכחות ושינוי כיוון

נכון להיום, רוב הפרויקטים המשמעותיים ב open-source מיועדים לריצה על מערכות לינוקס. חלק קטן מהם רץ גם על Windows (למשל Apache httpd). בשנים האחרונות יש מעבר של מתכנתים מסביבת Microsoft לסביבת open-source (כלומר, אני לא היחיד שעשה את המעבר הזה), ומכאן שיש גם מעבר של מתכנתים מ Windows ללינוקס.

כדי לבלום את התנועה הזו, Microsoft פצחה במספר מהלכים של שחרור (איטי) של קוד ל open-source. המהלך הבולט מכולם הוא שהיא הוציאה את ה core של דוט-נט לקוד פתוח (בעיקר ברישוי MIT, אבל לא רק). לא סתם הוציאה ל open-source, אלא ל github, ולא ל CodePlex, האתר הרשמי שבבעלות Microsoft לאחסון פרוייקטים ב open-source.
למה? כי לדבריהם שם נמצאת קהילת המקודדים של ה open-source. סוג של התפכחות?

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

אני סקפטי

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

  • האבולוציה של פרוייקטים בסביבת open-source מתרחשת בקצב מהיר. האם Microsoft תעמוד בו? לא בטוח.
  • כל ה eco-system שמתקיים באופן טבעי כבר שנים בסביבות שהן לא Microsoft, לדוגמה פייתון, רובי, Java וכד' – כבר התפתח מאוד. קשה מאוד להדביק את הפער הזה באופן מלאכותי. דוגמה לכך אפשר לראות מהנסיון של Microsoft ליצור eco-system סביב האפליקציות והחנות של Windows Phone – זה פשוט תהליך שקשה מאוד להאיץ אותו.
  • כל ה tooling מסביב לקוד ולאפליקציה עצמה – הרבה יותר עשיר בלינוקס מאשר ב Windows. אני מתייחס כאן לרכיבים הבאים: מערכת ההפעלה עצמה, ה shell (ויסלחו לי כולם, אבל PowerShell זה צעד חשוב אבל רחוק שנות אור מ bash והכלים שבו), האוטומציה (גם של ה deployment), כלי ה monitoring ועוד.

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

יש "הייפ" סביב open-source, וזה לא דבר רע. הטיעון ש open-source הוא cool אמנם מתבסס על ה"הייפ" הזה, אבל אם סביבת ה open-source הייתה רק cool, אז היא לא הייתה מצליחה כל כך, ולא הייתה מאיימת על חברות ענק כמו Microsoft.

אז מהי החזית הטכנולוגית?

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

נכון להיום, החזית הטכנולוגית קיימת וזמינה בסביבת open-source, הרבה יותר ממה שקיים בסביבת דוט-נט.

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

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

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

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

יש לכם זמן?

קטגוריות:טכנולוגיה, תכנות תגיות:, ,
  1. 7 ינואר, 2015 מתוך 12:30 | #1

    הי רון
    אחלה פוסט – אני מסכים עם כל מה שכתבת חוץ מהסיבה של מיקרוסופט לשחרר את .net כקוד פתוח. אני חושב שזה יותר על רקע ירידת החשיבות של הפלפורמה במיקרוסופט שהתחיל עם הכישלון של פרויקט ה.net הפנימי הגדול windows.net (שלא הצליח להבשיל למוצר) שאחריו חזרה ++C למרכז . המגמה הזו התחזקה עוד יותר עם התבססות הענן (azure, office365) ככיוון אסטרטגי של מיקרוסופט – ובסביבה כזו הרבה פחות חשוב באיזו סביבה נכתבות האפליקציות (ולראיה azure תומך בhadoop,docker וכו)

  2. 7 ינואר, 2015 מתוך 15:30 | #2

    תודה!

  3. Alon Rolnik
    7 ינואר, 2015 מתוך 21:05 | #3

    הי רון,
    נהניתי לקרוא.
    BIG LIKE

  4. 7 ינואר, 2015 מתוך 22:46 | #4

    פוסט משובח, הצלחת להסביר בצורה ממש קולעת את העניין של זיהוי צורך ובחירת פתרונות כפי שנעשים ע"י מייקרוסופט לעומת הדרך שבה הם נעשים בקהילת ה Open Source.
    בהמשך לזה, גם אני מאוד סקפטי לגבי המעבר (החלקי) של מייקרוסופט ל-Open Source ואני מסכים שהוא נכפה עליה ולא נעשה מתוך אלטרואיזם, ולכן גם השאלה כמה זה ירחיק לכת מבחינת אג'יליות הפיתוח. לזכותה יש לציין אנשים טובים כמו סקוט הנסלמן וסקוט האנטר ("הסקוטים הפחותים" כפי שהם קוראים לעצמם – Lesser Scotts) שדוחפים את זה קדימה מבפנים וכמובן את סטיה נדלה שהביא איתו רוח חדשנית למייקרוסופט. פאק, הבן-אדם לא מתבייש להיות בעליו של iPhone! ובמצגות של מייקרוסופט כבר לא מתביישים להשתמש בכרום להדגמות שונות וכו'.
    כפי שציינת וגם אני ציינתי בפוסט שאותו הזכרת, במקרה הטוב צעדים אלו רק ימנעו זרימה של עוד מפתחי דוט נט לכיוון לינוקס וכו'. מעניין אם בטווח הארוך הם אכן יגרמו לשינוי תרבותי כ"כ משמעותי שאפילו יגרום לתנועה בכיוון ההפוך.
    שילוב מנצח מבחינת מייקרוסופט יהיה אג'יליות בפיתוח ועדכון פרוייקטים תוך הקשבה לקהילה (וקבלת pull requests, דבר שהם כבר התחילו לעשות) ועטיפתם בתיעוד חזק ותמיכה – דבר שכפי שציינת תחום ה-Open Source לוקה בחסר.

  5. ניר רובינשטיין
    8 ינואר, 2015 מתוך 09:56 | #5

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

  6. אורי
    8 ינואר, 2015 מתוך 10:58 | #6

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

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

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

  7. רונן
    8 ינואר, 2015 מתוך 13:01 | #7

    רון,

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

  8. איליה קופרמן
    8 ינואר, 2015 מתוך 16:49 | #8

    כל מילה בסלע.

    כל הכבוד.

    איליה

  9. ליאור
    8 ינואר, 2015 מתוך 18:55 | #9

    מאמר מצוין, וכל הכבוד על השימוש בשפת אימנו. ראוי לציין שבעולם ה-big data (שלפי כל המחקרים וכו' עומד רק לגדול) למיטב ידיעתי אין כרגע לMS מה להציע גם כן.

  10. 10 ינואר, 2015 מתוך 08:09 | #10

    תודה רבה לכל המגיבים עד עכשיו!
    תודה גם על הביקורת וגם על הפירגון!

  11. שלומי
    11 ינואר, 2015 מתוך 00:44 | #11

    שמח לראות שכאן התגובות פחות מונעות אגו מאשר באתר GEEKTIME

    מאמר מעולה!

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

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

    הגישה של MS פשטה את הרגל והחברה כרגע בתהליכי שינוי עמוקים ואי אפשר לנבא מה יקרה…

  12. אמיר
    11 ינואר, 2015 מתוך 22:33 | #12

    תרשה לי להפנות אותך להרצאה האחרונה של FTB PRO על סקיילינג בעולם הקוד הפתוח: https://www.youtube.com/watch?v=d56sFMHWJQc
    באופן מפתיע הפתרונות הם זהים גם בסביבת מיקרוסופט (קרי ע"י פתרון ארכיטקטוני ולאו דווקא שיפור של השפה).

    לגבי השימוש בפתרונות קוד פתוח במערכות בעולם האמיתי: רובן נשמעות מאוד נחמד על הנייר (כמו Kibana לדוגמא) עד שבודקים אותן מול פתרונות בתשלום או משתמשים ביתירות כ"כ גבוהה שגורמת לחוזה אחזקה להיראות זול להפליא (Kafka)

    והמסקנה העיקרית שלי משימוש בקוד פתוח הוא לא להיסחף אחרי אופנות. תזכורת קטנה: Cassandra זוכה רק עכשיו לעדנה מחודשת, אחרי שנפל האסימון לאנשים ש-master-less חשוב הרבה יותר מכל תכונה אחרת.

  13. שלומי
    13 ינואר, 2015 מתוך 10:46 | #13

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

    אז אל תמהרו להספיד את מייקרוסופט.

  14. שלומי
    14 ינואר, 2015 מתוך 11:16 | #14

    @שלומי
    צריך להבדיל את הרנסס של עולם ה JS מעולם ה OPEN SOURCE.

    FW חדש יוצא בעיקר בעולם ה JS, אם לדייק אז FRONTEND… שם אכן יוצא כל חודש משהו חדש ולא עומדים בקצב.
    יש לזה סיבה דיי ברורה…

  1. 10 ינואר, 2015 מתוך 14:02 | #1

Quantcast