L’histoire derrière Google Chrome
Google a publié son deuxième navigateur web hier après-midi, ajoutant une marge de manœuvre supplémentaire pour les applications web repoussant les limites de ce qu’il est possible d’accomplir dans un navigateur web. L’équipe de Google Chrome a rassemblé des experts de domaine dans divers domaines au cours des six dernières années, à la fois par des embauches directes et des acquisitions, pour créer un nouveau navigateur et ses composants critiques à partir de zéro. GMail et Google Maps ont poussé le Web à ses limites, en tirant parti des technologies de navigation inventées à Redmond mais laissées en sommeil pendant trop longtemps. Contribuer au noyau de Firefox, écrire des extensions de navigateur et se faire le champion du HTML ne pouvait mener l’entreprise de 150 milliards de dollars que jusqu’à un certain point : elle devait posséder le navigateur complet pour faire avancer ses efforts sur le Web à toute vitesse.
- Frustrations croissantes
- Acquisition Boost
- Un nouveau navigateur à partir de zéro
- Rev your JavaScript Engines
- Meet the Team
- Summary
Growing Frustrations
Brian Rakowski a rejoint Google en juillet 2002 en tant que premier chef de produit associé de la société. Sa première mission ? Lancer Gmail avec des fonctionnalités et une réactivité permettant de rivaliser avec les clients de messagerie de bureau. Gmail a exploité des fonctionnalités de navigateur relativement dormantes, telles que XMLHttpRequest, sockets, prefetch, etc., pour créer des applications Web repoussant les limites de ce qui était possible dans les navigateurs Web de 2004. Le Gmail d’aujourd’hui continue de se heurter aux limites d’un navigateur, avec des exigences minimales d’Internet Explorer 7+ et de Firefox 2+. Les équipes des applications web de Google, telles que Maps et Mail, se heurtent continuellement aux dernières capacités des navigateurs web et, dans certains cas, inventent leurs propres runtimes.
Ian Hickson a d’abord appris le fonctionnement interne des navigateurs web alors qu’il était stagiaire chez Netscape. Après avoir travaillé sur Opera pendant quelques années et créé des tests pour Firefox, Ian a rejoint Google pour poursuivre son travail sur les nouvelles fonctionnalités des navigateurs. HTML5 et les tests « acides » de conformité des navigateurs sont des tentatives significatives de Ian et d’autres personnes pour redéfinir les navigateurs Web par le biais de spécifications, de tests et d’implémentations, mais jusqu’à présent, Google ne pouvait offrir qu’une aide au développement et des extensions de navigateur telles que Gears pour accélérer les capacités du navigateur.
Google a étendu ce qu’il ne pouvait pas ajouter immédiatement au noyau du navigateur. Gears pour de nouvelles fonctionnalités d’application sur plusieurs navigateurs. Browser Sync pour synchroniser les paramètres et les données du navigateur sur plusieurs ordinateurs. Safe Browsing pour créer plus de confiance sur le Web. Les équipes de chacune de ces extensions travaillent actuellement sur Google Chrome.
Acquisition Boost
Google a publié son premier navigateur Web officiel le 18 août 2008 avec la version bêta du système d’exploitation mobile Android. Google a fait l’acquisition d’Android en août 2005 pour s’implanter sur le marché des ordinateurs (et du Web) qui connaît la plus forte croissance : les téléphones mobiles. Android met en avant les propriétés web de Google à travers son navigateur basé sur WebKit et ses applications dépendantes. À l’été 2005, Google a fait l’acquisition de la société Reqwireless, basée à Ottawa, et de son navigateur Web mobile, afin de faire équipe avec l’équipe Android sur son interface Web. Les vues Web font partie intégrante d’Android et Google Chrome partage une grande partie du code d’Android, y compris son moteur graphique.
Google Chrome et Android tirent tous deux parti de la bibliothèque graphique vectorielle Skia développée par une petite entreprise de Caroline du Nord que Google a acquise en 2005. L’équipe Skia travaillait auparavant sur le moteur graphique du populaire navigateur mobile d’Openwave. Le navigateur Google Chrome inclut les ports du moteur graphique Skia pour Windows, Mac et Linux.
Gogle a acquis la société de sécurité des applications GreenBorder en mai 2007. La technologie GreenBorder met automatiquement en sandbox le code web et le trafic réseau en créant un pont entre les applications. La technologie GreenBorder a isolé les instances d’Internet Explorer ou de Firefox dans un « bac à sable » à l’intérieur des instances de la machine virtuelle. Ces sandboxes forment les couches d’isolation de code de Google Chrome, protégeant les autres onglets et le système d’exploitation parent du code exécuté sur chaque page web.
Un nouveau navigateur à partir de zéro
Ben Goodger, le responsable technique de Google Chrome, est surtout connu pour avoir assemblé le navigateur web Firefox à partir de la suite d’applications SeaMonkey de Mozilla. Manticore, Camino, et plus tard Firefox étaient tous des tentatives en 2001 de repenser le navigateur Web pour l’ère moderne. La navigation a pris le pas sur la suite de communications, les interfaces utilisateur ont été repensées pour l’efficacité du Web, et (certains) éléments hérités ont été mis de côté. Google a embauché Ben en 2005 pour renforcer ses propres contributions au navigateur et finalement réarchitecturer entièrement un navigateur Web pour le Web moderne.
Google a embauché les meilleurs développeurs de Firefox en 2005 et 2006 tels que Darin Fisher, Pam Greene et Brian Ryner. Au printemps 2006, l’équipe a commencé à travailler sur un nouveau prototype de navigateur construit au-dessus de WebKit, conçu pour les applications Web connectées à large bande et toujours actives, telles que Gmail ou Google Maps. Les experts du navigateur pourraient-ils donner aux applications web un peu d’air ?
Les ordinateurs modernes sont dotés de processeurs multi-cœurs multi-gigahertz, de gigaoctets de mémoire, de mégabits de bande passante et de disques durs volumineux. Nos navigateurs Web devraient séparer les onglets de navigation dans leurs propres processus, utiliser le multithread dans toutes les communications avec le système d’exploitation, augmenter la taille du cache et ne pas avoir peur de demander plus de bande passante lorsqu’elle est disponible. Internet Explorer 8, Firefox 3.1 et Apple Safari adoptent de nouvelles approches des navigateurs web pour les machines modernes, mais Google Chrome a l’avantage d’un nouveau départ pour réaliser certaines fonctionnalités qui ne sont pas actuellement possibles dans d’autres architectures de navigateur.
Des fonctionnalités telles que l’isolation des onglets et le suivi des tâches sont des tâches difficiles à ajouter à l’intérieur d’une architecture de navigateur existante de run-times et de modèles de fenêtres partagés (comme John Resig l’a mentionné). Le Loosely Coupled IE d’Internet Explorer 8 abstrait partiellement les instances d’onglets de navigateur et l’industrie se dirige généralement dans cette direction.
La surveillance des ressources spécifiques aux applications web devrait motiver davantage de sites web à réduire le gonflement de leur navigateur maintenant qu’ils ont été identifiés. Les utilisateurs individuels peuvent également comparer l’utilisation des ressources des applications web directement avec leurs homologues de bureau.
Rev your JavaScript Engines
Lars Bak et son équipe à Århus, au Danemark, ont passé de nombreuses années à écrire des machines virtuelles : les run-times qui traduisent le code de programmation en code machine. Lars a écrit la VM Java de Sun, HotSpot, et plus tard a allégé la VM pour J2ME (projet CLDC HI Monty). Il y a quelques années, Lars et son équipe au Danemark ont commencé à travailler sur un nouveau moteur JavaScript interprété optimisé pour les architectures x86 et ARM.
Le moteur V8 est spécifiquement réglé pour les tâches JavaScript récursives, optimisant les composants couramment utilisés de votre application. V8 est multithreadé, ouvrant de nouveaux traitements parallèles sur plusieurs cœurs de calcul. V8 devine comment vous pouvez utiliser votre code JavaScript et revient sur toute hypothèse erronée. Ce n’est qu’un des nouveaux moteurs que nous verrons à l’intérieur de nos navigateurs web d’ici la fin de l’année 2008.
Google Chrome aurait pu utiliser le même interpréteur JavaScript que son moteur de rendu WebKit (JavaScriptCore, SquirrelFish) mais l’équipe a eu l’opportunité, et le financement, de réécrire un interpréteur à partir de zéro pour les runtimes de bureau et mobiles.
Le moteur V8 permet de nouveaux ensembles de fonctionnalités pour les applications web de Google telles que Gmail et Google Maps. Les développeurs d’applications Web évitent d’ajouter des fonctionnalités qui ralentissent visiblement les navigateurs ou provoquent des pauses de traitement dans votre expérience applicative. La nouvelle vitesse dans de nouveaux domaines ajoute des fonctionnalités aux applications existantes. Grâce à V8, les programmeurs de Google devraient créer un code plus efficace, testé contre plusieurs interpréteurs et optimisé pour les ordinateurs modernes. Même si Google Chrome ne gagne aucune part de marché significative dans le domaine des navigateurs, je m’attends toujours à ce qu’il soit le meilleur navigateur à site unique pour les applications Web de Google.
Google Chrome ajoute des fonctionnalités JavaScript supplémentaires grâce à Gears. Gears est fourni avec chaque installation de Chrome, ajoutant de nouvelles fonctionnalités au navigateur Web plus rapidement que les plugins précédents. Les bibliothèques Gears prennent en charge de nouvelles structures de cache local, des bases de données locales, des données de localisation, des tâches en arrière-plan et la gestion des fichiers. Chrome augmente l’empreinte Gears disponible pour les développeurs web, y compris les applications propres à Google telles que Google Reader et Google Docs (et mon blog). Le code Gears actuel inclus dans Chrome réplique le code V8 et sqlite déjà présent dans le navigateur, un bolt-on qui, espérons-le, sera intégré dans un avenir proche.
Chrome, V8 et Gears seront un nouveau terrain d’essai pour les efforts de Google en matière de HTML5, gagnant un nouveau siège à la table en tant qu’implémenteur avec les groupes de normes en amont tels que le W3C.
Meet the Team
Je suis en train de suivre au moins 20 personnes impliquées dans le projet Google Chrome à travers Google. Je suis sûr que les journaux de commit de Chromium en révèleront encore plus (mise à jour : liste plus complète ici), mais vous trouverez ci-dessous un résumé rapide du personnel de Chrome.
Brian Rakowski, chef de produit principal Brian a été le premier chef de produit associé de Google en 2002, affecté à Gmail. Il a ensuite travaillé sur le plugin Firefox Google Browser Sync. Ben Goodger, ingénieur logiciel Ben est l’ancien chef de projet de Firefox 1.0. Il est également l’auteur du système d’extensions de Firefox. Il a rejoint Google en 2005. Mike Pinkerton, responsable technique Mike est l’un des membres de l’équipe Google responsable de l’introduction de Chrome sur Mac. Mike a travaillé chez Netscape, puis sur le client AOL alimenté par Gecko, avant de cofonder le projet Camino. Mike a rejoint Google en septembre 2005 et continue de diriger le développement de Camino. Darin Fisher, ingénieur logiciel Darin était un contributeur fréquent à la base de code de Firefox. Il s’est spécialisé dans les bibliothèques réseau, les cookies et les permissions, ainsi que le Netscape Portable Runtime. Darin a rejoint Google en 2005. Lars Bak, ingénieur logiciel, V8 Lars était le principal développeur de Java HotSpot VM et Monty VM dans J2ME pour Sun. Avant de rejoindre Google, il a cofondé des entreprises de VM orientées objet pour les dispositifs embarqués. Lars a travaillé sur V8 depuis une ferme à Århus, au Danemark, avant de déplacer l’équipe dans les bureaux de l’université. Kasper Lund, ingénieur logiciel, V8 Kasper partage avec Lars Bak une longue histoire de travail sur les machines virtuelles. Brian Ryner, ingénieur logiciel Brian est un ancien contributeur de Firefox, où il a ajouté la prise en charge de la molette de la souris, modifié le noyau du moteur de rendu Gecko, la gestion des mots de passe et les installateurs Linux. Pam Greene, ingénieur logiciel Pam est une contributrice de longue date de Firefox. Elle a ajouté OpenSearch au navigateur et a contribué à la recherche en texte intégral dans Places/AwesomeBar. Ian Fette, chef de produit Ian est un ancien contributeur de Firefox qui a travaillé sur l’anti-phishing, l’anti-malware, la correction orthographique et l’API Safe Browsing. Arnaud Weber, ingénieur logiciel Arnaud est un ancien directeur de la recherche et du développement chez Netscape et Borland avant de rejoindre Google pour travailler sur un « projet secret » en septembre 2006. Brett Wilson, ingénieur logiciel Brett a travaillé sur la barre d’outils Google. Il a contribué à la fonctionnalité d’historique et de signets de Firefox. Mike Belshe, ingénieur logiciel Mike a participé à l’écriture d’un module complémentaire pour Outlook appelé Chrome pour Lookout Software avant d’être racheté par Microsoft. Mike a également travaillé chez Netscape et Good Technology. Huan Ren, ingénieur logiciel Huan travaille sur le contrôle du flux du réseau, en négociant les interactions du navigateur avec les ressources du réseau. Huan a travaillé auparavant chez Microsoft. Erik Kay, ingénieur logiciel Erik a travaillé sur le navigateur AvantGo, le logiciel anti-spam Qurb pour Outlook et Outlook Express. Glen Murphy, ingénieur logiciel Glen est spécialisé dans la conception d’interfaces utilisateur. Il a précédemment travaillé sur l’interface utilisateur. Extensions Firefox. Google Browser Sync, Google Blog Search Evan Martin, ingénieur logiciel Evan écrit des outils de test automatisés pour Chrome et le Web. John Abd-El-Malek, ingénieur logiciel John fait partie de l’équipe de spécialistes Windows de Google, qui a mis en place Google Desktop, Google Talk et Breakpad sur Windows XP et Windows Vista. Amanda Walker, ingénieur logiciel Amanda est l’une des personnes responsables de la prochaine version Mac de Chrome. Mark Mentovai, ingénieur logiciel Mark a été fortement impliqué dans le passage de Firefox pour Mac à son architecture actuelle basée sur Intel. Il a travaillé sur le projet Breakpad et sur de nombreux niveaux du code de Chrome. Carlos Pizano, ingénieur logiciel Carlos a travaillé sur GreenBorder et continue de travailler sur le sandboxing de Chrome. Mark Larson, responsable de programme Mark est également un ancien de GreenBorder et de ses spécialités de sandboxing. Aaron Boodman, ingénieur logiciel, Gears Aaron améliore l’expérience utilisateur avec JavaScript. Il est surtout connu pour son travail sur Gmail, Greasemonkey et Gears.
Summary
L’activité de Google dépend de la vitesse et de la disponibilité de l’accès au Web pour la recherche, la publicité et les applications. Chrome est la deuxième tentative de Google pour mieux contrôler la porte d’entrée de son contenu avec des applications complètes optimisées pour ses lourdes applications. Google Chrome s’appuie sur le travail d’Android en ajoutant des applications individuelles à des systèmes d’exploitation déjà populaires. Google a flirté avec l’idée de son propre navigateur web pendant de nombreuses années, mais n’a que récemment publié des implémentations fonctionnelles de ses propres applications complètes de navigation.
Android, Chrome et Gears continueront à se développer à l’unisson et à étendre des pièces individuelles dans des systèmes d’exploitation établis. Google construit une nouvelle suite de couches d’extraction d’applications qui devraient avoir un fort effet de levier sur Windows, Mac et Linux pour contrôler directement le destin de l’entreprise sur ces plates-formes.
C’est une période passionnante pour les nouvelles technologies de navigateur, car Internet Explorer, Firefox et WebKit se disputent chacun les implémentations de normes et les performances. L’ajout officiel de Google Chrome à l’espace des navigateurs ne fait que renforcer la position de Google qui renforce le web futur et offre de solides expériences de navigation sur un seul site pour leurs applications web de base.