Articles

Het verhaal achter Google Chrome

Ben Goodger and Google Chrome

Google heeft gistermiddag zijn tweede webbrowser uitgebracht, waarmee extra ruimte is gecreëerd voor webapplicaties die de grenzen van wat mogelijk is in een webbrowser verleggen. Het Google Chrome-team heeft de afgelopen zes jaar domeinexperts op verschillende gebieden bijeengebracht, zowel door directe aanwerving als door overnames, om een nieuwe browser en de belangrijkste onderdelen ervan vanaf nul te ontwikkelen. GMail en Google Maps hebben de grenzen van het web opgezocht door gebruik te maken van browsertechnologieën die in Redmond zijn uitgevonden maar veel te lang zijn blijven liggen. Bijdragen aan de kern van Firefox, het schrijven van browserextensies en het opkomen voor HTML konden het 150 miljard dollar kostende bedrijf niet verder brengen: ze moesten de volledige browser bezitten om hun webinspanningen op volle snelheid vooruit te stuwen.

  1. Groeiende frustraties
  2. Acquisition Boost
  3. Een nieuwe browser van de grond af
  4. Rev your JavaScript Engines
  5. Meet the Team
  6. Summary

Groeiende frustraties

Brian Rakowski kwam in juli 2002 bij Google als de eerste associate product manager van het bedrijf. Zijn eerste opdracht? GMail lanceren met functies en reactiesnelheid die concurreren met desktop mailclients. Gmail maakte gebruik van relatief slapende browserfuncties zoals XMLHttpRequest, sockets, prefetch en meer om een webtoepassing te maken die de grenzen verlegde van wat mogelijk was in webbrowsers in 2004. De huidige Gmail loopt nog steeds tegen de grenzen van een browser aan en stelt minimumeisen aan Internet Explorer 7+ en Firefox 2+. Google web apps teams zoals Maps en Mail stoten voortdurend hun hoofd tegen de nieuwste mogelijkheden van web browsers en in sommige gevallen bedenken ze hun eigen runtimes.

Ian Hickson leerde voor het eerst de innerlijke werking van web browsers toen hij stagiair was bij Netscape. Na een paar jaar aan Opera te hebben gewerkt en tests voor Firefox te hebben gemaakt, kwam Ian bij Google om verder te werken aan nieuwe browserfuncties. HTML5 en browser compliance “acid” tests zijn belangrijke pogingen van Ian en anderen om Web browsers te herdefiniëren door middel van specs, testen en implementaties, maar tot nu toe kon Google alleen ontwikkelingshulp bieden en browser extensies zoals Gears om browser mogelijkheden te versnellen.

Google breidde uit wat het niet onmiddellijk kon toevoegen aan de browser kern. Gears voor nieuwe applicatie functionaliteit op meerdere browsers. Browser Sync om browserinstellingen en -gegevens op meerdere computers te synchroniseren. Safe Browsing om meer vertrouwen in het web te creëren. Teams van elk van deze extensies werken nu aan Google Chrome.

Acquisition Boost

Google bracht zijn eerste officiële webbrowser uit op 18 augustus 2008 met de bètaversie van het mobiele besturingssysteem Android. Google verwierf Android in augustus 2005 om voet aan de grond te krijgen op de snelst groeiende computer (en Web) markt: mobiele handsets. Android legt de nadruk op Google’s web-eigenschappen via zijn WebKit-gebaseerde browser en afhankelijke toepassingen. Google verwierf het in Ottawa gevestigde Reqwireless en zijn mobiele webbrowser in de zomer van 2005 om samen met het Android-team te werken aan zijn webinterface. Webweergaven zijn een integraal onderdeel van Android en Google Chrome deelt veel van Android’s code, inclusief de grafische engine.

Google Chrome en Android maken beide gebruik van de Skia vector graphics library, ontwikkeld door een klein bedrijf in North Carolina dat Google in 2005 overnam. Het Skia team werkte voorheen aan de grafische engine van Openwave’s populaire mobiele browser. Google Chrome browser bevat Skia grafische engine ports voor Windows, Mac, en Linux.

Google heeft applicatie beveiligingsbedrijf GreenBorder in mei 2007 overgenomen. GreenBorder technologie zorgt voor automatische sandboxing van webcode en netwerkverkeer door een brug te slaan tussen applicaties. De GreenBorder technologie isoleert Internet Explorer of Firefox instanties in een “sandbox” binnen virtuele machine-instanties. Deze sandboxes vormen de code-isolatielagen van Google Chrome en beschermen andere tabbladen en het moederbesturingssysteem tegen de code die op elke webpagina wordt uitgevoerd.

Een nieuwe browser vanaf nul

Ben Goodger, de technische leider van Google Chrome, is het meest bekend van het samenstellen van de Firefox-webbrowser uit Mozilla’s SeaMonkey-toepassingssuite. Manticore, Camino en later Firefox waren allemaal pogingen in 2001 om de webbrowser te herdenken voor de moderne tijd. Browsen kwam centraal te staan, weg van een communicatiepakket, gebruikersinterfaces werden opnieuw bedacht voor webefficiëntie, en (sommige) oude rommel werd aan de kant geschoven. Google huurde Ben in 2005 in om zijn eigen browser bijdragen te versterken en uiteindelijk een web browser voor het moderne Web volledig te herontwerpen.

Google huurde top Firefox ontwikkelaars in 2005 en 2006, zoals Darin Fisher, Pam Greene, en Brian Ryner. In het voorjaar van 2006 begon het team te werken aan een nieuw browser prototype, gebouwd bovenop WebKit, ontworpen voor breedband-verbonden, always-on, web applicaties zoals Gmail of Google Maps. Kunnen de browserexperts webapplicaties wat ademruimte geven?

Moderne computers hebben multi-core multi-gigahertz CPU’s, gigabytes aan geheugen, megabits aan bandbreedte, en omvangrijke harde schijven. Onze webbrowsers moeten browsertabbladen in hun eigen processen scheiden, alle communicatie met het besturingssysteem multi-threaden, de cache vergroten en niet bang zijn om meer bandbreedte op te eisen als die beschikbaar is. Internet Explorer 8, Firefox 3.1 en Apple Safari kiezen voor een nieuwe aanpak van webbrowsers voor moderne machines, maar Google Chrome heeft het voordeel van een nieuwe start om een aantal functies te bereiken die momenteel niet mogelijk zijn in andere browserarchitecturen.

Functies zoals tab-isolatie en taakmonitoring zijn moeilijk toe te voegen binnen een bestaande browserarchitectuur van gedeelde run-times en venstermodellen (zoals John Resig al zei). Loosely Coupled IE van Internet Explorer 8 abstraheert gedeeltelijk browsertabbladinstanties en de industrie gaat in het algemeen die kant op.

Monitoring van specifieke bronnen van webtoepassingen zou meer websites moeten motiveren om hun browserbloat te verminderen, nu ze zijn geïdentificeerd. Individuele gebruikers kunnen het gebruik van webapplicaties ook direct vergelijken met hun desktop-tegenhangers.

Rev your JavaScript Engines

Lars Bak en zijn team in Århus, Denemarken hebben vele jaren besteed aan het schrijven van virtuele machines: de run-times die programmeercode vertalen in machinecode. Lars schreef Sun’s Java VM, HotSpot, en heeft later de VM afgeslankt voor J2ME (CLDC HI project Monty). Een paar jaar geleden begonnen Lars en zijn team in Denemarken te werken aan een nieuwe geïnterpreteerde JavaScript engine die geoptimaliseerd is voor x86 en ARM architecturen.

De V8 engine is specifiek afgestemd op recursieve JavaScript taken, waardoor veelgebruikte onderdelen van uw applicatie geoptimaliseerd worden. V8 is multi-threaded, het openen van nieuwe parallelle verwerking op meerdere rekenkernen. V8 raadt hoe u uw JavaScript-code zou kunnen gebruiken, en komt terug op eventuele foute aannames. Het is slechts een van de nieuwe engines die we eind 2008 in onze webbrowsers zullen zien.

Google Chrome had dezelfde JavaScript-interpreter kunnen gebruiken als zijn WebKit rendering engine (JavaScriptCore, SquirrelFish), maar het team had de kans, en de financiering, om een interpreter vanaf nul te herschrijven voor desktop en mobiele runtimes.

De V8-engine maakt nieuwe functiesets mogelijk voor Google’s webapplicaties, zoals Gmail en Google Maps. Webapplicatie-ontwikkelaars vermijden het toevoegen van functies die browsers zichtbaar vertragen of verwerkingspauzes veroorzaken in uw applicatie-ervaring. Nieuwe snelheid op nieuwe gebieden voegt functionaliteit toe aan bestaande apps. Google-programmeurs moeten als gevolg van V8 efficiëntere code maken, die is getest met meerdere interpreters en is geoptimaliseerd voor moderne computers. Zelfs als Google Chrome geen significant browsermarktaandeel wint, verwacht ik nog steeds dat het de beste single-site browser zal zijn voor Google webapplicaties.

Google Chrome voegt extra JavaScript-functionaliteit toe via Gears. Gears wordt gebundeld met elke Chrome-installatie en voegt sneller nieuwe functies aan de webbrowser toe dan eerdere plugins. De Gears-bibliotheken bevatten ondersteuning voor nieuwe lokale cachestructuren, lokale databases, locatiegegevens, achtergrondtaken en bestandsverwerking. Chrome vergroot de beschikbare Gears-footprint voor webontwikkelaars, waaronder Google’s eigen apps zoals Google Reader en Google Docs (en mijn blog). De huidige Gears-code in Chrome repliceert V8- en sqlite-code die al in de browser aanwezig is, een bolt-on die hopelijk in de nabije toekomst zal worden geïntegreerd.

Chrome, V8 en Gears zullen een nieuwe proeftuin zijn voor Google’s HTML5-inspanningen, en een nieuwe plaats aan de tafel veroveren als implementator bij upstream-normengroepen zoals W3C.

Meet the Team

Questions with the Google Chrome leads

Ik volg ten minste 20 mensen die betrokken zijn bij het Google Chrome-project binnen Google. Ik weet zeker dat de commit-logs van Chromium er nog meer zullen onthullen (update: meer complete lijst hier), maar hieronder volgt een kort overzicht van de Chrome-medewerkers.

Brian Rakowski, Lead Product Manager Brian was in 2002 Google’s eerste associate product manager, toegewezen aan Gmail. Later werkte hij aan de Google Browser Sync Firefox-plugin. Ben Goodger, Software Engineer Ben is de voormalige Firefox 1.0 projectleider. Hij was ook auteur van het Firefox-extensiesysteem. Hij kwam in 2005 bij Google. Mike Pinkerton, Technical Lead Mike is een van de Google-teamleden die verantwoordelijk zijn voor de introductie van Chrome op de Mac. Mike werkte bij Netscape en later aan de Gecko-aangedreven AOL-client voordat hij medeoprichter werd van het Camino-project. Mike kwam in september 2005 bij Google en leidt nog steeds de ontwikkeling van Camino. Darin Fisher, Software Engineer Darin heeft veel bijgedragen aan de Firefox codebase. Hij specialiseerde zich in netwerkbibliotheken, cookies en permissies, en de Netscape Portable Runtime. Darin kwam in 2005 bij Google. Lars Bak, Software Engineer, V8 Lars was de hoofdontwikkelaar van Java HotSpot VM en Monty VM in J2ME voor Sun. Hij was medeoprichter van objectgeoriënteerde VM-bedrijven voor embedded apparaten voordat hij bij Google kwam. Lars werkte aan V8 vanuit een boerderij in Århus, Denemarken, voordat hij het team verhuisde naar de kantoren van de universiteit. Kasper Lund, Software Engineer, V8 Kasper deelt een lange geschiedenis met Lars Bak bij het werken aan virtuele machines. Brian Ryner, Software Engineer Brian is een voormalig medewerker van Firefox, waar hij ondersteuning voor muiswielen heeft toegevoegd, de kern van de Gecko-rendering engine heeft aangepast, wachtwoordbeheer heeft gedaan en Linux-installateurs heeft gemaakt. Pam Greene, software-ingenieur Pam is al lange tijd bij Firefox betrokken. Ze voegde OpenSearch toe aan de browser en droeg bij aan full-text zoeken in Places/AwesomeBar. Ian Fette, Product Manager Ian is een voormalig Firefox-medewerker die heeft gewerkt aan anti-phishing, anti-malware, spellingcorrectie, en de Safe Browsing API. Arnaud Weber, software-ingenieur Arnaud is een voormalig directeur onderzoek en ontwikkeling bij Netscape en Borland voordat hij in september 2006 bij Google aan de slag ging met een “geheim project”. Brett Wilson, software-ingenieur Brett werkte voorheen aan de Google Toolbar. Hij heeft bijgedragen aan de Firefox-functionaliteit voor geschiedenis en bladwijzers. Mike Belshe, software-ingenieur Mike hielp bij het schrijven van een Outlook-add-on genaamd Chrome voor Lookout Software voordat deze werd overgenomen door Microsoft. Mike werkte voorheen ook bij Netscape en Good Technology. Huan Ren, Software Engineer Huan werkt aan netwerk flow control, het onderhandelen van browser interacties met netwerkbronnen. Huan werkte voorheen bij Microsoft. Erik Kay, Software Engineer Erik werkte voorheen aan de AvantGo browser, Qurb anti-spam software voor Outlook en Outlook Express. Glen Murphy, Software Engineer Glen is gespecialiseerd in het ontwerpen van gebruikersinterfaces. Hij werkte eerder aan gebruikersinterface Firefox extensies. Google Browser Sync, Google Blog Search Evan Martin, Software Engineer Evan schrijft geautomatiseerde testtools voor Chrome en het web. John Abd-El-Malek, Software-ingenieur John maakt deel uit van het Windows-specialistenteam bij Google dat Google Desktop, Google Talk en Breakpad naar Windows XP en Windows Vista brengt. Amanda Walker, software-ingenieur Amanda is een van de mensen die verantwoordelijk zijn voor de aankomende Mac-versie van Chrome. Mark Mentovai, Software Engineer Mark was nauw betrokken bij de overgang van Firefox voor Mac naar de huidige Intel-gebaseerde architectuur. Hij heeft gewerkt aan het Breakpad-project en aan veel niveaus van de code van Chrome. Carlos Pizano, Software Engineer Carlos werkte voorheen aan GreenBorder en werkt nog steeds aan de sandboxing van Chrome. Mark Larson, Program Manager Mark is ook voormalig van GreenBorder en zijn sandboxing specialismen. Aaron Boodman, Software Engineer, Gears Aaron verbetert de gebruikerservaring met JavaScript. Hij is vooral bekend van zijn werk aan Gmail, Greasemonkey, en Gears.

Samenvatting

Google Chrome original logo

Google’s bedrijf is afhankelijk van de snelheid en beschikbaarheid van internettoegang voor zoeken, adverteren en toepassingen. Chrome is de tweede poging van Google om de voordeur naar zijn inhoud beter te controleren met volledige toepassingen die zijn geoptimaliseerd voor zijn zware apps. Google Chrome bouwt voort op het werk van Android door individuele toepassingen toe te voegen aan reeds populaire besturingssystemen. Google flirt al jaren met het idee van een eigen webbrowser, maar heeft pas onlangs werkende implementaties van zijn eigen volledige browsertoepassingen vrijgegeven.

Android, Chrome en Gears zullen blijven groeien in unisono en individuele stukken uitbreiden naar gevestigde besturingssystemen. Google bouwt een nieuwe suite van applicatie-extractielagen die een sterke hefboomwerking moeten hebben op Windows, Mac en Linux om het lot van het bedrijf op deze platforms rechtstreeks te controleren.

Het is een spannende tijd voor nieuwe browsertechnologieën, omdat Internet Explorer, Firefox en WebKit elk concurreren over implementaties van standaarden en prestaties. De officiële toevoeging van Google Chrome aan de browserruimte versterkt alleen maar Google’s positie bij het versterken van het toekomstige web en levert sterke single site browse-ervaringen voor hun belangrijkste webtoepassingen.