Alle applicaties in de informatica komen er eenvoudig gezegd op neer dat je gegevens in de ene vorm omzet naar gegevens in een andere vorm. Bijvoorbeeld: een objectgeoriënteerd programma dat ordergegevens in een relationele database omzet naar rekeningen in XML-formaat.
Het probleem is dat programmeurs moeten goochelen met drie verschillende datamodellen: relaties, objecten en XML. Bovendien ondersteunt ieder datamodel alleen zijn eigen, domeinspecifieke programmeer- of querytaal (SQL, C++, XQuery). Het is daarom helemaal niet verwonderlijk dat veel programmeurs elke dag weer het haar uit hun hoofd rukken in een verwoede poging dit allemaal aan elkaar te knopen tot een werkend programma.
Gelukkig was er in de eerste helft van de vorige eeuw een aantal wiskundigen die werkten aan exotische theorieën zoals categorietheorie, monaden, monoïden en lambdacalculus. Deze theorieën geven diep inzicht in de essentie van verzamelingen en algebraïsche operaties op verzamelingen. Op basis van deze inzichten is het nu mogelijk gebleken om de verschillende datamodellen en hun bijbehorende querytalen onder één noemer te brengen, in plaats van ze te beschouwen als drie, volkomen verschillende, speciale gevallen.
Na een lange reis van de wiskunde via de theoretische informatica (denotationele semantiek, databasetheorie), functionele talen (bijvoorbeeld SETL, Miranda, Haskell) en scripting (Python) hebben concepten zoals monaden, lambda-expressies, type-inferentie en comprehensies nu eindelijk de dagelijkse wereld van de ‘gewone’ programmeur bereikt. En wel in de vorm van Language-Integrated Query (LINQ) ondersteuning, die te vinden zal zijn in de komende versies van C# 3.0 en Visual Basic 9. Daarmee komt ook meteen een eind aan de haaruitval van programmeurs.
Het zijn uiteindelijk het toch weer die rare theoretici die de boel voor ons redden. Laten we hen asjeblieft in ere houden! Wie weet blijkt over honderd jaar dat zij net nú een oplossing hebben bedacht voor een probleem waar onze kleinkinderen mee zullen worstelen.