Thursday, October 31, 2013

פרדוקס הצרכן והמפתח

לפני שבע שנים חיינו בעידן סלולארי אחר. עידן בו הטלפונים שלנו, שהיו לעתים גם מחשבי כף-יד, ולימים גם מקלטי ג׳יפיאס עם מפות ויכולות ניווט – היו מכונות זמן-אמת, בעלות משאבים מוגבלים עד מאוד והמפתחים לפלטפורמות הניידות, Windows Mobile ו-Palm OS, דאז, התייחסו אליהן ככאלה. כל פיסת זיכרון הייתה מוקצת בחרדת קודש ובכובד ראש. כל כתיבה למערכת הקבצים נעשתה תוך מחשבה עמוקה ודרך מעבר מדוקדק על יכולות המכשירים. התוכנות שנכתבו לא היו מאוד יפות ואסטתיות, אך הן היו מהירות ויחסית יציבות, וחשוב מכל, הן ידעו את מקומן באקו-סיסטם של מערכת הפעלה שלא נולדה להריץ *רק* אותם. גם אם לא מרצון, המערכת והמשאבים הגבילו אותם לצניעות פיתוח. צניעות שכמעט ולא קיימת היום.


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

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


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

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

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

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

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

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

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