En we zijn nog geen stap verder

In de jaren zestig en zeventig ― nog in de tijd van de mainframes ― werd stilaan duidelijk dat er drie verschillende niveau ‘s waren. Je had de logica van de presentatie, de logica op het applicatie-niveau en tenslotte de data-logica. Fundamenteel echter is dat deze verschillende logica van elkaar gescheiden behoren te zijn. Terug naar de jaren 50!

In ’93 was iedereen wild van CGI. Het was een doorbraak toen het plots mogelijk werd om vanuit je browser standaard input naar de webserver door te geven door middel van tag-value-pairs en dat de webserver dynamisch een HTML-documentje afleverde aan de client.
Technologieën zijn nooit perfect en al snel werd men geconfronteerd met drie problemen. Een eerste was dat er voor elke request een nieuw proces diende gestart te worden. Dat vrat enorm veel geheugenruimte. De capaciteitsproblemen die deze veroorzaakten werd met de opkomst van API‘s verholpen. Scripts van programmeertalen als PHP, ASP en ColdFusion lopen namelijk in-proces op de server en men ging functies, procedures en methodes aanroepen. Het tweede probleem situeerde zich op het niveau van de state. Er is geen steady state, alles was stateless. Alle argumenten werden steeds over en weer gestuurd. Cookies ― voor ons banaal, maar toen was dat revolutionair ― waren de ultieme oplossing. Het laatste problemen had te maken met de uitvoer. De webserver moet geen volledige html documents terugsturen want deze data is overtollig in hoeveelheid. Ten tweede, minstens even erg, is het feit dat er spaghetti-code onstaat. Het wordt een rotzooi waarin layout en content doorheen worden geklutst. Deze problematiek is echter nog niet van de baan. Het probleem van de overtollige data heeft men willen verhelpen met de introductie van onder andere ActiveX van Microsoft en de Java Applets maar deze ideeën werd al vlug afgeschaft; er onstond een onbeheersbaarheid, het verliep vaak over een ander protocol dan HTTP zoals DCOM en werd daarom tegengehouden door menige firewalls.

Het schrijven van een hele uitzetting over web applicatie servers laat mij van de kern van de zaak afwijken. Maar het gaat er maar om dat nieuwe technologieën als AJAX, JSON en REST kritisch mogen bekeken worden. Voor velen zullen ze vernieuwend tot zelfs heilig zijn. Ik ken zelfs mensen die er hele thesissen over schreven. Deze nieuwe technologieën zijn ook revolutionair, maar in beperkte mate. De hamvraag is of ze het in feite veel verschillen van andere technologieën. En dat is simpel niet zo. Browsers et cetera zijn gelukkig wel verstandiger geworden maar op een dieper niveau is alles nog hetzelfde gebleven. Zo is bijvoorbeeld het probleem van de coding mess nog steeds gebleven. De introductie van nieuwe technologieën weerspiegeld vaak de befaamde Processie van Echternach: twee stappen naar voren en drie naar achteren waardoor er niet echt vooruitgang meer is. En de introductie van vele nieuwe technologieën is vaak omdat er geen beginnen meer aan is om de spaghetti van een vorige technologie te beheren. Vele zijn dan ook louter een excuus, een drogreden. Eigenlijk zijn er drie redenen voor de introductie van nieuwe technologieën. De eerste heb ik zo juist aangehaald, ten tweede is er ironisch genoeg de wet van het behoud van de ellende. Tenslotte: vendors willen juist die mengeling van code. Schuif de schuld in de schoenen van software-giganten in plaats van technologie. Het is goed om over acroniemen heen te leren zien.

Leave a Reply

Your email address will not be published. Required fields are marked *