אתחיל בשאלה: כמה מהקוראים מכירים את flan של גוגל? מי שלא מכיר מה לגוגל ול-flan (בתרגום: עוגת גבינה), מוזמן להסתכל בתוצאות בגוגל: מדובר על מערכת אנדרואיד הבאה (האם זו תהיה גירסה 2.1? 2.5? אולי בכלל 3.0? אף אחד אינו יודע בוודאות).
אחד הדברים שמצליחים לעצבן מפתחים רבים כשזה מגיע לגוגל, זה עניין היחס שלה למפתחים, ובקטע הזה יש לגוגל הרבה מה ללמוד גם ממיקרוסופט וגם מ-אפל.
בעקרון, גוגל רושמת לעצמה נקודות זכות בכך שהיא משחררת את מערכות ההפעלה שלה (כרום OS ואנדרואיד) כקוד פתוח, שזה בהחלט דבר מבורך, רק שיש בעיה מהותית אחת: מפתחים שומעים רשמית על המערכת בדיוק באותו זמן ששאר העולם שומע עליה, לא לפני כן (למעט חברות חומרה מסויימות שעובדות בשת”פ צמוד והדוק עם גוגל).
הבה ניקח את הגירסה האחרונהשל גוגל אנדרואיד, גירסה 2.0. האם מישהו ממפתחי התוכנה קיבל אימייל או הזמנה מגוגל על כך שהולכת לצאת גירסת אנדרואיד חדשה בקרוב? התשובה פשוטה: לא. למעט מהנדסי מוטורולה שעבדו עם גוגל על ה-Droid, אף אחד לא קיבל שום כניסה לקוד החדש.
מדוע בכלל העניין חשוב? בגלל עניין פשוט: הכנות של תוכנה.
ניקח את מיקרוסופט לדוגמא: כשמיקרוסופט רוצה לשחרר מערכת הפעלה חדשה (או שדרוג), היא מודיעה למפתחים שלה שמנויים ב-MSDN וגם בעיתונות על כך שעומדת לצאת מערכת הפעלה חדשה. מפתחים המנויים ב-MSDN של מיקרוסופט גם יקבלו גירסאות מוקדמות שאולי לא יהיו הכי יציבות, אבל יהיה להם משהו מול מה לפתח ולנסות את התוכנה שלהם, כך שכשהגירסה הסופית תצא (בד”כ כמה שבועות עד חודשים לפני היציאה לציבור), למפתח תהיה עבודה מועטה לבדוק את המוצר שהוא מפתח לשוק מול הגירסא הסופית של מערכת ההפעלה. כך זה נהוג עם מיקרוסופט וכך זה עם Apple ועם חברות תוכנה רבות נוספות.
במקרה של גוגל, אם אני מפתח תוכנה לשיווק עבור המשתמשים אני נדפק. ביום שגירסת מערכת ההפעלה החדשה יוצאת לאוויר העולם, זה היום שבו גם אני כמפתח יכול להוריד אותה בדיוק כמו המשתמשים והמפתחים האחרים. אלו שיהיה להם ציודים מבוססים על מערכת ההפעלה החדשה וירכשו תוכנות דרך החנות של גוגל, סביר להניח שיזעקו מדוע התוכנה שלי לא עובדת או לא עובדת טוב. לי תהיה רק אפשרות להתנצל ולהבטיח להם שדרוג חינם. גוגל לא הודיעה לי כמפתח שהולכת לצאת גירסה חדשה של מערכת ההפעלה, היא לא נתנה לי גירסה מוקדמת כדי לבדוק שהמוצרים שלי בכלל רצים על המערכת החדשה או זמן להתכונן כדי לתקן/לשפר את המוצר שלי שלא רק ירוץ במערכת ההפעלה החדשה, אלא גם יתמוך בפונקציונאליות שמערכת ההפעלה החדשה נותנת.
גוגל צריכים להתעורר ולהתחיל להבין שהיחס שלהם למפתחים הוא גרוע. כמה גרוע? מאוד. אין תמיכה רשמית שאני יכול לשאול שאלות טכניות כמפתח ומישהו יהיה חייב לענות לי. יש קבוצות דיון שאם בא למפתחים לענות, אז יענו ואם לא.. אוכל לדפוק את הראש בקיר. באפל,במיקרוסופט, אדובי ואחרים – יש גם יש. במילים אחרות: זה שגוגל משחררת את הקוד באותו יום בו מוכרזת המערכת זה נחמד, אבל אני צריך את זה מס’ חודשים לפני כן, ואין לי בעיה לחתום על NDA בשביל לקבל את הקוד, כי כמו שאינני מעוניין שהמתחרים יראו את המוצר שלי לפני שאכריז עליו, גם גוגל לא יכולה לחשוף את המערכת לפני ההכרזה הרשמית ולשם כך קיים הסכם ה-NDA.
אפל מלקה את מפתחיה בשוטים (מתי המוצר שלך יופיע בחנות שלהם? שאלה מצויינת, תלוי בקריזה של הבודקים. האם האפליקציה שלך תאושר? שאלה מצויינת! תלוי אם אפל לא יתפסו קריזה על פיפס קטן באפליקציה שלך וישלחו לך Reject. הלקוח החליט שהוא רוצה החזר כספי? אתה מפסיד 100% מהמחיר למרות שקיבלת רק 70%… מתי שתקבל את כספך. אין זמן מוגדר שאפל מתחייבת לעמוד בו) אבל גירסת OS 3 היתה זמינה למפתחים הרבה לפני שהיתה זמינה לציבור, וגוגל צריכה ללמוד מכך.
לסיכום: מערכת הפעלה יכולה לקום או ליפול על דבר אחד חשוב: מוצרים נלווים (תוכנה, חומרה, שרותים וכו’). כשאתה דופק את אלו שמפתחים את המוצרים הנלווים כמה וכמה פעמים, אל תתפלא בסוף אם המערכת שלך נופלת כי אחרים כבר לא מוכנים ליפול שוב לשטיקים שלך.
כדאי שגוגל ילמדו זאת מהר.
אני מסכים עם כל מה שכתבת חוץ ממשהו אחד – פלאן זה לא עוגת גבינה, למעשה אין בו בכלל גבינה – רק חלב, סוכר וביצים 🙂
http://www.mako.co.il/food-recipes/recipes_column-cakes/Recipe-14295c1d0c37d11004.htm
ראוי לציין שזה לא המקום היחיד בו גוגל נותנים תמיכה גרועה. אחרי שחשבון ה-ְAdSense שלי הוקפא ולא יכולתי יותר להיכנס אליו, הרי שכל דבר שניסיתי כדי להשיג אדם שעובד בשבילם, עלה בתוהו. ראה:
http://community.livejournal.com/shlomif_hsite/11327.html
ודרך אגב, מה היא תיבת עריכת הפוסטים המעפנית הזאת? שוב פעם הרחבות סוררות של וורד-פרס?
או במילים של אדם חכם אחר:
אופיר, הלכתי לפי התרגום של גוגל Translate אחרי שבבילון לא נתן לי שום דבר כתוצאה מעניינת.
שלומי, אתה מתכוון תיבת עריכת טוקבק? זה פלאג שנקרא MCEComments שבסך הכל משתמש ב-tinyMCE שכבר מותקן בוורד-פרס ונותן חיים יותר קלים 🙂
אני לא ממש נהנה להגן על Google אבל בתור מפתח שמתמחה בטחום מכשירים חכמים אני חושב שאתה טועה מאוד.
היחס של Google כלפי מפתחים, לאומרות שאינו מושלם הרבה יותר טוב משל MS ובטח שבטח מזה של Apple שלדעתי קבע שיא בעניין יחס רע הן למפתחים והן לצרכנים.
ראשית, הרשה לי להזכיר לך שאמולטור וSDK לגרסה ראשונה של Android היו זמינים חינם לכל דורש חודשים לפני שהמכשיר הראשון הגיע לשוק.
למעשה, אפילו לפני שהמערכת הגיעה לגרסה 1.0
באותו זמן, Apple בכלל סרבה לספק SDK בהתחלה ורק בעקבות לחץ ציבורי נכנעה בסוף.
באשר למנוי MSDN, אכן מופיעות בו גרסאות BETA מידי פעם, אבל מדובר במשהו יקר מידי בשביל מפתחים פרטיים וזמין רק לחברות.
בנוסף, ככל שזה נוגע למכשירי Embedded אינך יכול הריץ עליהם גרסאות BETA אלא אם אתה היצרן.
Google נכון להיום היא החברה היחידה שאני מכיר (אלא אם מחשיבים את FIC ומכשירי Neo שלה שמריצים OpenMoko) שדעגה לספק מכשיר בגרסה מיוחדת למפתחים עם bootloader פתוח שמאפשר צריבה של מערכת שקומפלה בבית בלי צורך בפריצה.
http://developer.android.com/guide/developing/device.html
באשר ל-Apple רשיון ה-SDK שלהם הוא למעשה סוג של NDA והמפתחים אינם רשאים לדון בפומבי על פרטי ה-SDK.
תמיכה רשמית זה טוב ויפה, אבל מנסיוני אין תחליף לחילופי ידע בין מפתחים בשטח על גבי פורמים ורשימות דיוור ו-Apple למעשה מנסה לחסום את זה.
ואני לא מדבר כאן על גרסאות BETA או preview שתרם יצאו אלא גם על SDK למערכת שכבר משווקת ואפילו גרסאות ישנות.
שלא להזכיר את העובדה שהיא קובעת מה אפשר ומה אסור לפתח.
ראיתי גם מה הן הדרישות להתקנת גרסה מוקדמת של המערכת. אם נסכם אותן במילים פשוטות: תהיה מוכן לוותר על המכשיר עליו תתקין את זה כי לא תהיה לך דרך להחזיר את המערכת הישנה ואנחנו יכולים להשבית את גרסת הניסוי בכל רגע שנחליט.
עלויות פיתוח שכרוחות בכלים של MS או ההרשמה ל-Appstore אולי אינם משמעותיים מידי לחברות תוכנה, אבל בכל מה שנוגע למפתחים פרטיים ובמיוחד לאלה שרוצים לפתח תוכנה חופשית הם בעייתיים.
נכון לעכשיו google היא היחידה שמאפשרת פיתוח למכשירים שלה על כל שלושת בפלטפורמות הנפוצות למחשב האישי: Windows Linux, Mac ועוד בעזרת כלי חופשי (Eclips).
בעוד ש-Microsoft ו-Apple נועלות את המפתחים כל אחת לפלטפורמה שלה.
בעבר, MS סיפקה כלי חינמי לפיתוח למכשירים שמריצים Windows Mobile אבל לפני מספר שנים היא החליטה שהמערכת שלה מספיק פופלרית וכעת ניתן לפתח בשבילה רק על גרסאות מלאות של VS (לא בגרסאות express) שעולות לא מעט כסף.
אני מודה שלא עקבתי אחרי תאריכי שחרור של גרסה 2 של אנדרויד ויש הרבה דברים בהתנהלות של google שאני לא אוהב, כמו הדרישה לחיבור לחשבון google לפני תחילת שימוש במכשיר (לפחות זה ככה ב-G1), העובדה שאין root במכשירים רגילים ושמכשירי פיתוח אינם זמינים בכל המדינות, אבל עדיין לקטול אותם רק בגלל שלא סיפקו preview לגרסה אחת של מערכת הפעלה, ועוד להגיד שזה יותר גרוע מעגמת נפש והפסדים כספיים ש-Apple גורמת למפתחים זו הגזמה.
google עשו פשרה בניסיון לרצות הן את התעשייה וחברות הסלולר שרגילות לעשות דברים בצורה אחת ובין ניסיון למשוך את המשעבים של קהילת מפתחים של תוכנה חופשית.
היא רחוקה מלהיות אידיאלית ובהחלט יש בה יותר חסרונות בצד המחפתחים מאשר בצד החברות אבל עדיין, זו פריצת דרך בתחום.
אגב, ידעתה שהפיתוח ל-iPhone נעשה בשפה שנקראת Objective C?
יצא לי לראות את הסינטקס של השפה הזו והוא לא דומה כלל למה שאני מכיר משפות אחרות כגון משפחת Java, C או אחרות.
גם בחירה בשפה לא מוכרת שיש ללמוד, בנוסף ללימוד מערכת הפעלה חדשה לא בדיוק מקלה על המפתחים.
זאת בניגוד ל-MS שבחרה ב-++C C הנפוצות או google שבחרה ב-Java.
מה שכן, אני בהחלט מסכים עם המשפט המסכם שלך: מערכת eמה ונופלת על היישומים שזמינים עבורה ולכן חשוב מאוד שיהיו מפתחים שרוצים לעבוד עליה. אבל הניסיון של Apple עם iPhone הוכיח לי שיש בעולם הרבה יותר מפתחים מזוכיסטים ממה שחשבתי 😛