זה לא תורמוס
היו ימים שבשביל לזהות פרח היה צריך לפתוח מגדיר צמחים ולחפש בין תמונות דהויות. היום בעידן ה AI מספיק לצלם את הפרח, לשאול את החבר מה יש בתמונה ולהחזיק אצבעות. כשהוא כותב תורמוס על תמונה של בן חצב יקינתוני זאת אחריות שלנו לזהות את הטעות (רק בשביל לקבל ממנו איזה "אתה צודק מאוד!"). כשעוברים לפייתון אין לו בעיה לזרוק לי בביטחון את המימוש הבא לחישוב סדרת פיבונאצ'י בשורה אחת:
fibonacci = lambda n, a=0, b=1: [a := b, b := a + b][0] if n else None
נראה יופי אבל כמו התורמוס, התוצאה אינה מספר מסדרת פיבונאצ'י.
וגם בתכנות הטעויות יכולות להיות יותר עדינות, ופה זה מתחיל להיות מטריד. הנה עוד שני מימושים שקיבלתי, תחילה:
from functools import lru_cache
fib = lru_cache(None)(lambda n: n if n < 2 else fib(n-1) + fib(n-2))
print(fib(10)) # Output: 55
ואז הצעה נוספת ש"משתמשת באיטרציות כדי לשפר ביצועים":
fib = lambda n, a=0, b=1: a if n == 0 else fib(n-1, b, a+b)
print(fib(10)) # Output: 55
ואתם צודקים, אין פה איטרציות ובהשוואה ל LRU Cache גם אין פה שיפור ביצועים.
עכשיו הסיפור הוא לא תורמוסים ולא פיבונאצ'י. המעבר לתוכנות מבוססות GPT הוא גם מעבר למערכות שעושות טעויות. לא "באגים" כמו שאנחנו רגילים מאז ומעולם אלא טעויות רנדומליות שמקורן במבנים בסיסיים לא אמינים. גם לזה עוד נצטרך להתרגל.