Articles

La storia dietro Google Chrome

Ben Goodger and Google Chrome

Google ha rilasciato il suo secondo browser web ieri pomeriggio, aggiungendo ulteriore spazio per le applicazioni web che estendono i limiti di ciò che è possibile realizzare con un browser web. Il team di Google Chrome ha riunito esperti di dominio in vari campi negli ultimi sei anni, sia attraverso assunzioni dirette che acquisizioni, per creare un nuovo browser e i suoi componenti critici da zero. GMail e Google Maps hanno spinto il Web ai suoi limiti, sfruttando le tecnologie del browser inventate a Redmond ma lasciate in sospeso per troppo tempo. Contribuire al nucleo di Firefox, scrivere estensioni del browser e difendere l’HTML poteva portare l’azienda da 150 miliardi di dollari solo fino a un certo punto: avevano bisogno di possedere l’intero browser per spingere i loro sforzi sul Web a tutta velocità.

  1. Frustrazioni crescenti
  2. Potenziamento dell’acquisizione
  3. Un nuovo browser da zero
  4. Revoca i motori JavaScript
  5. Incontra il team
  6. Sommario

Frustrazioni crescenti

Brian Rakowski è entrato in Google nel luglio 2002 come primo product manager associato della società. Il suo primo incarico? Lanciare GMail con caratteristiche e reattività da competere con i client di posta desktop. Gmail ha sfruttato le caratteristiche relativamente dormienti dei browser come XMLHttpRequest, sockets, prefetch, e altro ancora per creare un’applicazione web che estende i limiti di ciò che era possibile nei browser del 2004. Il Gmail di oggi continua a scontrarsi con i limiti di un browser, stabilendo requisiti minimi di Internet Explorer 7+ e Firefox 2+. I team delle applicazioni web di Google come Maps e Mail si scontrano continuamente con le ultime capacità dei browser web e in alcuni casi inventano i propri runtime.

Ian Hickson ha imparato per la prima volta il funzionamento interno dei browser web durante uno stage presso Netscape. Dopo aver lavorato su Opera per alcuni anni e aver creato test per Firefox, Ian si è unito a Google per continuare il suo lavoro sulle nuove funzionalità del browser. HTML5 e i test “acidi” di conformità del browser sono tentativi significativi da parte di Ian e altri di ridefinire i browser web attraverso specifiche, test e implementazioni, ma fino ad ora Google poteva solo offrire aiuti allo sviluppo ed estensioni del browser come Gears per accelerare le capacità del browser.

Google ha esteso ciò che non poteva aggiungere immediatamente al nucleo del browser. Gears per nuove funzionalità di applicazioni su più browser. Browser Sync per sincronizzare le impostazioni e i dati del browser su più computer. Safe Browsing per creare più fiducia nel web. I team di ciascuna di queste estensioni stanno ora lavorando su Google Chrome.

Acquisizione Boost

Google ha rilasciato il suo primo browser web ufficiale il 18 agosto 2008 con la versione beta del sistema operativo mobile Android. Google ha acquisito Android nell’agosto 2005 per stabilire un punto d’appoggio sul mercato dei computer (e del web) in più rapida crescita: i telefoni cellulari. Android mette in evidenza le proprietà web di Google attraverso il suo browser basato su WebKit e le applicazioni dipendenti. Google ha acquisito Reqwireless, con sede a Ottawa, e il suo browser web mobile nell’estate del 2005 per collaborare con il team di Android sulla sua interfaccia web. Le viste web sono parte integrante di Android e Google Chrome condivide molto del codice di Android, compreso il suo motore grafico.

Google Chrome e Android sfruttano entrambi la libreria grafica vettoriale Skia sviluppata da una piccola azienda del North Carolina che Google ha acquisito nel 2005. Il team Skia ha lavorato in precedenza sul motore grafico del popolare browser mobile Openwave. Il browser Google Chrome include i port del motore grafico Skia per Windows, Mac e Linux.

Google ha acquisito la società di sicurezza delle applicazioni GreenBorder nel maggio 2007. La tecnologia GreenBorder sandboxa automaticamente il codice web e il traffico di rete creando un ponte tra le applicazioni. La tecnologia GreenBorder ha isolato le istanze di Internet Explorer o Firefox in una “sandbox” all’interno delle istanze della macchina virtuale. Queste sandbox formano i livelli di isolamento del codice di Google Chrome, proteggendo le altre schede e il sistema operativo principale dal codice in esecuzione su ogni pagina web.

Un nuovo browser da zero

Ben Goodger, capo tecnico di Google Chrome, è meglio conosciuto per aver assemblato il browser web Firefox dalla suite di applicazioni SeaMonkey di Mozilla. Manticore, Camino, e più tardi Firefox erano tutti tentativi nel 2001 di ripensare il browser web per l’era moderna. La navigazione ha preso il centro della scena lontano da una suite di comunicazione, le interfacce utente sono state reimmaginate per l’efficienza del web, e (alcune) parti di ricambio sono state gettate a lato. Google ha assunto Ben nel 2005 per rafforzare i suoi contributi al browser e alla fine riarchitettare completamente un browser per il Web moderno.

Google ha assunto i migliori sviluppatori di Firefox nel 2005 e nel 2006 come Darin Fisher, Pam Greene e Brian Ryner. Nella primavera del 2006 il team ha iniziato a lavorare su un nuovo prototipo di browser costruito sopra WebKit, progettato per applicazioni web connesse a banda larga e sempre attive, come Gmail o Google Maps. Gli esperti di browser potrebbero dare un po’ di respiro alle applicazioni web?

I computer moderni hanno CPU multi-core multi-gigahertz, gigabyte di memoria, megabit di larghezza di banda e dischi rigidi ingombranti. I nostri browser dovrebbero separare le schede del browser in processi propri, multi-thread tutte le comunicazioni con il sistema operativo, aumentare le dimensioni della cache, e non aver paura di comandare più larghezza di banda quando è disponibile. Internet Explorer 8, Firefox 3.1 e Apple Safari stanno adottando nuovi approcci ai browser web per le macchine moderne, ma Google Chrome ha il vantaggio di un nuovo inizio per ottenere alcune caratteristiche attualmente non possibili in altre architetture di browser.

Caratteristiche come l’isolamento delle schede e il monitoraggio delle attività sono compiti difficili da aggiungere all’interno di un’architettura di browser esistente di runtime e modelli di finestre condivisi (come ha detto John Resig). Internet Explorer 8’s Loosely Coupled IE astrae parzialmente le istanze delle schede del browser e l’industria è generalmente diretta in questa direzione.

Il monitoraggio delle risorse specifiche delle applicazioni web dovrebbe motivare più siti web a ridurre il loro browser bloat ora che sono stati identificati. I singoli utenti possono anche confrontare l’uso delle risorse delle applicazioni web direttamente con le loro controparti desktop.

Rev your JavaScript Engines

Lars Bak e il suo team di Århus, Danimarca, hanno passato molti anni a scrivere macchine virtuali: i run-times che traducono il codice di programmazione in codice macchina. Lars ha scritto la VM Java di Sun, HotSpot, e più tardi ha snellito la VM per J2ME (CLDC HI project Monty). Alcuni anni fa Lars e il suo team in Danimarca hanno iniziato a lavorare su un nuovo motore JavaScript interpretato ottimizzato per le architetture x86 e ARM.

Il motore V8 è specificamente sintonizzato per compiti JavaScript ricorsivi, ottimizzando i componenti comunemente usati della vostra applicazione. V8 è multi-threaded, aprendo nuove elaborazioni parallele su più core di calcolo. V8 indovina come potreste usare il vostro codice JavaScript, e fa marcia indietro su qualsiasi ipotesi sbagliata. È solo uno dei nuovi motori che vedremo all’interno dei nostri browser web entro la fine del 2008.

Google Chrome avrebbe potuto usare lo stesso interprete JavaScript del suo motore di rendering WebKit (JavaScriptCore, SquirrelFish) ma il team ha avuto l’opportunità, e i fondi, di riscrivere un interprete da zero per i runtime desktop e mobile.

Il motore V8 permette nuove funzionalità per le applicazioni web di Google come Gmail e Google Maps. Gli sviluppatori di applicazioni web evitano di aggiungere funzionalità che rallentano visibilmente i browser o causano pause di elaborazione nell’esperienza dell’applicazione. La nuova velocità in nuove aree aggiunge funzionalità alle applicazioni esistenti. I programmatori di Google dovrebbero creare codice più efficiente, testato contro più interpreti e ottimizzato per i computer moderni come risultato di V8. Anche se Google Chrome non guadagna una quota significativa del mercato dei browser, mi aspetto ancora che sarà il miglior browser a sito singolo per le applicazioni web di Google.

Google Chrome aggiunge ulteriori funzionalità JavaScript attraverso Gears. Gears viene fornito in bundle con ogni installazione di Chrome, aggiungendo nuove funzionalità al browser web più velocemente dei plugin precedenti. Le librerie Gears includono il supporto per nuove strutture di cache locali, database locali, dati di posizione, attività in background e gestione dei file. Chrome aumenta l’impronta di Gears disponibile per gli sviluppatori web, comprese le applicazioni di Google come Google Reader e Google Docs (e il mio blog). L’attuale codice Gears incluso in Chrome replica il codice V8 e sqlite già presente nel browser, un bolt-on che si spera sarà integrato nel prossimo futuro.

Chrome, V8, e Gears saranno un nuovo terreno di prova per gli sforzi di Google per l’HTML5, conquistando un nuovo posto al tavolo come implementatore con gruppi di standard a monte come il W3C.

Incontrare la squadra

Questions with the Google Chrome leads

Sto seguendo almeno 20 persone coinvolte nel progetto Google Chrome attraverso Google. Sono sicuro che i log dei commit di Chromium riveleranno ancora di più (aggiornamento: elenco più completo qui), ma qui sotto c’è un rapido riassunto dello staff di Chrome.

Brian Rakowski, Lead Product Manager Brian è stato il primo product manager associato di Google nel 2002, assegnato a Gmail. In seguito ha lavorato sul plugin Firefox di Google Browser Sync. Ben Goodger, ingegnere software Ben è l’ex capo progetto di Firefox 1.0. È anche autore del sistema di estensioni di Firefox. È entrato in Google nel 2005. Mike Pinkerton, Technical Lead Mike è uno dei membri del team di Google responsabile di portare Chrome su Mac. Mike ha lavorato a Netscape e successivamente al client AOL alimentato da Gecko prima di co-fondare il progetto Camino. Mike si è unito a Google nel settembre 2005 e continua a guidare lo sviluppo di Camino. Darin Fisher, ingegnere del software Darin ha contribuito spesso al codice di Firefox. Si è specializzato in librerie di rete, cookie e permessi, e nel Netscape Portable Runtime. Darin è entrato in Google nel 2005. Lars Bak, ingegnere del software, V8 Lars è stato lo sviluppatore principale di Java HotSpot VM e Monty VM in J2ME per Sun. Ha co-fondato aziende di VM orientate agli oggetti per dispositivi embedded prima di entrare in Google. Lars ha lavorato su V8 da una fattoria ad Århus, Danimarca, prima di spostare il team negli uffici dell’università. Kasper Lund, Software Engineer, V8 Kasper condivide con Lars Bak una lunga storia di lavoro sulle macchine virtuali. Brian Ryner, Software Engineer Brian è un ex collaboratore di Firefox dove ha aggiunto il supporto alla rotellina del mouse, ha modificato il nucleo del motore di rendering Gecko, la gestione delle password e gli installatori Linux. Pam Greene, ingegnere del software Pam è un collaboratore di lunga data di Firefox. Ha aggiunto OpenSearch al browser e ha contribuito alla ricerca full-text in Places/AwesomeBar. Ian Fette, Product Manager Ian è un ex collaboratore di Firefox che ha lavorato su anti-phishing, anti-malware, correzione dell’ortografia e sulle API di Safe Browsing. Arnaud Weber, Software Engineer Arnaud è un ex direttore di ricerca e sviluppo presso Netscape e Borland prima di entrare in Google per lavorare su un “progetto segreto” nel settembre 2006. Brett Wilson, ingegnere del software Brett ha lavorato in precedenza alla Google Toolbar. Ha contribuito alla storia di Firefox e alla funzionalità dei segnalibri. Mike Belshe, ingegnere del software Mike ha aiutato a scrivere un add-on di Outlook chiamato Chrome per Lookout Software prima di essere acquisito da Microsoft. Mike ha anche lavorato in precedenza presso Netscape e Good Technology. Huan Ren, ingegnere del software Huan lavora sul controllo del flusso di rete, negoziando le interazioni del browser con le risorse di rete. Huan ha lavorato in precedenza alla Microsoft. Erik Kay, ingegnere del software Erik ha lavorato in precedenza al browser AvantGo, al software anti-spam Qurb per Outlook e Outlook Express. Glen Murphy, ingegnere del software Glen è specializzato nella progettazione dell’interfaccia utente. In precedenza ha lavorato sull’interfaccia utente. Estensioni di Firefox. Google Browser Sync, Google Blog Search Evan Martin, ingegnere del software Evan scrive strumenti di test automatici per Chrome e il Web. John Abd-El-Malek, ingegnere del software John fa parte del team di specialisti di Windows a Google, portando Google Desktop, Google Talk e Breakpad su Windows XP e Windows Vista. Amanda Walker, Software Engineer Amanda è una delle persone responsabili della prossima versione di Chrome per Mac. Mark Mentovai, ingegnere software Mark è stato pesantemente coinvolto nel passaggio di Firefox per Mac alla sua attuale architettura basata su Intel. Ha lavorato al progetto Breakpad e a molti livelli del codice di Chrome. Carlos Pizano, Software Engineer Carlos ha lavorato in precedenza su GreenBorder e continua a lavorare sul sandboxing di Chrome. Mark Larson, Program Manager Mark è anche ex GreenBorder e le sue specialità di sandboxing. Aaron Boodman, ingegnere software, Gears Aaron migliora l’esperienza dell’utente con JavaScript. È meglio conosciuto per il suo lavoro su Gmail, Greasemonkey e Gears.

Sommario

Google Chrome original logo

Il business di Google dipende dalla velocità e dalla disponibilità dell’accesso al web per la ricerca, la pubblicità e le applicazioni. Chrome è il secondo tentativo di Google di controllare meglio la porta d’ingresso ai suoi contenuti con applicazioni complete ottimizzate per le sue applicazioni pesanti. Google Chrome si basa sul lavoro di Android aggiungendo applicazioni individuali a sistemi operativi già popolari. Google ha flirtato con l’idea di un proprio browser web per molti anni, ma solo recentemente ha rilasciato implementazioni funzionanti delle proprie applicazioni browser complete.

Android, Chrome e Gears continueranno a crescere all’unisono e ad estendere singoli pezzi in sistemi operativi consolidati. Google sta costruendo una nuova suite di strati di estrazione delle applicazioni che dovrebbe avere una forte leva su Windows, Mac e Linux per controllare direttamente il destino dell’azienda su queste piattaforme.

E’ un momento eccitante per le nuove tecnologie del browser mentre Internet Explorer, Firefox e WebKit competono ognuno per le implementazioni degli standard e le prestazioni. L’aggiunta ufficiale di Google Chrome allo spazio dei browser non fa che rafforzare la posizione di Google che rafforza il web del futuro e offre forti esperienze di navigazione su un solo sito per le loro applicazioni web principali.

.