Ajax probleemloos?
Wie installeert er nog een mail handler, nu Gmail of Yahoo! Mail bijna net zo gebruiksvriendelijk zijn? Wie koopt er nog een tekstverwerker of spreadsheetprogramma, nu Google Docs deze applicaties gratis via de browser beschikbaar stelt?
![Tech & Toekomst](https://static.agconnect.nl/3716b8e7-d509-5695-a5c4-c707fdf87148/article/d1/c0/d1c0b592-f42e-4a6d-b764-215d03828072/opening_image/opening_image_hero/tech-en-toekomst.jpg)
De trend is niet meer te keren: de applicatie van de toekomst draait in de webbrowser.
Tot voor kort was de browser niet meer dan een programma om een serie hypertekstpagina’s, opgemaakt in HTML, te bekijken. Maar dit klassieke multi-pagemodel heeft zijn langste tijd gehad.
Tegenwoordig bevatten webapplicaties allerlei rijke userinterface widgets, zoals sliders, tabs, in- en uitklappende fragmenten, zooming et cetera. De spreadsheet van Google draait geheel in de browser, maar heeft niets meer met een traditioneel hypertekstdocument te maken. En Google is hier zo succesvol mee, dat ook Microsoft een webgebaseerde variant op zijn Office tool suite via de browser uit gaat brengen.
De techniek die dit alles mogelijk maakt, is bekend onder de naam Ajax: een afkorting voor ‘Asynchronous JavaScript and XML’.
JavaScript is de geïnterpreteerde scriptingtaal die door alle browsers gesproken wordt: hiermee kunnen de fraaie userinterface widgets worden gemaakt, en acties aan bepaalde userinterface events (zoals specifieke clicks) worden gehangen.
Het ‘asynchrone’ onderdeel van Ajax zorgt ervoor dat de webapplicatie niet hoeft te wachten op resultaten die het van bijvoorbeeld een webserver wil halen: de applicatie, en dus de userinteractie, kunnen gewoon doorgaan terwijl op de achtergrond de browser informatie van de webserver betrekt. Mede hierdoor krijgt de webapplicatie het responsieve karakter dat we van desktopapplicaties gewend zijn.
De rol van XML in Ajax, ten slotte, ligt in de communicatie tussen de webbrowser en server. Bijzonder aan Ajax is dat deze communicatie gebruikmaakt van ‘delta’s’, waarmee alleen wijzigingen in de toestand van de userinterface worden doorgegeven. Zo wordt voorkomen dat de volledige toestand van de pagina steeds opnieuw van de server gehaald moet worden. In plaats daarvan wordt deze toestand bijgehouden binnen de browser, middels het Document Object Model (DOM).
Ajax wordt om diverse redenen veel toegepast in de praktijk. Voor eindgebruikers is een interactieve, gebruiksvriendelijke omgeving een vanzelfsprekendheid. Zij hebben geen bezwaar tegen een webapplicatie, maar verwachten dan wel dat deze net zo gebruiksvriendelijk is als een traditionele desktopapplicatie. Voor de eigenaar en beheerder is Ajax aantrekkelijk omdat een rijke gebruikersinterface gecombineerd kan worden met het gemak van de centrale deployment via de webserver – een groot voordeel ten opzichte van de installatie per werkplek. Bovendien werken alle gebruikers altijd met dezelfde en meest recente versie. De softwareontwikkelaars, ten slotte, zijn veelal enthousiast over de nieuwe technische mogelijkheden die Ajax biedt, en de nieuwe vorm van programmeren die hierbij komt kijken.
Maar zonder problemen is het gebruik van Ajax zeer zeker niet. Hoe staat het met de veiligheid wanneer veel JavaScript-code van allerlei verschillende plekken wordt geladen? Hoe zit het met de performance, zowel aan de server- als browserkant? En, is al dat geprogrammeer in JavaScript nog wel te doorgronden voor de gemiddelde softwareontwikkelaar? En als deze moeite heeft te snappen hoe de code werkt, hoe kan hij dan aannemelijk maken dat de applicatie doet wat deze moet doen?
Het vinden van een antwoord op dergelijke vragen is van groot belang voor de praktijk, een uitdaging die momenteel wordt opgepikt door bedrijven en universiteiten. Diverse bedrijven en open-sourcegroeperingen werken aan zogenaamde frameworks waarin een aantal van deze uitdagingen wordt geadresseerd. Van Nederlandse oorsprong is bijvoorbeeld het Amsterdamse Backbase. Andere voorbeelden zijn de open source JavaScript-bibliotheek jQuery en de Google Web Toolkit (GWT), waarmee het programmeren van JavaScript juist vermeden kan worden doordat deze gegenereerd wordt uit Java-code.
Ook op universiteiten wordt Ajax als onderwerp van onderzoek opgepikt. Thema’s die daarbij een rol spelen, zijn onder meer de modelgedreven ontwikkeling van Ajax-applicaties, of de migratie van traditionele webapplicaties naar Ajax (zie kader).
Alles overziend biedt Ajax ongekende mogelijkheden om de gebruikersinteractie in webapplicaties aanzienlijk te verbeteren. Tegelijkertijd is het gebruik van Ajax nog niet zonder risico’s en zijn er tal van onopgeloste problemen, waaraan door zowel universiteiten als bedrijven wordt gewerkt. Zolang deze niet zijn opgelost, zal de desktopapplicatie zeker niet verdwijnen, maar de verdere opkomst van de webapplicatie met een rijke userinterface is niet te stuiten.
Prof. dr. Arie van Deursen is hoogleraar Software Engineering aan de Technische Universiteit Delft. Ir. Ali Mesbah is als onderzoeker verbonden aan de Technische Universiteit Delft, waar hij promotieonderzoek verricht naar Ajax-technologie.