עתיד פיתוח תוכנה: עתיד המחשבים P2

אשראי תמונה: Quantumrun

עתיד פיתוח תוכנה: עתיד המחשבים P2

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

    ובכן, המחשבים שהיו קיימים באותה תקופה היו הרבה יותר פשוטים ממה שהם היום. למעשה, הסמארטפון השחוק של האדם הממוצע חזק בכמה סדרי גודל מכל דבר על סיפונה של חללית אפולו 11 (וכל נאס"א של שנות ה-1960 לצורך העניין). יתרה מכך, מחשבים באותה תקופה קוידו על ידי מפתחי תוכנה מיוחדים שתכנתו תוכנה בשפות המכונה הבסיסיות ביותר: AGC Assembly Code או פשוט, 1s ו-0s.

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

    (בתמונה למעלה היא מרגרט המילטון עומדת ליד ערימת נייר המכילה את תוכנת אפולו 11.)

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

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

    - מרגרט המילטון, מנהלת אפולו תכנות מחשבים טיסות MIT Draper Laboratory, קיימברידג', מסצ'וסטס, "המחשב נטען", מכתב אל נתונים, מרץ 1, 1971

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

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

    פיתוח תוכנה להמונים

    תהליך החלפת הצורך בקוד 1 ו-0 (שפת מכונה) במילים וסמלים (שפה אנושית) מכונה תהליך של הוספת שכבות של הפשטות. ההפשטות הללו הגיעו בצורה של שפות תכנות חדשות שממצרות פונקציות מורכבות או נפוצות עבור התחום עבורו תוכננו. אבל במהלך שנות ה-2000 המוקדמות, צצו חברות חדשות (כמו Caspio, QuickBase ומנדי) שהחלו להציע מה שנקרא פלטפורמות ללא קוד או קוד נמוך.

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

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

    הגדרה מחדש של מה זה אומר להיות מפתח תוכנה

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

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

    ככל שההפשטות מתקדמות ושפות תוכנה חדשות הופכות את עבודת פיתוח התוכנה שגרתית יותר ויותר לאוטומטית, מה זה אומר להיות מפתח תוכנה בעוד 10 עד 20 שנה? כדי לענות על שאלה זו, הבה נעבור על האופן שבו מפתחי תוכנה עתידיים יתחילו לבנות את היישומים של מחר:

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

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

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

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

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

    *בהתבסס על המשוב של המפתח, ה-AI ילמד בהדרגה את כוונתו ויפיק את הקוד שישקף את מטרות הפרויקט.

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

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

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

    פיתוח תוכנה מונע בינה מלאכותית

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

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

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

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

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

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

    תוכנה כשירות

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

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

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

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

    תוכנה ללמידה עצמית (SLS)

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

    במילים אחרות, כבר אין AI ולמידת מכונה נגישה רק לענקיות תוכנה, כעת כל חברה ומפתח יכולים לגשת למשאבי AI מקוונים לבניית תוכנה ללמידה עצמית (SLS).

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

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

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

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

    עם זאת, לכל זה יש מלכוד.

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

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

    סדרת העתיד של המחשבים

    ממשקי משתמש מתפתחים להגדרה מחדש של האנושות: עתיד המחשבים P1

    מהפכת האחסון הדיגיטלי: עתיד המחשבים P3

    חוק מור דועך שעורר חשיבה מחודשת על שבבים: עתיד המחשבים P4

    מחשוב ענן הופך למבוזר: עתיד המחשבים P5

    מדוע מדינות מתחרות על בניית מחשבי העל הגדולים ביותר? עתיד המחשבים P6

    כיצד מחשבי קוונטים ישנו את העולם: עתיד המחשבים P7    

    העדכון המתוכנן הבא לתחזית זו

    2023-02-08

    הפניות לתחזית

    הקישורים הפופולריים והמוסדיים הבאים קיבלו התייחסות לתחזית זו:

    האוקיינוס ​​האטלנטי

    הקישורים הבאים של Quantumrun קיבלו התייחסות לתחזית זו: