טיפוסים חזקים ו AI

24/06/2025

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

def count_lines(fp: typing.IO):

לפונקציה הזו:

def count_lines(fp: str):

מאוד ברור גם לבני אדם וגם ל AI ומאפשר ל AI לייצר את המימוש הנכון לכל כותרת. יותר מזה, כשאני מבקש מ Gemini להשלים מימוש של פונקציית פייתון שלא מכילה Type Hints הוא מוסיף לי אותם מיוזמתו.

במקביל אני מופתע לגלות שגם בשפות שלא כוללות Type Hints אני מקבל מימושים טובים וכמעט בלי בעיות טיפוסים. ב langlets יש לי כבר כ 2,500 שורות JavaScript וה AI מצליח להתמודד עם זה בלי טעויות. ב Ruby של הפרויקט הוא כן טועה אבל בעיקר כשאני כותב קוד מבלבל.

מה שמביא אותנו לשאלה - עד כמה חשובים טיפוסים חזקים בעידן ה AI? שאלתי את קלוד והוא העלה 3 מקרים חשובים בהם מערכת טיפוסים היא ממש קריטית להבנת הקוד:

  1. קוד שמפותח לאורך שנים בסטנדרטים משתנים.

  2. החלפת מפתחים בצוות (שגורמת לשינוי בסטנדרטים).

  3. אינטגרציה בין מערכות.

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