Historien bakom Google Chrome
Google släppte sin andra webbläsare igår eftermiddag, vilket ger ytterligare utrymme för webbapplikationer som tänjer på gränserna för vad som är möjligt att åstadkomma i en webbläsare. Google Chrome-teamet har samlat domänexperter inom olika områden under de senaste sex åren, både genom direkta anställningar och förvärv, för att skapa en ny webbläsare och dess kritiska komponenter från grunden. GMail och Google Maps drev webben till sina gränser och utnyttjade webbläsarteknik som uppfunnits i Redmond men som lämnats vilande alldeles för länge. Att bidra till Firefox kärnan, skriva webbläsartillägg och förespråka HTML kunde bara föra företaget på 150 miljarder dollar så långt: de behövde äga hela webbläsaren för att kunna driva sina webbinsatser framåt i full fart.
- Växande frustration
- Förstärkning genom förvärv
- En ny webbläsare från grunden
- Rev your JavaScript Engines
- Möt teamet
- Sammanfattning
Växande frustration
Brian Rakowski började arbeta för Google i juli 2002 som företagets första biträdande produktchef. Hans första uppdrag? Att lansera GMail med funktioner och responsförmåga som konkurrerar med andra e-postklienter för stationära datorer. Gmail utnyttjade relativt slumrande webbläsarfunktioner som XMLHttpRequest, sockets, prefetch med mera för att skapa webbapplikationer som tänjde på gränserna för vad som var möjligt i 2004 års webbläsare. Dagens Gmail fortsätter att stöta på webbläsarens gränser och ställer minimikrav på Internet Explorer 7+ och Firefox 2+. Google webbapplikationer som Maps och Mail stöter ständigt på de senaste möjligheterna i webbläsare och uppfinner i vissa fall sina egna körtider.
Ian Hickson lärde sig först hur webbläsare fungerar när han var praktikant på Netscape. Efter att ha arbetat med Opera i några år och skapat tester för Firefox gick Ian till Google för att fortsätta sitt arbete med nya webbläsarfunktioner. HTML5 och ”sura” tester av webbläsarens överensstämmelse är viktiga försök av Ian och andra att omdefiniera webbläsare genom specifikationer, tester och implementeringar, men hittills kunde Google bara erbjuda utvecklingshjälp och webbläsartillägg som Gears för att påskynda webbläsarens funktioner.
Google utökade det som inte omedelbart kunde läggas till i webbläsarens kärna. Gears för ny applikationsfunktionalitet på flera webbläsare. Browser Sync för att synkronisera webbläsarinställningar och data på flera datorer. Safe Browsing för att skapa mer förtroende för webben. Team från var och en av dessa tillägg arbetar nu med Google Chrome.
Acquisition Boost
Google släppte sin första officiella webbläsare den 18 augusti 2008 i samband med betaversionen av mobiloperativsystemet Android. Google förvärvade Android i augusti 2005 för att få ett fotfäste på den snabbast växande marknaden för datorer (och webb): mobiltelefoner. Android lyfter fram Googles webbegenskaper genom sin WebKit-baserade webbläsare och beroende applikationer. Google förvärvade Ottawa-baserade Reqwireless och dess mobila webbläsare sommaren 2005 för att samarbeta med Android-teamet om dess webbgränssnitt. Webbvisningar är en integrerad del av Android och Google Chrome delar mycket av Androids kod, inklusive grafikmotorn.
Google Chrome och Android drar båda nytta av vektorgrafikbiblioteket Skia som utvecklats av ett litet företag i North Carolina som Google förvärvade 2005. Skia-teamet arbetade tidigare med Openwaves populära mobila webbläsares grafikmotor. Webbläsaren Google Chrome innehåller anpassningar av Skia-grafikmotorn för Windows, Mac och Linux.
Google förvärvade tillämpningssäkerhetsföretaget GreenBorder i maj 2007. GreenBorder-tekniken sandboxar automatiskt webbkod och nätverkstrafik genom att skapa en bro mellan programmen. GreenBorder-tekniken isolerade Internet Explorer- eller Firefox-instanser i en ”sandlåda” inuti virtuella maskininstanser. Dessa sandlådor utgör kodisoleringslagren i Google Chrome och skyddar andra flikar och det överordnade operativsystemet från den kod som körs på varje webbsida.
En ny webbläsare från grunden
Ben Goodger, Google Chromes tekniska ledare, är mest känd för att ha skapat webbläsaren Firefox utifrån Mozillas SeaMonkey-programpaket. Manticore, Camino och senare Firefox var alla försök 2001 att ompröva webbläsaren för den moderna tidsåldern. Webbläsningen fick stå i centrum, inte längre som en kommunikationssvit, användargränssnitten omformades för att bli effektivare på webben och (en del) äldre skräp kastades åt sidan. Google anställde Ben 2005 för att stärka sina egna webbläsarbidrag och så småningom helt omarbeta en webbläsare för den moderna webben.
Google anställde topputvecklare för Firefox 2005 och 2006, till exempel Darin Fisher, Pam Greene och Brian Ryner. Våren 2006 började teamet arbeta på en ny webbläsarprototyp som bygger på WebKit och som är utformad för bredbandsanslutna webbprogram som alltid är igång, t.ex. Gmail eller Google Maps. Kan experterna på webbläsare ge webbapplikationer lite andrum?
Moderna datorer har flerkärniga processorer med flera gigahertz, gigabyte av minne, megabit av bandbredd och skrymmande hårddiskar. Våra webbläsare bör separera webbläsarflikar i egna processer, använda flera trådar i all kommunikation med operativsystemet, öka storleken på cacheminnet och inte vara rädda för att begära mer bandbredd när den är tillgänglig. Internet Explorer 8, Firefox 3.1 och Apple Safari tar nya grepp om webbläsare för moderna maskiner, men Google Chrome har fördelen av en nystart och kan uppnå vissa funktioner som för närvarande inte är möjliga i andra webbläsararkitekturer.
Funktioner som isolering av flikar och övervakning av uppgifter är svåra att lägga till i en befintlig webbläsararkitektur med delade körtider och fönstermodeller (som John Resig nämnde). Internet Explorer 8:s Loosely Coupled IE abstraherar delvis webbläsarens flikinstanser och branschen är generellt på väg i denna riktning.
Webbapplikationsspecifik resursövervakning bör motivera fler webbplatser att minska sin webbläsarbloat nu när de har identifierats. Enskilda användare kan också jämföra webbprogrammens resursanvändning direkt med deras motsvarigheter på skrivbordet.
Rev your JavaScript Engines
Lars Bak och hans team i Århus, Danmark, har tillbringat många år med att skriva virtuella maskiner: de körtider som översätter programmeringskod till maskinkod. Lars skrev Suns virtuella maskinvara för Java, HotSpot, och senare bantade han den virtuella maskinen för J2ME (CLDC HI-projektet Monty). För några år sedan började Lars och hans team i Danmark arbeta på en ny tolkad JavaScript-motor som är optimerad för x86- och ARM-arkitekturer.
V8-motorn är särskilt anpassad för rekursiva JavaScript-uppgifter, vilket optimerar ofta använda komponenter i din applikation. V8 är flertrådig, vilket öppnar upp för ny parallell bearbetning på flera beräkningskärnor. V8 gissar hur du kan använda din JavaScript-kod och backtrackar om det finns felaktiga antaganden. Det är bara en av de nya motorer som vi kommer att se i våra webbläsare i slutet av 2008.
Google Chrome kunde ha använt samma JavaScript-tolk som WebKit-renderingsmotorn (JavaScriptCore, SquirrelFish), men teamet hade en möjlighet, och finansiering, att skriva om en tolk från grunden för körtider för datorer och mobiler.
V8-motorn möjliggör nya funktioner för Googles webbapplikationer, t.ex. Gmail och Google Maps. Utvecklare av webbapplikationer undviker att lägga till funktioner som synbart saktar ner webbläsare eller orsakar bearbetningspauser i programupplevelsen. Ny hastighet på nya områden tillför funktionalitet till befintliga appar. Googles programmerare bör skapa effektivare kod, testad mot flera tolkar och optimerad för moderna datorer som ett resultat av V8. Även om Google Chrome inte vinner några betydande marknadsandelar för webbläsare förväntar jag mig fortfarande att det kommer att vara den bästa webbläsaren för en enda webbplats för Googles webbapplikationer.
Google Chrome lägger till ytterligare JavaScript-funktionalitet genom Gears. Gears ingår i varje Chrome-installation och lägger till nya funktioner till webbläsaren snabbare än tidigare plugins. Gears-biblioteken innehåller stöd för nya lokala cachestrukturer, lokala databaser, platsdata, bakgrundsuppgifter och filhantering. Chrome ökar det tillgängliga Gears-avtrycket för webbutvecklare, inklusive Googles egna appar som Google Reader och Google Docs (och min blogg). Den nuvarande Gears-koden som ingår i Chrome replikerar V8- och sqlite-kod som redan finns i webbläsaren, ett tillägg som förhoppningsvis kommer att integreras inom en snar framtid.
Chrome, V8 och Gears kommer att bli en ny testplats för Googles HTML5-satsningar, som vinner en ny plats vid bordet som genomförare med standardiseringsgrupper i uppströmsledet, t.ex. W3C.
Möt teamet
Jag spårar minst 20 personer som är involverade i Google Chrome-projektet inom Google. Jag är säker på att Chromium commit logs kommer att avslöja ännu fler (uppdatering: mer komplett lista här), men nedan följer en snabb sammanfattning av Chromes personal.
Brian Rakowski, Lead Product Manager Brian var Googles första associerade produktchef 2002, med ansvar för Gmail. Senare arbetade han med Google Browser Sync Firefox-plugin. Ben Goodger, mjukvaruingenjör Ben är den tidigare projektledaren för Firefox 1.0. Han har också skapat Firefox tilläggssystem. Han började arbeta för Google 2005. Mike Pinkerton, Technical Lead Mike är en av medlemmarna i Googles team som ansvarar för att Chrome kom till Mac. Mike arbetade på Netscape och senare på den Gecko-drivna AOL-klienten innan han var med och grundade Camino-projektet. Mike kom till Google i september 2005 och fortsätter att leda Camino-utvecklingen. Darin Fisher, mjukvaruingenjör Darin bidrog ofta till Firefox-kodbasen. Han specialiserade sig på nätverksbibliotek, cookies och behörigheter samt Netscape Portable Runtime. Darin kom till Google 2005. Lars Bak, mjukvaruingenjör, V8 Lars var huvudutvecklare av Java HotSpot VM och Monty VM i J2ME för Sun. Han var med och grundade objektorienterade VM-företag för inbyggda enheter innan han började på Google. Lars arbetade med V8 från en gård i Århus, Danmark, innan han flyttade teamet till universitetskontor. Kasper Lund, mjukvaruingenjör, V8 Kasper delar en lång historia med Lars Bak som arbetar med virtuella maskiner. Brian Ryner, mjukvaruingenjör Brian har tidigare bidragit till Firefox där han lade till stöd för mushjul, justerade kärnan i Gecko-renderingsmotorn, lösenordshantering och Linux-installerare. Pam Greene, mjukvaruingenjör Pam har länge bidragit till Firefox. Hon lade till OpenSearch i webbläsaren och bidrog till fulltextsökning i Places/AwesomeBar. Ian Fette, produktchef Ian har tidigare bidragit till Firefox och har arbetat med anti-phishing, anti-malware, rättelse av stavning och API:et för säker surfning. Arnaud Weber, mjukvaruingenjör Arnaud är tidigare forsknings- och utvecklingschef på Netscape och Borland innan han gick till Google för att arbeta med ett ”hemligt projekt” i september 2006. Brett Wilson, mjukvaruingenjör Brett arbetade tidigare med Google Toolbar. Han har bidragit till Firefox funktionalitet för historik och bokmärken. Mike Belshe, mjukvaruingenjör Mike hjälpte till att skriva ett Outlook-tillägg kallat Chrome för Lookout Software innan det förvärvades av Microsoft. Mike har även tidigare arbetat på Netscape och Good Technology. Huan Ren, mjukvaruingenjör Huan arbetar med nätverksflödeskontroll, som förhandlar webbläsarens interaktioner med nätverksresurser. Huan arbetade tidigare på Microsoft. Erik Kay, mjukvaruingenjör Erik har tidigare arbetat med webbläsaren AvantGo och Qurb antispamprogram för Outlook och Outlook Express. Glen Murphy, mjukvaruingenjör Glen är specialiserad på utformning av användargränssnitt. Han har tidigare arbetat med användargränssnitt. Firefox-tillägg. Google Browser Sync, Google Blog Search Evan Martin, mjukvaruingenjör Evan skriver automatiserade testverktyg för Chrome och webben. John Abd-El-Malek, mjukvaruingenjör John är en del av Windows-specialistteamet på Google och har tagit fram Google Desktop, Google Talk och Breakpad till Windows XP och Windows Vista. Amanda Walker, mjukvaruingenjör Amanda är en av de ansvariga för Chromes kommande Mac-version. Mark Mentovai, mjukvaruingenjör Mark var starkt involverad i att flytta Firefox för Mac till dess nuvarande Intel-baserade arkitektur. Han har arbetat med Breakpad-projektet och många nivåer av Chromes kod. Carlos Pizano, mjukvaruingenjör Carlos arbetade tidigare med GreenBorder och fortsätter att arbeta med Chrome sandboxing. Mark Larson, Program Manager Mark har också tidigare arbetat med GreenBorder och dess sandboxing-specialiteter. Aaron Boodman, mjukvaruingenjör, Gears Aaron förbättrar användarupplevelsen med JavaScript. Han är mest känd för sitt arbete med Gmail, Greasemonkey och Gears.
Sammanfattning
Googles verksamhet är beroende av snabbheten och tillgängligheten på webben för sökning, annonsering och applikationer. Chrome är Googles andra försök att bättre kontrollera framdörren till sitt innehåll med fullständiga applikationer optimerade för sina tunga applikationer. Google Chrome bygger vidare på arbetet med Android genom att lägga till enskilda applikationer till redan populära operativsystem. Google har flörtat med idén om en egen webbläsare i många år, men har först nyligen släppt fungerande implementeringar av egna fullständiga webbläsartillämpningar.
Android, Chrome och Gears kommer att fortsätta att växa i samklang och utvidga enskilda delar till etablerade operativsystem. Google håller på att bygga en ny svit av applikationsuttagslager som bör ha en stark hävstångseffekt i Windows, Mac och Linux för att direkt styra företagets öde på dessa plattformar.
Det är en spännande tid för nya webbläsarteknologier när Internet Explorer, Firefox och WebKit var och en konkurrerar om implementering av standarder och prestanda. Att officiellt lägga till Google Chrome i webbläsarområdet stärker bara Googles position och stärker den framtida webben och ger en stark upplevelse av surfning på en enda webbplats för deras centrala webbapplikationer.