Van engine tot browser: Microsoft's Spartan

Eveline Meijer
Windows 10 komt met een geheel nieuwe browser: Spartan. De komende maanden worden er allerlei features bekend gemaakt, dus dit is een mooi moment om eens te kijken naar de ontwikkeling van de browser. Wat zijn de dingen die Microsoft echt anders wil doen met de nieuwe browser, en welke problemen kwam het bedrijf tegen?

Hoewel Microsoft 'het internet niet wil breken', heeft de ontwikkelaar toch een hoop klachten gehad over websites die niet werken in Internet Explorer. Na onderzoek ontdekte Microsoft een aantal problemen waar ze nu opnieuw over na denken. Een overzicht:

  • Legacy vs. Modern 
    Terwijl ze de nieuwe HTML5 features toevoegden, werd er ook verwacht dat Microsoft de oudere versies van Internet Explorer onderhield. Dit gold met name voor enterprise Web apps. Hoewel er gelimiteerde ondersteuning werd aangeboden via document compatibility modes, kon volledige ondersteuning niet gegarandeerd worden. Daarnaast waren er continu obstakels rondom bugs die al jaren in de browser zaten. Wilde Microsoft deze bux repareren met andere, moderne browsers, dan was het mogelijk dat websites die speciaal voor Internet Explorer andere code hadden toegevoegd, alsnog kapot gingen. 
     
  • CV list 
    Hoeveel Internet Explorer ondersteunde, hing af van de aanwezigheid van de 'compatibility view list'. Hiermee was het mogelijk om kapotte websites te repareren, door ze te dwingen om oude document modi te gebruiken, die Internet Explorer-gedrag emuleerde. Deze manier van bugs oplossen vereiste echter een hoop onderhoud en testen, wat niet goed werkt bij websites die niet tot de top sites behoren. 
     
  • X-UA-Compatible
    Sommige websites zijn gedwongen om een oudere document modus te gebruiken door middel van de 'x-ua-compatible'-header. In plaats van het te gebruiken als een tijdelijke oplossing, bleven veel mensen daarop rekenen om de oudere versies van Internet Explorer te blijven ondersteunen. 
     
  • Standards Focus 
    Microsoft's focus op het bouwen van nieuwe HTML5 features was om te voldoen aan de webstandaarden, die op hun beurt moeten leiden tot onderlinge samenwerking (interoperability) tussen browsers. De interpretaties van het standaardendocumenten konden gemakkelijk variëren. Dit leidt tot gaten in deze onderlinge samenwerking en uiteindelijk tot het vaker moeten oplossen van bugs en meer kapotte websites voor gebruikers.

Ondersteuning voor alle websites

Microsoft kwam tot de realisatie dat ze een plan nodig hebben om developers websites te laten bouwen die compatible zijn met elke browser, ongeacht voor welke browser ze de website als eerste ontwikkelen. Ook moeten klanten een goede ervaring hebben, ongeacht of ze browsen door de top-websites of juist door de onderkant van de lijst. Tot slot hadden ze een plan nodig om alle versies van de browser de juiste ondersteuning te geven, ongeacht hoe snel ze de HTML5 features implementeren. Dit betekende dat Microsoft moest breken met de twintig jaar oude Internet Explorer. De strijdkreet voor Windows 10 werd: 'het internet werkt gewoon'. Daarmee blijven de webstandaarden belangrijk, maar deze moeten wel op de achtergrond blijven functioneren om de samenwerking tussen browsers te creëren.

Open source?

Voor deze onderlinge samenwerking is er nog nagedacht over bestaande open source rendering engines, zoals WebKit. Hier zitten zeker een aantal voordelen aan, maar na onderzoek bleek dat dit niet de weg was voor Microsoft, vanwege twee redenen. Ten eerste wordt het Web gebouwd op principes van meerdere onafhankelijke, maar toch onderling samenwerkende implementaties van webstandaarden. Microsoft vond dat het belangrijk was om de beweging van een monocultuur op het web tegen te gaan. Daarnaast vereist de techniek inspanning, waarvan Microsoft denkt dat deze beter gebruikt kan worden voor een eigen engine.

De engine

De nieuwe engine werd al eens besproken door Jacob Rossi in Smashing Magazine. Deze begon als een fork van MSHTML.dll, maar is snel gesplitst. Door deze splitsing was Microsoft in staat om in de belangrijkste subsystemen te investeren en deze te bewaren. Hierdoor kon Microsoft het gedrag van Internet Explorer van de nieuwe engine verwijderen. Bovendien kan Microsoft de originele engine grotendeels ongewijzigd (op de beveiliging en andere high priority fixes na) met de garantie legacy compatibility aan hun zakelijke klanten blijven bieden. Daarnaast wordt de legacy IE-code niet meer verzonden, waardoor Microsoft haar afhankelijkheid van haar CV list drastisch kan verminderen.

Patronen in plaats van websites

Een nieuwe engine was echter niet genoeg. Microsoft moet ook de manier waarop zij problemen vinden, volgen en oplossen vernieuwen. Om dat te doen maakt Microsoft een dagelijkse analyses van triljoenen websites. Deze url's worden gecrawled en in combinatie met Bing gebruikt om te zoeken naar patronen die in de header en de tail van de website zitten. Door deze patronen op te lossen, werken websites gewoon. De gegevens worden aangevuld met duizenden dagelijkse feedback-rapporten van gebruikers via het icoon 'smiley face'. Daarnaast hebben ze hun interne technische processen om onderlinge samenwerkingen herzien, door hun data-analyse te prioriteren. Met deze processen heeft Microsoft meer dan drieduizend bugs in de onderlinge samenwerking opgelost, en meer dan veertig nieuwe webstandaarden toegevoegd. Op deze manier wil Microsoft zorgen dat ze hun doelen behalen.

Meer weten over Microsoft's weg naar Spartan? Lees dan hun blog