Historia stojąca za Google Chrome
Google wydało swoją drugą przeglądarkę internetową wczoraj po południu, dodając dodatkową przestrzeń dla aplikacji internetowych rozciągających granice tego, co jest możliwe do osiągnięcia w przeglądarce internetowej. Zespół Google Chrome zebrał ekspertów z różnych dziedzin w ciągu ostatnich sześciu lat, zarówno poprzez bezpośrednie zatrudnienie, jak i przejęcia, aby stworzyć nową przeglądarkę i jej kluczowe komponenty od podstaw. GMail i Mapy Google popchnęły Sieć do granic możliwości, wykorzystując technologie przeglądarek wynalezione w Redmond, ale zbyt długo pozostawione w uśpieniu. Wkład w rdzeń Firefoksa, pisanie rozszerzeń do przeglądarki i promowanie HTML-a może zaprowadzić firmę wartą 150 miliardów dolarów tylko tak daleko, że musi ona posiadać całą przeglądarkę, aby móc pchać swoje wysiłki w sieci do przodu z pełną prędkością.
- Rosnące frustracje
- Podwyżka po przejęciu
- Nowa przeglądarka od zera
- Rewaluuj silniki JavaScript
- Poznaj zespół
- Podsumowanie
Rosnące frustracje
Brian Rakowski dołączył do Google w lipcu 2002 roku jako pierwszy menedżer produktu w firmie. Jego pierwsze zadanie? Uruchomienie GMaila z funkcjami i szybkością reakcji, które mogłyby konkurować z klientami poczty biurkowej. Gmail wykorzystał stosunkowo uśpione funkcje przeglądarek, takie jak XMLHttpRequest, gniazda, prefetch i wiele innych, aby stworzyć aplikację internetową przekraczającą granice tego, co było możliwe w przeglądarkach internetowych z 2004 roku. Dzisiejszy Gmail nadal napotyka na ograniczenia przeglądarki, stawiając minimalne wymagania Internet Explorer 7+ i Firefox 2+. Zespoły Google zajmujące się aplikacjami internetowymi, takimi jak Maps i Mail, nieustannie zderzają się z najnowszymi możliwościami przeglądarek internetowych, a w niektórych przypadkach wymyślają własne systemy operacyjne.
Ian Hickson po raz pierwszy poznał działanie przeglądarek internetowych podczas stażu w firmie Netscape. Po kilku latach pracy nad Operą i tworzeniu testów dla Firefoksa Ian dołączył do Google, aby kontynuować pracę nad nowymi funkcjami przeglądarek. HTML5 i „kwaśne” testy zgodności przeglądarki są znaczącymi próbami Iana i innych, aby na nowo zdefiniować przeglądarki internetowe poprzez specyfikacje, testy i implementacje, ale do tej pory Google mogło jedynie oferować pomoc w rozwoju i rozszerzenia przeglądarki, takie jak Gears, aby przyspieszyć możliwości przeglądarki.
Google rozszerzyło to, czego nie mogło natychmiast dodać do rdzenia przeglądarki. Gears dla nowych funkcji aplikacji na wielu przeglądarkach. Funkcja Browser Sync do synchronizowania ustawień i danych przeglądarki na wielu komputerach. Safe Browsing do tworzenia większego zaufania w sieci. Zespoły od każdego z tych rozszerzeń pracują teraz nad Google Chrome.
Acquisition Boost
Google wydało swoją pierwszą oficjalną przeglądarkę internetową 18 sierpnia 2008 roku wraz z wersją beta mobilnego systemu operacyjnego Android. Google nabył Androida w sierpniu 2005 r., aby znaleźć się na najszybciej rozwijającym się rynku komputerowym (i internetowym): telefony komórkowe. Android podkreśla właściwości internetowe Google poprzez przeglądarkę opartą na WebKit i aplikacje zależne. Google nabył Ottawa-based Reqwireless i jego mobilną przeglądarkę internetową w lecie 2005 roku, aby współpracować z zespołem Androida na jego interfejsie internetowym. Widoki internetowe są integralną częścią Androida, a Google Chrome współdzieli wiele kodu Androida, w tym jego silnik graficzny.
Google Chrome i Android korzystają z biblioteki grafiki wektorowej Skia opracowanej przez małą firmę z Karoliny Północnej, którą Google nabyło w 2005 roku. Zespół Skia pracował wcześniej nad silnikiem graficznym popularnej przeglądarki mobilnej Openwave. Przeglądarka Google Chrome zawiera porty silnika graficznego Skia dla systemów Windows, Mac i Linux.
Google nabyło firmę GreenBorder zajmującą się bezpieczeństwem aplikacji w maju 2007 roku. Technologia GreenBorder automatycznie piaskuje kod WWW i ruch sieciowy, tworząc pomost między aplikacjami. Technologia GreenBorder izoluje instancje Internet Explorer lub Firefox do „piaskownicy” wewnątrz instancji maszyn wirtualnych. Te piaskownice tworzą warstwy izolacji kodu w Google Chrome, chroniąc inne karty i macierzysty system operacyjny przed kodem wykonywanym na każdej stronie internetowej.
Nowa przeglądarka od podstaw
Ben Goodger, szef techniczny Google Chrome, jest najlepiej znany ze złożenia przeglądarki Firefox z pakietu aplikacji SeaMonkey Mozilli. Manticore, Camino, a później Firefox były w 2001 roku próbami przemyślenia na nowo przeglądarki internetowej dla nowoczesnej ery. Przeglądanie zajęło centralne miejsce z dala od pakietu komunikacyjnego, interfejsy użytkownika zostały przeprojektowane pod kątem wydajności w sieci, a (niektóre) starsze elementy zostały odsunięte na bok. Google zatrudniło Bena w 2005 roku, aby wzmocnić swój wkład w przeglądarkę i ostatecznie w pełni zrearchitektować przeglądarkę dla nowoczesnej sieci.
Google zatrudniło najlepszych programistów Firefoksa w 2005 i 2006 roku, takich jak Darin Fisher, Pam Greene i Brian Ryner. Wiosną 2006 r. zespół rozpoczął prace nad prototypem nowej przeglądarki, zbudowanej na bazie WebKit, przeznaczonej dla połączonych szerokopasmowo, zawsze włączonych aplikacji internetowych, takich jak Gmail czy Google Maps. Czy eksperci od przeglądarek mogliby dać aplikacjom internetowym trochę przestrzeni do oddychania?
Nowoczesne komputery wyposażone są w wielordzeniowe, wielogigahercowe procesory, gigabajty pamięci, megabity przepustowości i nieporęczne dyski twarde. Nasze przeglądarki internetowe powinny rozdzielać zakładki przeglądarki na własne procesy, wielowątkowo komunikować się z systemem operacyjnym, zwiększać rozmiary pamięci podręcznej i nie bać się zarządzać większą przepustowością, gdy jest ona dostępna. Internet Explorer 8, Firefox 3.1 i Apple Safari przyjmują nowe podejście do przeglądarek internetowych dla nowoczesnych maszyn, ale Google Chrome ma przewagę świeżego startu, aby osiągnąć pewne cechy, które nie są obecnie możliwe w innych architekturach przeglądarek.
Funkcje takie jak izolacja zakładek i monitorowanie zadań są trudnymi zadaniami do dodania wewnątrz istniejącej architektury przeglądarek ze współdzielonymi czasami działania i modelami okien (jak wspomniał John Resig). Internet Explorer 8’s Loosely Coupled IE częściowo abstrahuje instancje kart przeglądarki i przemysł ogólnie zmierza w tym kierunku.
Monitorowanie zasobów specyficznych dla aplikacji internetowych powinno zmotywować więcej stron internetowych do zmniejszenia ich rozdęcia przeglądarki teraz, gdy zostały one zidentyfikowane. Indywidualni użytkownicy mogą również porównywać wykorzystanie zasobów aplikacji internetowych bezpośrednio z ich desktopowymi odpowiednikami.
Rev your JavaScript Engines
Lars Bak i jego zespół w Århus, Dania spędzili wiele lat na pisaniu maszyn wirtualnych: czasów operacyjnych, które tłumaczą kod programistyczny na kod maszynowy. Lars napisał maszynę wirtualną Java firmy Sun, HotSpot, a później odchudził maszynę wirtualną dla J2ME (projekt Monty w CLDC HI). Kilka lat temu Lars i jego zespół w Danii rozpoczął pracę nad nowym interpretowanym silnikiem JavaScript zoptymalizowanym dla architektur x86 i ARM.
Silnik V8 jest specjalnie dostrojony do rekurencyjnych zadań JavaScript, optymalizując często używane komponenty aplikacji. V8 jest wielowątkowy, otwierając nowe możliwości przetwarzania równoległego na wielu rdzeniach obliczeniowych. V8 zgaduje, jak możesz używać swojego kodu JavaScript i wycofuje się po błędnych założeniach. To tylko jeden z nowych silników, które zobaczymy w naszych przeglądarkach do końca 2008 roku.
Google Chrome mógł użyć tego samego interpretera JavaScript, co jego silnik renderujący WebKit (JavaScriptCore, SquirrelFish), ale zespół miał możliwość, i fundusze, przepisania interpretera od zera dla desktopowych i mobilnych runtimes.
Silnik V8 umożliwia nowe zestawy funkcji dla aplikacji internetowych Google, takich jak Gmail i Google Maps. Twórcy aplikacji internetowych unikają dodawania funkcji, które widocznie spowalniają działanie przeglądarek lub powodują przerwy w przetwarzaniu danych w aplikacji. Nowa szybkość w nowych obszarach dodaje funkcjonalność do istniejących aplikacji. Programiści Google powinni tworzyć bardziej wydajny kod, testowany na wielu interpreterach i zoptymalizowany pod kątem nowoczesnych komputerów w wyniku działania V8. Nawet jeśli Google Chrome nie zdobędzie znaczącego udziału w rynku przeglądarek, nadal oczekuję, że będzie to najlepsza przeglądarka dla aplikacji internetowych Google.
Google Chrome dodaje dodatkową funkcjonalność JavaScript poprzez Gears. Gears jest dołączany do każdej instalacji Chrome, dodając nowe funkcje do przeglądarki szybciej niż poprzednie wtyczki. Biblioteki Gears zawierają obsługę nowych lokalnych struktur pamięci podręcznej, lokalnych baz danych, danych o lokalizacji, zadań w tle i obsługi plików. Chrome zwiększa dostępny ślad Gears dla twórców stron internetowych, w tym własnych aplikacji Google, takich jak Google Reader i Google Docs (i mój blog). Obecny kod Gears zawarty w Chrome replikuje kod V8 i sqlite już obecny w przeglądarce, bolt-on, który, miejmy nadzieję, zostanie zintegrowany w najbliższej przyszłości.
Chrom, V8, i Gears będą nowym poligonem doświadczalnym dla wysiłków Google w zakresie HTML5, zdobywając nowe miejsce przy stole jako implementator z grupami standardów upstream, takimi jak W3C.
Poznaj zespół
Śledzę co najmniej 20 osób zaangażowanych w projekt Google Chrome w całej firmie Google. Jestem pewien, że dzienniki commitów Chromium ujawnią jeszcze więcej (aktualizacja: bardziej kompletna lista tutaj), ale poniżej znajduje się szybkie podsumowanie personelu Chrome.
Brian Rakowski, Lead Product Manager Brian był pierwszym zastępcą kierownika produktu Google w 2002 roku, przydzielonym do Gmaila. Później pracował nad wtyczką Google Browser Sync do Firefoksa. Ben Goodger, Software Engineer Ben jest byłym kierownikiem projektu Firefox 1.0. Jest także autorem systemu rozszerzeń Firefoksa. Do Google dołączył w 2005 roku. Mike Pinkerton, Technical Lead Mike jest jednym z członków zespołu Google odpowiedzialnego za wprowadzenie Chrome na komputery Mac. Mike pracował w firmie Netscape, a później nad klientem AOL napędzanym przez Gecko, zanim został współzałożycielem projektu Camino. Mike dołączył do Google we wrześniu 2005 roku i nadal kieruje rozwojem Camino. Darin Fisher, inżynier oprogramowania Darin był częstym współautorem bazy kodowej Firefoksa. Specjalizował się w bibliotekach sieciowych, ciasteczkach i uprawnieniach, a także w Netscape Portable Runtime. Darin dołączył do Google’a w 2005 roku. Lars Bak, inżynier oprogramowania, V8 Lars był głównym twórcą Java HotSpot VM i Monty VM w J2ME dla firmy Sun. Zanim dołączył do Google, był współzałożycielem firmy zajmującej się obiektowymi maszynami wirtualnymi dla urządzeń wbudowanych. Lars pracował nad V8 z farmy w Århus w Danii, zanim przeniósł zespół do biur uniwersyteckich. Kasper Lund, inżynier oprogramowania, V8 Kasper dzieli z Larsem Bak długą historię pracy nad maszynami wirtualnymi. Brian Ryner, inżynier oprogramowania Brian jest byłym współtwórcą Firefoksa, gdzie dodał obsługę kółek myszy, udoskonalił rdzeń silnika renderującego Gecko, zarządzanie hasłami i instalatory Linuksa. Pam Greene, inżynier oprogramowania Pam jest wieloletnią współpracowniczką Firefoksa. Dodała OpenSearch do przeglądarki i przyczyniła się do rozwoju wyszukiwania pełnotekstowego w Miejscach/AwesomeBar. Ian Fette, menedżer produktu Ian jest byłym współpracownikiem Firefoksa, który pracował nad programami antyphishingowymi, anty-malware, korektą pisowni i API bezpiecznego przeglądania. Arnaud Weber, inżynier oprogramowania Arnaud jest byłym dyrektorem ds. badań i rozwoju w firmach Netscape i Borland, zanim dołączył do Google, by pracować nad „tajnym projektem” we wrześniu 2006 roku. Brett Wilson, inżynier oprogramowania Brett pracował wcześniej nad paskiem narzędzi Google Toolbar. Przyczynił się do rozwoju funkcji historii i zakładek w Firefoksie. Mike Belshe, inżynier oprogramowania Mike pomagał w pisaniu dodatku do Outlooka o nazwie Chrome dla firmy Lookout Software, zanim została ona przejęta przez Microsoft. Mike pracował także wcześniej w firmach Netscape i Good Technology. Huan Ren, inżynier oprogramowania Huan pracuje nad kontrolą przepływu sieciowego, negocjując interakcje przeglądarki z zasobami sieciowymi. Huan pracował wcześniej w firmie Microsoft. Erik Kay, inżynier oprogramowania Erik pracował wcześniej nad przeglądarką AvantGo, oprogramowaniem antyspamowym Qurb dla Outlooka i Outlook Express. Glen Murphy, inżynier oprogramowania Glen specjalizuje się w projektowaniu interfejsów użytkownika. Wcześniej pracował nad interfejsem użytkownika. Rozszerzenia dla Firefoksa. Google Browser Sync, Google Blog Search Evan Martin, inżynier oprogramowania Evan pisze narzędzia do automatycznego testowania dla Chrome i sieci Web. John Abd-El-Malek, inżynier oprogramowania John jest członkiem zespołu specjalistów ds. systemu Windows w firmie Google, którzy wprowadzają aplikacje Google Desktop, Google Talk i Breakpad do systemów Windows XP i Windows Vista. Amanda Walker, inżynier oprogramowania Amanda jest jedną z osób odpowiedzialnych za nadchodzącą wersję Chrome dla komputerów Mac. Mark Mentovai, inżynier oprogramowania Mark był mocno zaangażowany w przeniesienie Firefoksa dla komputerów Mac na obecną architekturę opartą na procesorach Intela. Pracował nad projektem Breakpad i wieloma poziomami kodu Chrome. Carlos Pizano, inżynier oprogramowania Carlos pracował wcześniej nad GreenBorder i nadal pracuje nad sandboxingiem Chrome. Mark Larson, Program Manager Mark jest również wcześniej związany z GreenBorder i jego specjalnością sandboxingową. Aaron Boodman, inżynier oprogramowania, Gears Aaron poprawia doświadczenia użytkowników za pomocą JavaScript. Jest najbardziej znany z pracy nad Gmailem, Greasemonkey i Gears.
Podsumowanie
Biznes Google zależy od szybkości i dostępności dostępu do sieci w zakresie wyszukiwania, reklam i aplikacji. Chrome to druga próba Google’a, by lepiej kontrolować dostęp do swoich treści za pomocą pełnych aplikacji zoptymalizowanych pod kątem ciężkich aplikacji. Google Chrome opiera się na pracy Androida, dodając indywidualne aplikacje do już popularnych systemów operacyjnych. Google flirtował z pomysłem własnej przeglądarki internetowej przez wiele lat, ale dopiero niedawno wydała robocze implementacje własnych pełnych aplikacji przeglądarki.
Android, Chrome, i Gears będzie nadal rosnąć w unison i rozszerzyć poszczególne kawałki do ustalonych systemów operacyjnych. Google buduje nowy zestaw warstw ekstrakcji aplikacji, które powinny mieć silny wpływ na Windows, Mac i Linux, aby bezpośrednio kontrolować przeznaczenie firmy na tych platformach.
Jest to ekscytujący czas dla nowych technologii przeglądarek, jak Internet Explorer, Firefox i WebKit każdy konkurować na wdrożenia standardów i wydajność. Oficjalne dodanie Google Chrome do przestrzeni przeglądarek tylko wzmacnia pozycję Google, wzmacniając przyszłość sieci i dostarczając silnych doświadczeń przeglądania pojedynczych stron dla ich podstawowych aplikacji internetowych.