De toekomst van het web ligt volgens webexpert Steven Pemberton in ‘declarative computing’. Minder code, meer kleine modules en een striktere scheiding van inhoud en stijl moeten leiden tot meer functionaliteit en een betere gebruikservaring.
Pemberton deed in de jaren tachtig onderzoek naar programmatuur die we tegenwoordig een browser zouden noemen. Ook in de jaren negentig onderzocht hij ‘pre-webtechnieken’. Toen in 1994 bij CERN het allereerste webcongres gehouden werd, wilde hij daar beslist naar toe. Het leverde hem een prominente rol in het W3C op. Hij werkte daar mee aan de ontwikkeling van HTML en CSS.
Inmiddels is hij voorzitter van de HTML- en XForms-werkgroepen die XHTML ontwikkelen, de volgende evolutionaire fase van HTML. Zijn vroege betrokkenheid bij het web heeft hem tijdens de eerste internethausse geen miljoenen opgeleverd of gekost. Van de tweede, aanstaande hausse lijkt hij ook niet echt onder de indruk te zijn, maar dat komt misschien omdat hij gewend is tien jaar vooruit te werken.
Twee ‘webben’
We spreken hem in de lobby van het Barbizon Hotel in Amsterdam in de kantlijn van het congres The Next Web. De in Engeland geboren Pemberton woont al bijna zijn halve leven in Nederland. Hij werkt als onderzoeker aan het CWI (Centrum voor Wiskunde en Informatica) in Amsterdam. Hij vertelt over internet nu en de mogelijkheden van de nieuwe technieken en standaarden die op dit moment worden ontwikkeld en waar we over tien jaar mee zullen werken.
“Het is mijn ervaring dat het minstens vijf jaar duurt voor nieuwe technieken aanslaan, en dan nog eens vijf jaar voor de kritieke massa is bereikt en ze algemeen geaccepteerd worden.” Daardoor loopt Pemberton altijd voor op de meesten van ons. “Toen het web uitkwam in 1991 was het al niet nieuw. Het was een nieuw geheel van bestaande technieken, zoals hypertext en netwerken.” Wat hem betreft geldt datzelfde principe voor de golf van nieuwe toepassingen op internet nu: Web 2.0. Het zijn oude zaken in een nieuwe vorm. Het probleem van nieuwe dingen is dat, zolang ze geen naam hebben, ze niet als zodanig bestaan: hoe noem je browsertechnologie als de browser nog niet is uitgevonden?
Op het Web 2.0-congres dat begin juli in Amsterdam werd gehouden, besloot Pemberton zijn presentatie met de opmerking dat “we nog een lange weg te gaan hebben voor we terug zijn bij het web zoals het in het begin was”. Hij bedoelt dat in het oorspronkelijke web inhoud en vorm strikt gescheiden waren om de gebruiksvriendelijkheid te bevorderen. Doordat overal steeds meer toeters en bellen aangehangen werden, vervaagde die scheiding.
“HTML is een markeertaal, het geeft in principe alleen aan wat tekst is: kop, ondertitel, broodtekst. Het hoort niets te zeggen over de vormgeving. Wij begrepen begin jaren negentig al dat het belangrijk was om inhoud en vorm uit elkaar te houden. Een van de eerste dingen die we als W3C ontwikkelden, was CSS.” Volgens Pemberton grepen Microsoft en Netscape de begintijd van het web aan om ieder hun eigen kant op te gaan. “Ze wilden dingen toevoegen aan HTML, bijvoorbeeld lettertype en kleur. Ze begrepen niet dat HTML alleen content betreft. Het risico van twee separate ‘webben’ dreigde. Toen is W3C opgericht om internet een richting op te kunnen sturen.”
Minder code
Na het ontwikkelen van CSS was de tweede stap het creëren van XML. Pemberton: “Wij zeiden: laat iedereen een eigen taaltje maken. XML is een metataal, een taal om andere talen mee te beschrijven. Wanneer mensen zeggen dat ze iets in XML schrijven, is dat niet correct. Wat ze eigenlijk doen is een taal beschrijven in XML.” Met XML kan je verschillende talen combineren binnen een geheel, bijvoorbeeld voor content en grafische beelden. XHTML is een XML-versie van HTML, het doet functioneel hetzelfde als HTML, maar is te combineren met andere XML-talen, zoals SMIL voor multimedia en SVG voor grafische beelden.
“Het idee achter verschillende talen die je middels een standaard met elkaar kunt combineren is dat je streeft naar een scheiding van belangen. Je wilt verschillende zaken kunnen beschrijven en gebruikt daarvoor kleine modulen in plaats van één grote HTML.” Kleine modulen zijn goedkoper om te ontwikkelen en efficiënter in het gebruik.
Debugging is de grootste kostenpost bij softwareontwikkeling, tot wel 90 procent van de totale kosten. “Een onderzoek binnen IBM toonde aan dat het aantal bugs sneller groeit dan de lengte van de broncode. De formule voor deze verhouding is lengte tot de macht anderhalf. Iets dat tien keer langer is, is dus ongeveer 32 keer zo moeilijk om te schrijven. Andersom, als iets een tiende van de lengte heeft, kost het slechts 3 procent van de moeite.” Het streven is dus minder code. De oplossing is ‘declarative computing’; je vertelt de computer niet hoe hij iets moet doen, maar alleen wat hij moet doen.
Diverse apparaten
“Spreadsheets zijn een mooi voorbeeld. Je klikt cellen aan en zegt: deze zijn gerelateerd, zoek zelf maar uit hoe, maar ik wil ze optellen, aftrekken – welke formule dan ook erop loslaten. Het succes van spreadsheets ligt erin dat een niet-programmeur complexe dingen kan maken.”
Pemberton betoogt dat het dus tijd is voor een andere manier van programmeren. “JavaScript is nog moeilijker te debuggen dan andere talen. Als het fout gaat, is het moeilijk om te ontdekken waar het precies fout is gegaan. Het reageert heel laconiek op fouten, het stopt niet, maar loopt geleidelijk vast. Programmeurs raken er overspannen van.”
Met XForms, de volgende generatie webformulieren, worden data, presentatie en gebruikersinterface gescheiden. Dat bevordert dat verschillende apparaten dezelfde content kunnen gebruiken zonder dat de code hoeft te veranderen. “Neem de website van de NS. Die bevat de content die je mobiel wilt bekijken. Als ik onderweg ben, wil ik kunnen zien wanneer mijn volgende trein gaat. Dat kan niet, omdat de pagina alleen gemaakt is voor bepaalde browsers. CSS was indertijd een tactische zet, maar op een bepaald niveau is het gewoon te simpel.”
“Je wilt programmatuur die niet gerelateerd is aan een bepaald apparaat. Heb je geen grafische mogelijkheden op een mobiel apparaat? Dan zie je alleen de content. Binnen XForms kan je verschillende ‘stylesheets’ ontwikkelen voor diverse apparaten. Dat is ook handig ook voor blinden. Die moeten nu nog veel te vaak informatie ontberen omdat content gevangen is in opmaak. Onafhankelijk van het apparaat en toegankelijk, dat hoorde bij het begin van het internet. Alle pagina’s werkten op alle browsers en waren voor iedereen toegankelijk.”
Gebruikerservaring
Steeds meer organisaties stappen over op XForms. Pemberton noemt de Britse verzekeringsindustrie, NASA, de onderzeeërs van de Amerikaanse marine en Duitse scheepsbouwers. “XForms wordt verticaal ingevoerd bij organisaties die hun software goed onder controle hebben. Horizontaal gebruik begint te komen, vooral in de financiële wereld. Binnenkort is het ook beschikbaar in Firefox. Als het de goede kant op gaat, kan je straks alle Web 2.0-dingen doen voor 3 procent van de kosten van procedureel programmeren. Het wordt allemaal makkelijker, ook voor niet-programmeurs. Je hoeft applicaties niet meer opnieuw te maken om ze op iets anders dan de pc te laten draaien.”
Blogging, tagging, sharing – noem het Web 2.0 of niet, bij internet zoals het zich nu ontwikkelt gaat het om verbetering van de gebruikerservaring. “Centraal staat het terugdringen van de latentie, de tijd tussen wat je de computer vraagt en wanneer hij het uitvoert. Op de oude Yahoo-kaarten klikte je op pijltjes om van rechts naar links te bewegen. In Google Maps sleep je de hele wereld over je scherm. De latentie moet omlaag tot het punt waarop respons onmiddellijk lijkt.” Gebruikers eisen dat ook. Forrester onderzocht wat voor internetpagina’s bezoekers blijvend kunnen boeien. “Goede content is het belangrijkst, maar bruikbaarheid is het tweede punt. Dat is essentieel. Bedrijven hebben geen idee hoe belangrijk de gebruikerservaring is.”
Tijdens zijn lezing op het Next Web-congres in Amsterdam begin juli showt Pemberton een programmaatje voor een analoge klok. In pure programmeertaal is dat drie- tot vierduizend regels code. Met ‘declarative computing’ lukt het in minder dan twintig regels. Hij toont een versie van een klok die gebruik maakt van XForms, XBL en een ‘stylesheet’ in SVG. XBL bepaalt het gedrag en uiterlijk van XML-elementen. “Over tien jaar werken jullie hier allemaal mee”, vertelt hij het publiek.
Content met betekenis
Steven Pemberton werkt binnen het W3C aan RDFa. Webpagina’s bevatten veel data die de mens wel ziet maar een browser of Google niet. “Google ziet hetzelfde als een blinde.” Met RDFa geef je content betekenis, zodat een browser kan zien of iets bijvoorbeeld een plaats, tijd of gebeurtenis is. “Ik bekijk een congresprogramma. Mijn browser herkent dat het om een evenement gaat en vraagt of het toegevoegd moet worden aan mijn agenda. Hij ziet waar het plaatsheeft. Hij vraagt of ik daar een hotel wil boeken en of ik in Google Maps de locatie wil bekijken.” Wanneer content herkend wordt, neemt de functionaliteit van pagina’s explosief toe. “Nu weet een browser niet of ‘apple’ fruit, een computer of een softwarebedrijf is. RDFa voegt een taxonomie toe voor het semantische web. Content wordt door machines leesbare informatie.” Programmeurs kunnen zich overigens voorlopig best nog richten op XML, XForms en XHTML. Het duurt nog ruim vijf jaar voor RDFa en XBL algemeen geaccepteerde standaarden zijn.
Jargon
CSS: Cascading StyleSheets
HTML: HyperText Markup Language
RDFa: Resource Description Framework
SMIL: Synchronized Multimedia Integration Language
SVG: Scalable Vector Graphics
W3C: World Wide Web Consortium
XBL: eXtensible Binding Language
XForms: de volgende generatie webformulieren
XHTML: eXtensible HyperText Markup Language
XML: eXtensible Mark-up Language