കോൾബാക്ക് എന്നത് കമ്പ്യൂട്ടർ പ്രോഗ്രാമിംഗിൽ മറ്റ് കോഡുകളിലേക്ക് ഒരു ആർഗ്യുമെന്റായി കൈമാറുന്ന ഒരു കോഡിന്റെ ഒരു ഭാഗത്തെ വിവരിക്കാൻ ഉപയോഗിക്കുന്ന പദമാണ്. ഇതിനെ "സബ്റൂട്ടീൻ" അല്ലെങ്കിൽ "കോൾബാക്ക് ഫംഗ്ഷൻ" എന്നും വിളിക്കുന്നു. ഒരു ആർഗ്യുമെന്റായി പാസ്സാക്കിയ കോഡ് സാധാരണയായി വിളിക്കപ്പെടുന്ന ഫംഗ്ഷൻ എക്സിക്യൂട്ട് ചെയ്തതിന് ശേഷം എക്സിക്യൂട്ട് ചെയ്യപ്പെടും. ഒരു ടാസ്ക് പൂർത്തീകരിച്ചതായി ഒരു പ്രോഗ്രാമിനെ അറിയിക്കുന്നതിനോ അല്ലെങ്കിൽ ഒരു നിർദ്ദിഷ്ട ഇവന്റിന് ശേഷം ഒരു നിശ്ചിത പ്രവർത്തനങ്ങൾ നടത്തുന്നതിനോ പ്രോഗ്രാമിംഗിൽ കോൾബാക്കുകൾ സാധാരണയായി ഉപയോഗിക്കുന്നു.
ഒബ്ജക്റ്റ്-ഓറിയന്റഡ് പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ, ഒരു കോൾബാക്ക് സാധാരണയായി ഒരു ഒബ്ജക്റ്റ് അല്ലെങ്കിൽ രീതിയാണ്, അത് ഒരു അറിയിപ്പ് സിഗ്നലായി ഉപയോഗിക്കുന്നതിന് ഉയർന്ന തലത്തിലുള്ള ഒബ്ജക്റ്റിലേക്ക് കൈമാറുന്നു. ഒരു നിശ്ചിത ഇവന്റ് സംഭവിക്കുമ്പോൾ പ്രോഗ്രാമിനെ അറിയിക്കാൻ ഈ അറിയിപ്പ് സിഗ്നൽ ഉപയോഗിക്കാം. ഇതിന്റെ ഒരു സാധാരണ ഉദാഹരണം, ഒരു ഉപയോക്താവ് ഒരു ബട്ടണിൽ ക്ലിക്കുചെയ്യുമ്പോൾ, ആപ്ലിക്കേഷന്റെ ഉപയോക്തൃ ഇന്റർഫേസ് (UI) ലെയർ ബട്ടൺ ക്ലിക്കുചെയ്ത ബാക്കെൻഡ് കോഡിനെ അറിയിക്കാൻ ഒരു കോൾബാക്ക് ഉപയോഗിക്കും.
ഫങ്ഷണൽ പ്രോഗ്രാമിംഗിൽ, മറ്റൊരു ഫംഗ്ഷനിലേക്ക് ഒരു പാരാമീറ്ററായി കൈമാറുന്ന ഒരു ഫംഗ്ഷനാണ് കോൾബാക്ക്. സ്വീകരിക്കുന്ന ഫംഗ്ഷൻ എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ, കോൾബാക്ക് ഫംഗ്ഷൻ അതിലേക്ക് ഒരു ആർഗ്യുമെന്റായി കൈമാറുകയും തുടർന്ന് എക്സിക്യൂട്ട് ചെയ്യുകയും ചെയ്യുന്നു. ഉദാഹരണത്തിന്, ഒരു പട്ടികയിൽ ആവർത്തിക്കാനും ഓരോ ഘടകത്തിലും ഒരു നിശ്ചിത പ്രവർത്തനം നടത്താനും ഒരു മാപ്പ് ഫംഗ്ഷൻ ഉപയോഗിച്ചേക്കാം. ഈ സാഹചര്യത്തിൽ, ഓരോ ഘടകത്തിലും നടപ്പിലാക്കേണ്ട പ്രവർത്തനം മാപ്പ് ഫംഗ്ഷനിൽ ഒരു കോൾബാക്ക് ആയി കൈമാറും.
കോൾബാക്കുകൾ പല പ്രോഗ്രാമിംഗ് ഭാഷകളുടെയും ഒരു പ്രധാന സവിശേഷതയാണ്, സങ്കീർണ്ണവും ശക്തവുമായ ആപ്ലിക്കേഷനുകൾ സൃഷ്ടിക്കാൻ ഇത് ഉപയോഗിക്കാം. വെബ് ഡെവലപ്മെന്റിൽ ജാവാസ്ക്രിപ്റ്റിന്റെ വർദ്ധിച്ചുവരുന്ന ഉപയോഗത്തോടെ, കോൾബാക്കുകൾ അസിൻക്രണസ് കോഡ് കൈകാര്യം ചെയ്യുന്നതിനുള്ള ഒരു ജനപ്രിയ മാർഗമായി മാറിയിരിക്കുന്നു. C, Java, Python, Ruby, Go എന്നിവയുൾപ്പെടെ വിവിധ ഭാഷകളിലും കോൾബാക്കുകൾ ഉപയോഗിക്കുന്നു.
മൊത്തത്തിൽ, കോൾബാക്കുകൾ പ്രോഗ്രാമിംഗിന്റെ അടിസ്ഥാന ഘടകമാണ്, കൂടാതെ പല പ്രോഗ്രാമുകളുടെയും അവിഭാജ്യ ഘടകമാണ്. കോൾബാക്കുകൾ സങ്കീർണ്ണമായ ആപ്ലിക്കേഷനുകൾ സൃഷ്ടിക്കാൻ ഉപയോഗിക്കാമെങ്കിലും, അവ ശ്രദ്ധയോടെ കൈകാര്യം ചെയ്യണം, കാരണം അവ പലപ്പോഴും ഒരു പ്രോഗ്രാമിലേക്ക് പിശകുകൾ അവതരിപ്പിക്കും.