בפיתוח תוכנה, המונח "קולבק" הוא אחד המונחים הכי פחות פורמליים ועם הכי הרבה הגדרות, מה שיוצר חוסר סדר ובלבול.
מהניסיון שלי, ההגדרה הכי תמציתית ופרקטית של המונח היא כלהלן:
פרוצדורה המועברת כארגומנט, או, קריאה לפרוצדורה המועברת כארגומנט
הסבר:
אם בעת קריאה לפרוצדורה נעביר לה ארגומנט שהוא פרוצדורה בעצמו, או, קריאה לפרוצדורה, אז סביר להניח שפרוצדורה כזו או קריאה לפרוצדורה כזו תכונה פרוצדורה מועברת (passed procedure) או קריאה מועברת (passed call) ולכן בכל פעם שהפרוצדורה שמכילה את הארגומנט\ים הזה\הללו תיקרא, אז גם הקוד המועבר יעבור הרצה.
לפיכך, "קולבק" הוא למעשה או פרוצדורה מועברת, או קריאה מועברת (תלוי במקרה לגופו).
המונח "קולבק" כמונח מטעה
לפי דעתי, המונח "קולבק" עצמו מטעה שכן העברת פרוצדורה או קריאה איננה בהכרח "בק" (בחזרה, כלומר פעם שנייה ואילך) אלא אולי מתרחשת פעם ראשונה (ואף ראשונה ואחרונה) שהרי לפחות עקרונית, בכל פעם שהפרוצדורה המכילה תיקרא ← הפרוצדורה המועברת, או הקריאה לפרוצדורה המועברת, תרוץ גם כן ואין הכרח שזה יקרה יותר מפעם אחת.
איך לסיים את הויכוחים על המונח הזה בקרב מתכנתים?
לפי דעתי, הדרך הנכונה היא פשוט להגיד מונחים ארוכים יותר אבל מדויקים וברורים יותר כמו:
- פרוצדורה מועברת
- קריאה-לפרוצדורה מועברת
או, עוד יותר ארוך:
- פרוצדורה המועברת כארגומנט
- קריאה-לפרוצדורה המועברת כארגומנט