Er zijn vele browsers beschikbaar om over het web te surfen, maar de afgelopen jaren maken vijf grote namen de dienst uit. Firefox, Internet Explorer, Safari, Opera en Chrome zijn de meest gebruikte browsers voor de desktop. De vijf houden elkaar nauwlettend in de gaten en vertonen dan ook grote gelijkenissen: inmiddels beschikken ze allemaal over ‘tabbed browsing’ (meerdere websites verschijnen indien gewenst in tabs binnen hetzelfde scherm), en uiterlijk zijn ze allemaal in meer of mindere mate via thema’s naar smaak aan te passen.
Het gaat zelfs nog verder: alle ontwikkelaars hebben inmiddels aangekondigd dat ze bepaalde processen van de browser gaan uitbesteden aan de grafische processor in plaats van de CPU; GPU’s worden (in verhouding tot de CPU) steeds krachtiger, terwijl ze tijdens het browsen gewoonlijk nauwelijks worden belast. Internet Explorer 9 zal daarbij gebruikmaken van Direct2D, terwijl Firefox 4 kiest voor WebGL en een aanvullende Javascript-engine genaamd Jägermonkey. Ook Opera komt binnenkort met ondersteuning voor hardware-acceleratie, en Apple’s Safari 5 is zelfs al zo ver. Onlangs kondigde Google als laatste aan dat ook Chrome zich bij de meute voegt: via de nieuwe ANGLE-driver (Almost Native Graphics Layer Engine) zal het taken wegzetten naar WebGL (Windows) en OpenGL (Linux en Mac).
Daarmee wordt de keuze niet eenvoudiger, maar gelukkig leggen de verschillende leveranciers toch net andere accenten. Het is soms even zoeken, maar er zijn wel degelijk uitspraken te doen over welke browser voor welke groep gebruikers de meest ideale is. Zo blijft het bijvoorbeeld de vraag wat zwaarder weegt: systeembelasting of reactiesnelheid. Een razendsnelle browser die bovendien het systeem nauwelijks belast, bestaat niet – al was het maar omdat de browsers zelf daar weinig over te zeggen hebben (tegen slecht ontworpen sites is geen kruid gewassen), en dus is de ene browser vooral gericht op snelheid, terwijl de ander zo licht mogelijk probeert te blijven en de derde een gulden middenweg zoekt. Maar er zijn meer verschillen. We lopen ze met je langs…
Google Chrome 5.0
Vooral programmeurs zijn snel enthousiast over Google Chrome, omdat Google nu eenmaal de nadruk heeft gelegd op een aantal zaken waar programmeurs wat aan hebben. Chrome maakt van iedere webpagina een volledig separaat proces, zoals je kunt zien in Windows Taakbeheer. Als een of andere webprogrammeur een oneindige lus aanlegt of AJAX verkeerd aanroept, dan blijft de ellende in Chrome tenminste beperkt tot de betreffende pagina. Toch ervaren zelfs Chrome-gebruikers nog wel eens een vastloper, dus helemaal perfect is die bescherming helaas niet.
Het goede nieuws is dat Chrome een van de snelste browsers van dit moment is, tenminste, als je langdurige Javascript loops als benchmark neemt. En hij biedt ook goede ondersteuning van HMTL5 standaarden, maar daar is gelijk ook wat verwarring over, want behalve dat Google HTML5-ondersteunt, omarmen ze ook Adobe Flash. Google steunt Flash door het op te nemen in het Android OS, en het schijnt zelfs dat toekomstige versies van Chrome hun eigen, verbeterde versie van de Flash-plugin zullen bevatten, waardoor naar verwachting het aantal crashes en bugs onder Chrome nog verder zal afnemen.
Google doet ook zijn best plug-ins aan te moedigen, met als gevolg dat er voor Chrome steeds meer beschikbaar komen. De plug-in architectuur voor Chrome is een stuk eenvoudiger dan die van Firefox, omdat het programmeurs alleen HTML, CSS en Javascript laat gebruiken. Dat is gewoonlijk meer dan genoeg, en veel Firefox-ontwikkelaars kunnen hun plug-ins dan ook zonder veel moeite overzetten naar Chrome.
Als er al iets te klagen valt over Chrome, dan is het dat het nog steeds een relatief klein marktaandeel heeft, waardoor web-ontwikkelaars gewoonlijk hun werk pas voor Chrome testen als ze IE, Firefox en Safari hebben gehad. Dat betekent in de praktijk dat veel mensen toch geneigd zijn voor alle zekerheid een andere browser naast Chrome achter de hand te houden. Gelukkig biedt Chrome prettige tools voor ontwikkelaars, dus het lijkt waarschijnlijk dat testen voor Chrome snel tot de standaardprocedures gaat behoren.
Mocht dat je nog niet overtuigen, bedenk dan ook dat Chrome de hoofdmoot is van Chromium OS, het besturingssysteem dat Google eind dit jaar hoopt te lanceren. Als dat systeem opstart, start het in feite Chrome, en vanaf dat moment draait je apparaat alleen nog HTML: een zeer lichtgewicht toekomstperspectief.
Vooral geschikt voor: Mensen die geregeld veel vensters open hebben staan waarin nogal eens code staat die geneigd is te crashen.
Minder geschikt voor: Mensen die zich ergeren aan websites die vastlopen omdat de ontwikkelaar zijn site alleen voor IE heeft getest.
Firefox 4.0 (bèta)
Het oude Netscape is al jaren geleden overleden, maar op een of andere manier heeft het de Firefox browser nog weten te baren, waardoor we zijn verblijd met vele vernieuwingen die vervolgens zijn gekopieerd door IE en anderen. Het project vond een prettige bron van inkomsten door zoekopdrachten door te sluizen naar Google, waarmee ze zich grotendeels de afgelopen jaren in leven hebben gehouden.
Niemand weet hoe stabiel die inkomsten in de toekomst zullen zijn. Google heeft inmiddels zijn eigen browser geïntroduceerd, deels om een einde te kunnen maken aan slecht functionerende plug-ins zoals Flash. Tegelijkertijd biedt Firefox nu zijn eigen “crash protectie”, door plug-ins te herstarten als ze vastlopen. Firefox handelt dat alleen wel intern af, want de browser draait nog steeds het meeste werk in één enkel proces. Chrome leunt wat dat betreft zwaarder op het besturingssysteem door elke pagina in een apart OS-proces te vangen; de kans lijkt groot dat de Mozilla-groep die benadering vroeger of later gaat volgen.
Een van de sterke punten van Firefox blijft de grote verzameling extensies en plug-ins. Ze kunnen allemaal geschreven zijn in een mix van JavaScript, CSS en HTML, wat de gemiddelde web-ontwikkelaar niet voor al te grote uitdagingen stelt (vergeleken met IE, waarvoor plug-ins in C++ moeten worden aangeleverd).
Add-ons zoals Greasemonkey maken het zelfs nog eenvoudiger om simpele scriptjes te schrijven die aan de slag gaan met het DOM (Document Object Model) van binnenkomende gegevens, waardoor een leuke speeltuin ontstaat waarin je snel en simpel eigen add-ons kunt creëren. Het Firefox-model is aardig geavanceerd. Er zijn nogal wat widgets en extensies in de wereld die beperkt zijn tot JavaScript, CSS en HTML, maar Firefox heeft voor serieuze ontwikkelaars ook nog XUL (XML User Interface Language) in de aanbieding. Of dat echt nodig is durf ik niet te zeggen, maar het zet in elk geval een deur open voor zeer geavanceerde toepassingen.
Firefox is niet de snelste browser voor JavaScript in de veeleisende JavaScript benchmarks, maar voor veel gebruikers hoeft dat niet zo’n probleem te zijn. De snelheid waarmee het beeld wordt opgebouwd (de rendering) en de reactiesnelheid wegen waarschijnlijk veel zwaarder bij dagelijks gebruik. Toch is het mooi dat de Mozilla-ontwikkelaars hebben aangekondigd dat er deze herfst nog een nieuwe JavaScript-engine aankomt.
Vooral geschikt voor: Mensen die gelukkig worden van een uitgebreid aanbod van extensies.
Minder geschikt voor: Mensen die graag langlopende wetenschappelijke simulaties in JavaScript draaien.
Microsoft Internet Explorer 9.0 (bèta)
De dagen dat vrijwel iedereen IE gebruikte zijn al lang voorbij, maar nog steeds is deze browser de grootste, met dank aan het feit dat het al dan niet in het Windows OS zit of zat ingebakken (afhankelijk van hoe de politieke wind waait). Microsoft zelf was de terugloop al een paar jaar geleden opgevallen en probeert nu zo snel mogelijk een aantal van de populaire functies van de concurrentie over te nemen. Zo verschenen er een tijdje terug tabs in IE en zijn er inmiddels genoeg add-ons voor geschreven om een heuse gallery te rechtvaardigen. Veel vernieuwingen die begonnen bij Firefox of Opera zijn nu beschikbaar in IE8.
Microsoft heeft een aantal grappige opmerkingen gemaakt over IE. Zo merkt het bedrijf ergens in een functielijstje op dat IE8 “Webstandaarden” ondersteunt, om er vervolgens op te wijzen dat het alleen CSS 2.1 ondersteunt omdat dat vaker voorkomt dan het nieuwere CSS 3.0. Ja - en dat zal ook zo blijven totdat IE het officieel ondersteunt, omdat web-ontwikkelaars wel uitkijken gebruik te maken van functionaliteit die niet ondersteund wordt door de meest gebruikte browser.
Microsoft mag dan niet de snelste zijn bij de acceptatie van de nieuwe standaarden die samen HTML5 worden genoemd, het heeft wel zijn eigen aardigheden die het met volle overtuiging in de markt zet. IE8 helpt mensen bijvoorbeeld met ‘veilig browsen’, een nobel streven dat ze inhoud geven door meer en betere manieren aan te bieden om de herkomst van informatie te achterhalen. Of dat werkelijk in een cijfer is te vangen kun je je afvragen, maar Microsoft beweert zelf dat IE “5 keer beter is dan Chrome” en “2,9 keer beter dan Firefox bij de bescherming tegen kwaadaardige malware (sic)”. Het bedrijf stelt dat IE beter in staat zou moeten zijn webadressen af te vangen die leiden naar websites die niet zijn wat ze lijken te zijn (phishing). In hoeverre dat werkelijk kan worden hardgemaakt is niet helemaal duidelijk, maar het klinkt wel veelbelovend, want in de betrouwbaarheid van gegevens op het web ligt een grote uitdaging.
Nu is het wel zo dat die aandacht voor veiligheid pas is ontstaan na een lange serie veiligheidsgaten in hetzij IE, hetzij add-ons die van IE teveel macht kregen. Een eenvoudige zoekopdracht levert verhalen op over honderden kwetsbaarheden die ontdekt en verholpen werden. De kern van het probleem lijkt te zijn dat IE plug-ins teveel mogelijkheden biedt. Dat is vrijwel zeker een ernstig gevolg van de strategie waarin ontwikkelaars toestemming krijgen allerlei functies toe te voegen die prima samenwerken met Windows, maar niet met andere systemen. ActiveX levert bijvoorbeeld goede prestaties doordat het zeer nauw met het OS samenwerkt (ook een manier om IE en Windows nog nauwer met elkaar te verbinden). Het enige probleem is dat die integratie in de loop der jaren ook vele, vele beveiligingsgaten heeft opgeleverd, en dat niet duidelijk is of Microsoft ze inmiddels allemaal heeft weten te stoppen.
Persoonlijk twijfel ik erg over de benadering die Microsoft heeft gekozen. Die diepe integratie biedt een heleboel interessante mogelijkheden, maar het levert ook problemen op, en niet eens alleen op veiligheidsniveau. Add-on ontwikkelaars krijgen toegang tot het register en andere vreemde hoeken en gaten van het besturingssysteem, wat nogal een verschil is met de veel eenvoudiger zandbak-benadering van de andere browsers. Ik weet zeker dat sommige ontwikkelaars van online spellen die snelheid erg kunnen waarderen, maar ik denk toch dat een eenvoudiger model voor iedereen een stuk prettiger zou zijn.
De IE9 bèta biedt inmiddels een heel aantal functies die me voorheen naar de andere browsers lokten. Er is bijvoorbeeld een betere tool voor ontwikkelaars om JavaScript te debuggen, en ook de snelheid begint die van de andere browsers te benaderen. De verzameling add-ons voor IE is niet alleen aan het groeien, maar ze zijn ook duidelijk anders dan die van de andere browsers. Je ziet er bijvoorbeeld veel van leveranciers die je graag op een simpele manier door hun catalogus laten bladeren en je aanbiedingen willen doen opdat je er je geld uitgeeft. Er zijn zoveel toolbars voor IE beschikbaar dat je er zonder enige moeite je hele venster mee kunt vullen.
Maar de grootste kracht van IE blijft toch nog steeds de (langzaam verdwijnende) dominantie. Misschien dat web-ontwikkelaars soms vergeten te testen onder Safari, of Opera, of Chrome – maar ze weten donders goed dat hun baas of de baas van hun baas waarschijnlijk gewoon de standaard browser gebruikt die al op zijn computer stond toen hij hem kocht. Ondanks alles wat er in de afgelopen jaren is bereikt met cross-platform libraries blijf ik toch nog steeds webpagina’s tegenkomen die alleen onder IE werken. Zolang dat zo is, is die dominante positie nog veilig.
Vooral geschikt voor: Mensen die zich nergens druk om (willen) maken. IE is en blijft de browser die werkt met de meeste websites.
Minder geschikt voor: Mensen die zich zorgen maken om browser based attacks, en mensen die de nieuwste HTML5-functies willen uitproberen.
Opera 10.60
Lange tijd was pure snelheid Opera’s belangrijkste verkoopargument. Het bedrijf was maar wat trots dat hun browser een pagina sneller opbouwde dan alle concurrenten. En zo is het nog steeds. Opera 10.60 onder Windows noteerde van alle browsers die ik heb getest de snelste resultaten in de SunSpider JavaScript benchmarks. Nu tonen alle nieuwe browserversies sterke verbeteringen in SunSpider en andere benchmarks, maar Opera lijkt toch nog steeds de snelste.
Toch is het maar de vraag of ze daar nog zo geweldig mee scoren bij gebruikers: meestal vormt het internet zelf een veel belangrijker vertragende factor. De snelheid waarmee JavaScript wordt uitgevoerd kan weer heel belangrijk worden als mensen hun browsers gaan gebruiken om grote hoeveelheden data te bewerken, en het aankomt op pure rekenkracht. De SunSpider benchmark maakt gebruik van vele complexe berekeningsopdrachten, zoals AES-encryptie en priemgetalberekeningen. Maar aan de andere kant wordt JavaScript op dit moment nog vooral gebruikt voor het renderen van XML-gegevens of het veranderen van een achtergrondkleurtje.
Het bedrijf achter Opera is gelukkig meer dan alleen de browser. Het biedt nog steeds slimme kant-en-klare software aan die het huidige model flink kunnen veranderen. Opera Turbo bijvoorbeeld is een laag van proxy servers op snelle internetverbindingen. Opera Turbo haalt pagina’s voor je op en pakt ze voor je in om zo bandbreedte uit te sparen. Dat levert misschien weinig op voor mensen die een snelle lijn naar hun bureau hebben lopen, maar voor mobiele browsers met tragere netwerkverbindingen en (heel belangrijk) beperkte databundels kan dat een gouden idee zijn.
Een andere slimme oplossing zijn de widgets van Opera: kleine web-applicaties die op je Windows-, Mac- of Linux-desktop draaien. Ik weet niet of ik ze nou direct ‘native applications’ moet noemen, zoals in de documentatie staat, omdat de widgets geschreven zijn in webtalen (HTML, CSS, JavaScript) en in een soort Opera zandbak draaien. Maar er zit ergens x86-code in, toch? Qua structuur lijken ze wel op de widgets die deel uitmaken van Max OS X. Opera heeft ook een aantal tools waarmee iedereen met een beetje programmeer-ervaring relatief eenvoudig zo’n widget in elkaar kan draaien.
Overigens is het bijna oneerlijk om zo lang bijna de desktop-versie van Opera te blijven stilstaan, want het bedrijf richt zich inmiddels hoofdzakelijk op de mobiele markt. Het blijft innoveren en daarbij blijven ze me vaker dan de andere teams verbazen.
Vooral geschikt voor: Pure snelheid en innovatie.
Minder geschikt voor: Mensen die niet graag de gebaande paden verlaten.
Apple Safari 5.0
Apple nam de oude Konqueror-browser uit de Linux-wereld en gooide er een grote hoeveelheid programmeertalent tegenaan om er een heel aardige browser van te maken voor zowel Mac als Windows. De Safari WebKit engine is bovendien de basis van de browsers in de iPhone en de iPad.
Safari is een heel goed alternatief. De browser kan qua snelheid goed meekomen, de besturing is simpel maar begrijpelijk, en de ontwikkelingstools zijn prettig in gebruik. Apple heeft net een begin gemaakt met een extensie-gallery voor het grote publiek, en sommige ontwikkelaars hebben nu al hun populaire Chrome- en Firefox-extensies naar dit platform overgezet. Het ontbreekt in Safari aan niets dat een gebruiker zou wensen, maar aan de andere kant is er ook weinig waarmee Safari zich onderscheidt, laat staan onweerstaanbaar maakt.
Safari voor de desktop heeft vooral meerwaarde voor ontwikkelaars die zich op de iOS-wereld van de iPhone en de iPad willen richten. Aangepaste webpagina’s bouwen doe je simpel met een paar extra tags, en het resultaat draait vaak alsof zo’n app specifiek voor dat platform werd ontwikkeld. Daar komt bij dat Safari niet de enige browser is die op WebKit is gebouwd. Google gebruikt de WebKit rendering engine ook voor zijn Android telefoons, en de iOS- en Android-browsers gedragen zich dan ook vaak (maar niet altijd) op dezelfde manier. Als het BlackBerry-team van RIM straks zijn eigen WebKit-browser lanceert, wordt de positie van WebKit op het mobiele web weer een stukje dominanter.
Apple richt zich sterk op HTML5, zeker na de laatste schermutselingen met Adobe over Flash. Safari biedt dan ook veel van de belangrijkste HTML5-functionaliteit, en de rest zal vrijwel zeker snel volgen.
Vooral geschikt voor: Web-ontwikkelaars die WebKit telefoons willen ondersteunen.
Minder geschikt voor: Liefhebbers van extensies en add-ons.
Reageer
Preview