De boog kan niet altijd gespannen staan. Daarom even een blog berichtje met wat nonsicale gedachten. Gisteren zat ik voor de zoveelste keer naar Harry Potter & The Deadly Hallows te kijken toen me onder het nuttigen van een trapistje de volgende gedachten te binnen schoten. Hoe verschrikkelijk de dansscènes niet zijn in zowel de boeken als de films. Dansen moet voor J.K Rowling blijkbaar steeds als een traumatische ervaring worden voorgesteld. In tegenstelling tot eten bvb. dat telkens weer een feest hoort te zijn. Harry Potter is in dat opzicht fantastische lectuur voor Anorexia patiëntjes in spe, net zoals het voor alle wat motorisch onbegaafde, klungelige jongetjes een opluchting zal wezen, dat ze dansen niet fijn hoeven te vinden, zelfs al zijn meisjes er doorgaans dol op.
Maar toen ik nog iets dieper nadacht viel me in dat er wel heel wat gelijkenissen te bespeuren vallen tussen het programmeren van Python (of iedere andere echte object georiënteerde taal) en toveren zoals dat in Harry Potter’s wereld gebeurt. Zoals jullie weten pruts ik momenteel verder aan mijn blog in Web2py en daarbij komt dus python om de hoek gluren.
Bij toveren horen toverspreuken. Bij Python ‘call’ je functies, methodes, classes, objecten, enz. net zoals bij toveren door ze bij hun naam te noemen. Wanneer je dat doet gebeurt er iets. Soms iets dat je niet helemaal voorzien had en soms ook helemaal niets. Dan blijkt dat je je toverspreuk verkeerd uitsprak(lees: typfoutjes maakte). Wat moeilijkere toverspreuken blijken overigens altijd wel door één of andere ‘grote magiër’ uit het rijke tovenaarsverleden te zijn ontworpen. Zo programmeerde Albus Dumbledore de 10 gebruiken van drakenbloed samen met zijn partner Nicolas Flamel die op zijn beurt dan weer de uitvinder was van de ‘Steen der Wijzen’. Het fijne aan de tovernaarswereld is dat het blijkbaar ook allemaal ‘Open Source’ toepassingen zijn. Eénmaal uitgevonden mag iedereen ze gebruiken. Gratis en de voor niets. Ze zijn met andere woorden door de gemeenschap van magiërs/programmeurs toegevoegd aan de ‘Standard Library’.
Overigens wist u dat programmeerboeken die wat dieper ingaan op bepaalde aspecten van een taal vaak ‘kookboek’ heten? En dat bij het ontwerpen van een programma je vaak erg goed moet nadenken op voorhand welke ingrediënten je wanneer en in welke hoeveelheid toevoegt? Een beetje zoals bij ’toverdranken’ in de Potterboeken. Maar ook ’transfiguratie’ is een techniek die in Python haar evenknie kent en bijzonder frequent voorkomt al heet ze dan ‘omzetting’ of ‘converting’. In python kun je overigens ook omgevingen scheppen (bvb de Sandbox van GAE) waarbinnen bepaalde ‘spreuken’ of classes niet werken. Een beetje zoals bepaalde magie niet binnen de muren van Hogwards lukt.
En ik ben ook niet de enige die gelijkenissen ziet tussen de potterboeken en python. Zelfs de eminente Guido Van Rossum, de vader van de Python programmeertaal, zag die al eerder. Al was dat op een andere vlak dan ik dat hier doe. Hij wijst namelijk op de gelijkenissen in de ontwikkeling van Python over de jaren en de ontwikkeling van de plot in de potterboeken over de 7 delen. Moet het tenslotte nog worden herhaald dat Harry Potter vloeiend Python spreekt met alle slangen in zijn omgeving?