טרנד טכנולוגי או צעד חכם מתבקש?

March 8, 2016

no comments

מי שמכיר אותי יודע שאני תמיד בעד טכנולוגיות חדשות, כאלה שפתרו את הבעיות הקודמות שלנו ויצרו בעיות חדשות  🙂 אבל…

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

בתור ארכיטקט ראשי ויועץ אני נחשף להרבה לקוחות ומגוון פרויקטים. אני נתקל בהמון מקרים שבו הטרנד מנצח את ההיגיון. קחו לדוגמא טרנד אחר וחם אף יותר, הטרנד הנוכחי בעולמות טכנולוגיות ממשקי המשתמש. כולם רוצים Web, כולם עוברים ל Web. למה? ברמת ההיגיון – טכנולוגיות ה Web עברו שינוי והן בשלות יותר, יש תשתיות כגון Angular.JS, Nockout.JS ו Embe.js, יש שפות תומכות בהנדסת תוכנה כגון TypeScript ויש סביבות פיתוח נוחות כגון Web Storm ו VS Code. בנוסף כל החברות הגדולות משקיעות ב Web. HTML 5 מאפשרת לעשות דברים שלא יכולנו לעשות קודם וניתן אפילו לעבוד בתלת מימד עם WebGL. השימוש ב Web הוא Cross-Platform – מתאים גם ל- Desktop וגם למובייל, ההתקנה מרכזית ונוחה.

clip_image002

 

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

אם ננסה לבדוק טכנולוגיות UI אחרות ולראות עד כמה המערכות וסביבות הפיתוח החדשות תומכות בהן, אז נמצא טכנולוגיות עתיקות כגון MFC שעדיין קיימת ב Visual Studio גם לאחר כמעט 25 שנה, וטכנולוגיות ישנות קצת פחות כגון Windows Forms שקיימת כ 15 שנה ו WPF שקיימת כ 10 שנים. איך נראית אפליקציית Web בת 10 שנים? איך תיראה אפליקציה כזו בעוד 10 שנים, מה לא ייתמך?

גם בעולמות ה Cross Platform יש טכנולוגיות UI יציבות שנותנות דגש לתאימות אחורה. כמובן בכל טכנולוגיה יש מקרים שבהם נשברת התאימות אחורה. לדוגמא בשם ה Security טכנולוגיות רבות השתנו, אבל האם נלקח בחשבון מאמץ התחזוקה שדורש כזה שינוי ע”י הגוף שעושה את השינוי? כמה עולה השינוי לאותו גוף?

יש כמובן מקרים כואבים כגון XNA וסילברלייט, שחדלו מלהתקיים, לפחות בצורה המקורית שלהם. (הטכנולוגיה של סילברלייט היא הבסיס לטכנולוגית ה XAML של ה Universal Windows Platform). אין ספק שהמקרה של הפסקת טכנולוגיית הסילברלייט דחפה קדימה את הטרנד של ה Web.

אחד המדדים לבדוק יציבות של טכנולוגיה היא לבדוק במה החברות הגדולות משתמשות ומשקיעות. לדוגמא Visual Studio ממומש ב WPF, מיקרוסופט השקיע בו רבות ולכן הטכנולוגיה תמשיך להתקיים. באותה מידה ניתן לטעון ש Visual Studio Code מבוסס על טכנולוגית Web ולכן הטכנולוגיה תמשיך להתקיים. אבל להערכתי הסיבה שמיקרוסופט ביססה את VS Code על טכנולוגית Web היא כי ה Cross Platform היה חשוב יותר מיציבות הטכנולוגיה וכי מיקרוסופט מוכנה להשקיע הרבה בתמיכה במוצר כולל המאמץ להשאיר אותו עדכני – חוץ מזה גם מיקרוסופט לא חפה מטרנדים J

יש הבדל בין סוגי חברות והיכולת שלהם להשתנות ולשנות טכנולוגיות בצורה מהירה. אם החברה דינאמית, בעלת משאבים, בעלת אופי אג’ילי, אז מעקב אחר טרנדים יכול להיות מתאים ואפילו מוצלח. אבל הטרנד משפיע גם על חברות שלא מסוגלות להשתנות מהר, חברות שיש להן קוד שהוא בן 15 ו 20 שנה שעדיין מותקן במערכות אצל לקוחות, שעדיין נמצא בשימוש. ככל הנראה Windows יוכל להמשיך להריץ קוד מבוסס על WPF, Windows Forms ואפילו MFC בגרסאות העתידיות שלו, אך האם ה Browser של עוד כמה שנים יריץ את הקוד שאנחנו כותבים היום באותה צורה? מבלי הצורך לתחזק אותו ולשכתב אותו, או שמישהו בגוגל או מיקרוסופט יקבל החלטה שתשבור תאימות? לפעמים עד כדי הצורך לשכתב את כל הקוד על מנת לתמוך בגרסא החדשה. אנגולר 2.0 זו דוגמא לכך. או לדוגמא נושא חסימת הרצת התוספים בתוך הדפדפן – אחד הגורמים שהביאו להחלטה להפסיק את טכנולוגיות הסילברלייט, דוגמא נוספת היא הורדת התמיכה בסרגלי כלים – עוד החלטה שעלתה הון למספר חברות.

טכנולוגיות Web בראש ובראשונה נועדו לאפליקציות Web, כל שימוש בהם לטובת משהו אחר הוא סוג של פשרה. כמו בכל טכנולוגיה, הפשרה הזו יכולה להיות מוצדקת כי היא מספקת מענה טוב למרבית הדרישות, אולם במקרים רבים הפשרה היא תוצר של נהייה אחר הטרנד – ולכן כנראה בעוד מספר שנים נראה טרנד אחר – כזה שיסביר למה כדאי לפתח אפליקציות UI בטכנולוגית Desktop – או כמו שקוראים להם בעולם המובייל – Native Applications J

אלון.

Add comment
facebook linkedin twitter email

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*