Callbacks - a more complex code sandwich
Archive - Originally posted on "The Horse's Mouth" - 2007-08-19 15:23:26 - Graham EllisWhen you write a piece of code, you're normally putting the filling into the sandwich; there's a built-in program in your computer that controls the loading and running of the code thst you've written, and there is a whole library of standard pieces of code that you call to perform the low level operations. So thus you provide the sandwich filling.
A program as simple as
print "Hello World"
(and that will work in Perl, Python or PHP amongst others) illustrates this - the operating systen runs it, and the built in function within the language chosen deals with the detail of output.
But there are a few occasions where the mechanism gets a bit more complex - where one of the functions itself calls BACK to your code. Let's say you're sorting, but you don't want to write your own sort algorithm. How will that work? Well - you can call the sort function but then how do you tell it whether record a comes before or after record b? The easiest answer is to pass the name of a function that you've written to answer just such a question into the language's sort routine and have it callback to your code.
During last week's course, I was describing this mechanism and in order to make it clearer, I wrote my own piece of code to do the sorting ... but then took that out to use Python's own sort routine. I've posted the example up to our longer Python examples - you can see both the version that uses the callback, and my example of what really happens inside.
Callbacks are used in most programming languages, but not usually all that often. Big uses are sorting, and for even handling on GUIs (Graphic User Interfaces).