אריה עמית | יועץ אסטרטגי, חבר נשיאות הלשכה
כולם נדהמים מהעוזרים החדשים מבוססי בינה מלאכותית. הם עוברים בחינות לשכת עורכי הדין וכותבים שירים. הם גם מפיקים תוכניות ואנשים רבים מכריזים כעת על סוף עידן התכנות.
כלי הבינה המלאכותית יוצרת (Generative AI) המבוססים על מודלים של מכונות לומדות ושפות טבעיות - כמו OpenAI, מהחברה שהביאה לנו את ChatGPT, או AlphaCode, מחטיבת DeepMind של גוגל - כבר החלו לשנות את הדרך שבה תוכניתנים מקצועיים עושים את עבודתם.
נכון לעכשיו, הכלים האלה עובדים בעיקר בתור עוזרים - הם יכולים למצוא באגים, לכתוב הסברים לקטעי קוד מתועד גרוע ולהציע הצעות לקוד לביצוע משימות שגרתיות.
אבל הכלים הללו נעשים במהירות מספיק חכמים כדי להתחרות במתכנתים אנושיים. בשנה שעברה דיווחה DeepMind בכתב העת Science שכאשר התוכניות של AlphaCode הוערכו מול תשובות שהוגשו על ידי משתתפים אנושיים בתחרויות קידוד, הביצועים שלה "מתאימים בקירוב למתכנת מתחיל עם כמה חודשים עד שנה של הכשרה".
הנדסת תוכנה נראית כמו אחד התחומים שיכולים להשתנות באופן היסודי ביותר על ידי עליית הבינה המלאכותית. במהלך השנים הבאות, בינה מלאכותית עשויה להפוך תכנות מחשבים מעיסוק נדיר עם שכר גבוה למיומנות נגישה מאוד שאנשים יכולים לאסוף ולהשתמש בה בקלות כחלק מעבודתם במגוון רחב של תחומים.
זה לא בהכרח יהיה נורא עבור מתכנתי מחשבים - העולם עדיין יזדקק לאנשים עם כישורי תיכנות מתקדמים - אבל זה יהיה נהדר עבור כולנו. מחשבים שכולנו יכולים "לתכנת", מחשבים שאינם דורשים הכשרה מיוחדת כדי להתאים ולשפר את הפונקציונליות שלהם ושאינם מדברים בקוד: העתיד הזה הופך במהירות להווה.
"התכנות יהיה מיושן", חזה לאחרונה מאט ולש, מהנדס לשעבר בגוגל ואפל. התחזית שלו לא נשמעת בלתי סבירה:
"אני מאמין שהרעיון המקובל של "כתיבת תוכנית" עומד בפני הכחדה, ואכן, עבור כל היישומים פרט למאוד מיוחדים, רוב התוכנות, כפי שאנו מכירים אותן, יוחלפו במערכות בינה מלאכותית שמאומנות ולא מתוכנתות . במצבים שבהם צריך תוכנית "פשוטה", התוכניות הללו, עצמן, יופקו על ידי AI ולא יקודדו ידנית."
הטיעון של ולש נשא את הכותרת "סוף התכנות" (למאמרו לחצו..), אבל יש גם דרך שבה בינה מלאכותית יכולה לסמן את תחילתו של סוג חדש של תכנות - כזה שלא מחייב אותנו ללמוד קוד אלא הופך הוראות בשפה אנושית לתוכנה. ל-AI לא אכפת איך אתה מתכנת אותו - הוא ינסה להבין למה אתה מתכוון, הפער הדיגיטלי נסגר כולם מתכנתים עכשיו - אתה רק צריך להגיד משהו למחשב.
"אני לא מדבר רק על דברים כמו CoPilot של Github שמחליף מתכנתים. אני מדבר על החלפת כל הרעיון של כתיבת תוכניות במודלים של אימון. בעתיד, תלמידי מדעי המחשב לא יצטרכו ללמוד מיומנויות כגון איך להוסיף צומת לעץ בינארי או לקוד ב-C++. חינוך מסוג זה יהיה מיושן, כמו ללמד סטודנטים להנדסה כיצד להשתמש במקרן שקופיות."
"המהנדסים של העתיד יפעילו, בכמה הקשות, מופע של מודל של ארבעה קווינטיליון פרמטרים שכבר מקודד את מלוא הידע האנושי , מוכן לקבל כל משימה הנדרשת מהמכונה. עיקר העבודה האינטלקטואלית של לגרום למכונה לעשות מה שרוצים תהיה על המצאת הדוגמאות הנכונות, נתוני ההדרכה הנכונים והדרכים הנכונות להעריך את תהליך האימון. "
"במדעי המחשב החדש - המכונות יהיו כל כך חזקות וכבר יידעו לעשות כל כך הרבה דברים שהתחום ייראה פחות כמו עשייה הנדסית ויותר כמו חינוכית; כלומר, איך לחנך את המכונה בצורה הטובה ביותר , לא שונה מהמדע של איך לחנך את הילדים בצורה הטובה ביותר בבית הספר. עם זאת, בניגוד לילדים (אנושיים), מערכות הבינה המלאכותית הללו יטיסו את המטוסים שלנו, יפעילו את רשתות החשמל שלנו, ואולי אפילו ישלטו על מדינות שלמות. הייתי טוען שהרוב המכריע של מדעי מחשב קלאסי הופך ללא רלוונטי כאשר המיקוד שלנו פונה ללמד מכונות אינטליגנטיות במקום לתכנות ישירות שלהן. התכנות, במובן המקובל, למעשה יהיה מת."
פרופ' ברטרנד מאייר חולק על הטיעון הנ"ל ( למאמרו לחצו.. ) וטוען ש "AI לא עוזר למתכנתים", לדבריו
"קל לראות כיצד כלי בינה מלאכותית גנרטיבית יכולים לבצע עבודה מצוינת ולהתעלות על אנשים בתחומים רבים: היכן שאנו זקוקים לתוצאה שתגיע מהר מאוד, משכנעת, דומה למה שמומחה מוביל היה מייצר, וכמעט צודקת במהות. חוברות שיווק, תרגומים של אתרי אינטרנט, ניתוח תמונה רפואי. אין ספק שיש עוד הרבה. אבל לתכנות יש דרישה ייחודית: תוכניות חייבות להיות נכונות. אנו יכולים לסבול באגים, אך פונקציונליות הליבה חייבת להיות נכונה. בינה מלאכותית בצורתה המודרנית אינה מייצרת תוכניות נכונות: היא מייצרת תוכניות המבוססות על הרבה תוכניות קודמות שהיא ראתה. תוכניות אלו נראות נכונות אך אין להן ערובה לנכונות. אני מדבר על בינה מלאכותית "מודרנית" כדי להבדיל בינה לבין הסוג הקודם שניסה לשחזר את החשיבה הלוגית האנושית, למשל באמצעות מערכות מומחים. הבינה המלאכותית של היום פועלת לפי הסקה סטטיסטית."
"עם זאת, להנדסת תוכנה יש חדשות טובות. למרות כל ההייפ על כך שלא נצטרך לכתוב תוכניות, איננו יכולים לשכוח שכל מתכנת, אנושי או אוטומטי, זקוק למפרטים, ושכל תוכנית מועמדת דורשת אימות. לאחר ה"וואו!", בעלי העניין מבינים בסופו של דבר שלתוכנית מרשימה שנכתבת בלחיצת כפתור אין הרבה שימוש, ואף עלולה להזיק, אם היא לא עושה את הדברים הנכונים - מה שבעלי העניין רוצים. "
לדעתי, על אף ההתפתחות המהירה בתחום הבינה המלאכותית, ישנן תחומים שבהם המתכנתים מתמחים ומספקים יתרונות ייחודיים:
עיצוב ארכיטקטורת התוכנה: המתכנתנים מבינים את מבנה התוכנה והם אחראים לתכנון ובניית ארכיטקטורות מתוחכמות. הם יכולים להתמודד עם רעיונות יצירתיים ולבחון פתרונות אלגוריתמיים מורכבים.
הבנה והתמודדות עם בעיות מורכבות: המתכנתנים מיישמים מיומנויות אנליטיות ובעיות שינה פתרונות יצירתיים לפתרון בעיות מורכבות. הם יכולים לזהות תקלות, לנתח באגים ולפתור בעיות בצורה ממוקדת.
הבנה עמידה בדרישות העסקיות: המתכנתנים מתמקדים בהבנה העמידה בדרישות העסקיות של הלקוחות והמשתמשים. הם מבינים את המגבלות, התנאים הפיזיים והתפקודיים של המערכת ומתאימים את הפתרון התוכנתי לפי צרכי הלקוח.
בנוסף, המתכנתנים מסוגלים ליצור קוד מחדש ולהתמודד עם שינויים ושדרוגים בתוכנה. הם מבינים את הרקע הטכנולוגי והמערכתי של התוכנה ויכולים לבצע תיקונים ושדרוגים בצורה מהימנה.
לסיכום, תכנות היא דיסציפלינה יצירתית ופותרת בעיות הכוללת הבנת מערכות מורכבות, עיצוב אלגוריתמים ויישום פתרונות. זה דורש שיקול דעת אנושי, חשיבה ביקורתית ומומחיות בתחום, שלא ניתן להחליפו במלואם באוטומציה. בעוד שכמה משימות תכנות שגרתיות עשויות להיות אוטומטיות, תמיד יהיה צורך במתכנתים מיומנים כדי להמשיג, לעצב ולתחזק מערכות תוכנה.
יתרה מכך, ככל שהטכנולוגיה ממשיכה להתקדם, צפויות לצוץ שפות תכנות, מסגרות ופרדיגמות חדשות. מתכנתים יצטרכו להסתגל וללמוד כלים וטכניקות חדשות כדי להתעדכן בנוף המשתנה. הביקוש למתכנתים עשוי להשתנות מבחינת הכישורים הנדרשים, אך הצורך באנשים שיכולים להבין, ליצור ולנהל תוכנה צפוי להימשך.
בעוד שתחום תכנות המחשב עשוי לעבור שינויים ומשימות מסוימות עשויות להיות אוטומטיות, לא סביר שהוא ייעלם לחלוטין. מתכנתים מיומנים ימשיכו, לדעתי, למלא תפקיד מכריע בפיתוח, תחזוקה וקידום מערכות תוכנה.
Comments