all repos — h3rald @ 75134b0d01189ee2c8097c9605c3d46b27133559

The sources of https://h3rald.com

content/articles/google-chrome.textile

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
----- 
permalink: google-chrome
title: "Chrome: Google did it again!"
tags: 
- browsers review google
type: article
filter_pre: textile
-----
!</files/google-chrome/chrome-logo.jpg!

It looks like there's a "new open source browser":http://www.google.com/chrome in town. As usual, nearly everything about it "leaked":http://blogoscoped.com/archive/2008-09-01-n47.html "before":http://www.techcrunch.com/2008/09/01/first-public-screen-captures-of-google-chrome/ its "release":http://www.google.com/chrome. Every blog that matters is talking about it, so if you didn't hear anything about it, you'd better take a look yourself. Don't be fooled by the usual "senseless ravings":http://www.techcrunch.com/2008/09/01/meet-chrome-googles-windows-killer/ of some weird, overly-hyped blogger though: a _browser_ just came out, nothing more and nothing less. It's not the end of Windows, it's not the end of the Internet, it's not the end of the world as we know it. It's just a new player in the Browser Wars.

I particularly recommend reading the official "Google Comic Book":http://books.google.com/books?id=8UsqHohwwVYC&printsec=frontcover#PPP1,M1 about Chrome, however I included some of the most interesting parts of it in this article. It's a nice 40-page comic booklet explaining how the browser works in a friendly way... I found it quite amusing and an interesting way to -leak- distribute info on a new project.

h3. Getting the damn thing

You can freely download Google Chromm from "here":http://www.google.com/chrome. You'll get a tiny 474KB setup file which installs the browser automatically. When I say automatically I mean automatically: you double click it, and it won't ask _anything_: it will just install it in Program Files by itself. Idiot proof. Clever. Some people may like it, I damn hated it.

I downloaded it and installed it fine from home, on Vista, and it was blazing fast (on _Vista_, imagine!). I tried to do the same thing from work and I couldn't. The damn installer is supposed to pick up the proxy settings from your default browser, but if the proxy uses authentication (like 99% of corporate proxies) it simply won't work. As far as I know, there's "no way around this":http://groups.google.com/group/google-chrome-help-troubleshooting/browse_thread/thread/4c07ec5124f2eebc.

This is the reason why this article won't have any chrome screenshots... to protest against Google's stupid way of doing things "too user-friendly".

*Update 1:* Actually, it is now possible to download the full Chrome setup from "here":http://cache.pack.google.com/chrome/install/149.27/chrome_installer.exe (Thanks "Crazy Australian":http://www.thecrazyaustralian.com/installing-google-chrome-behind-a-proxy/).

*Update 2:* After installing Chrome, if your company uses an automatic proxy script you won't be able to browser web sites using Chrome. If that's your case, make sure you change IE's proxy settings by specifying your proxy address and port explicitly.  


h3. How Google "re-invented" the browser

Why did Google bother? Officially because...

_"[...] we believe we can add value for users and, at the same time, help drive innovation on the web."_
(from "Google Blog":http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html)

In practice, a Google-branded browser makes sense especially because of the services offered by the search giant right now: nearly _every kind_ of web application, from mail clients to RSS readers.

The philosophy of Google Chrome is fairly simple: the Web has changed since the nineties, we now have full-fledged applications instead of crappy hypertexts with animated GIFs, therefore browsers must change, too.

Every major browser has a fairly long development history. Think of Firefox: version 3? Not really: try adding up at least 7 versions of Netscape before that. Internet Explorer *8*, Opera *9.5*, ...
Safari is probably the newest of the lot, but still not quite right. 

All major browsers _evolved_ through the years, but they never really changed: so why not to start from scratch?

Starting from scratch has a lot of advantages:

* You can learn from other people's mistakes, and try to fix them
* You can _get things right_ from the very start
* You do not have to worry about breaking compatibility with previous versions
* People won't have extremely high expectations, and they'll be prepared for a relatively unstable product

Obviously building a browser from the ground up is not a weekend project, but things changed since the nineties and starting fresh does not necessarily means re-inventing the wheel!

h3. An "old" Rendering Engine

Let's just say that the main work was already done for Google by the "WebKit":http://webkit.org guys. The rendering engine which now powers Safari, the Nokia Series 60 browser, Gnome's Epiphany, Adobe AIR has been picked by the Google guys for Chrome.

!>/files/google-chrome/chrome-javascript.gif!

This is a fairly obvious choice, if you ask me. Why?

* Presto (Opera's engine) is proprietary
* Trident (IE's engine) is proprietary, and it sucks
* Gecko (Mozilla's engine) is open source, but a bit bulky
* WebKit is open source, and arguably the fastest rendering engine to date

The rendering engine, after all, may be considered one of the most important parts of the browser: it's responsible of what users see, after all. 
Google made the right choice, in my opinion: WebKit is also the most "embeddable" and lightweight engine available, and it is also used on the Android platform for this very reason.

h3. A "new" Javascript

Mozilla has a "fast":http:http://www.mozilla.org/js/spidermonkey/Javascript engine, which will soon become "much faster":http://ejohn.org/blog/tracemonkey/. WebKit has a "blazing fast":http://webkit.org/projects/javascript/ Javascript engine too, don't forget. So why Google didn't just use that? 

...Because they wanted something _much_ faster than that, in their own way (as someone already "pointed out":http://null-logic.net/blog/2008/09/02/javascript-performance-comparison-with-chrome/). 

Meet *V8*, Chrome's very own Javascript Virtual Machine. When reading the Chrome Comic, I was particularly impressed of two improvements introduced by this new javascript VM:

!>/files/google-chrome/chrome-javascript-gc.gif!

* It actually compiles Javascript to machine code via a Just-In-Time compiler (JIT). This means that whenever you refresh a page containing Javascript the browser won't re-interpret the whole script, but it will simply run the compiled version of it which was generated the first time the page was loaded. New concept? Not really, Mozilla is going _exactly_ in the same direction with their own engine, and JIT compilation will be added as of Firefox 3.1.
* V8's incremental garbage collection looks like a much better alternative to the current conservative garbage collection methods used for Javascript. Because of V8's new concept of Hidden Class Transitions, V8 knows _exactly_ when something is no longer needed and thus it is able to garbace-collect it more effectively.

While there has been some initial "skepticism":http://nexus.zteo.com/2008/09/01/google-chrome-an-index-of-what-developers-need-to-know-good-and-bad/ on this new Javascript implementation, it looks like Google did it right. If you don't believe it you can "download":http://code.google.com/apis/v8/intro.html V8's C++ code and try it out yourself.

h3. One Process per Tab

Google Chrome is the first multi-process browser. The idea is that _each tab_ (because you can't do browsers without tabs, these days, right?) has its own phisical process and it is therefore independent from each other.

!>/files/google-chrome/chrome-processes.gif!

Hang on, isn't that what IE 5 did? A new instance of the browser for each window? No, not quite: there's a single instance of the browser and _multiple_ tab instances. Each tab is independent in the sense that it has its own address bar, but it's just a tab, at the end of the day.

This is what Internet Explorer could have done, _before_ Internet Explorer 7, as an answer to the traditional concept of tabs promoted by Mozilla and Opera. 

Actually, it turns out that "this is _exactly_ what's planned for Internet Explorer 8":http://blogs.msdn.com/ie/archive/2008/03/11/ie8-and-loosely-coupled-ie-lcie.aspx, as "someone":http://www.sriramkrishnan.com/blog/2008/09/thoughts-on-new-browser-wars.html already pointed out!

Additionally, Google thought of building in a mini task manager to let users monitor the CPU and memory usage of each tab. This is interesting, but it has a few implications discussed later on in this article.

What's truly remarkable about this is that each tab seems to have an initial overhead of 1-2KB, which of course grows according to the site it loads. You can see all this in the task manager, which also picks up similar stats for any other browser running at the same time on your machine. 
This was another clever move by Google: by looking at their own task manager, and running more than one browser together, you have everything you need to instantly compare browser performance (thus discovering that Chrome does an outstanding job, it seems).

What's also remarkable about Chrome's tabs is the way you can interact with them:

* You can move them around smoohtly, exactly like with Safari
* You can detach them by drag and drop
* You can re-attach them by drag and drop (which is truly awesome!)

h3. -AwesomeBar- _OmniBox_ and -Speed Dial- _New Tab Page_

Did you like Mozilla's AwesomeBar? Well, I personally did, others didn't so much. Meet OmniBox(TM) Google's very own, semi-sentient address bar which really understands you.

Here's what you can do with it:

* Type in URLs and view web sites (it would be damn funny if it couldn't do that)
* Get -extra Google crap- useful suggestions while typing. This includes, but it is not limited to:
** Pages you visited
** Bookmarks 
** Popular pages (guess who decides that...)
* Custom searches: search IMDB, Wikipedia, Amazon and google itself with a few clicks

!/files/google-chrome/chrome-bar.gif!

Unlike Firefox's AwesomeBar, Google's OmniBox seems more "evolved": it doesn't get too much in your way, it lets you go where you want to go, and it's smart about searching. Apparently Mozilla is already planning to remove the search bar completely and incorporate it in the AwesomeBar... but Google released it first, sorry guys.

The other handy thing they -stole- kindly borrowed from Opera is the _New Tab Page_, basically like Opera's Speed Dial, but with two interesting things:

* It displays the nine _most visited_ pages: you don't have to configure it!
* It displays search boxes for the most visited sites where you searched something on.

While I really like how this works (it requires no configuration whatsoever), I kinda miss dragging my favorite pages in the New Tab Page. If you come from Opera, you'll miss this too: the pages I have in my speed dial are NOT necessarily the pages I visited the most!

I guess I'll get used to it, though...

h3. Relax, it's Google!

Google is not Evil(TM). Google is good to everyone, from their own employees to developers and end users: and the funniest part of this whole thing is that everything they make _looks_ good for you. You have absolutely no reason to fear Google. 

They did it again: they apparently released a new browser which definitely looks inherently more secure than competitors. 
Here's why:

* It has an _Incognito_ mode, which lets you browse everything you want without logging anything anywhere.
* It confines popups to the tab they belong, minimized. You can then seletively decide to drag them out and promote them to their own window. 
* Each tab is sandboxed: i.e., it has no rights to write anything to your PC. Absolutely no chance. When plugins for Java and Flash are used, however, this doesn't apply. 
* Chrome continuously downloads lists of malicious sites, so that you're protected against phishing in real time. 

!</files/google-chrome/chrome-blame.gif!

Now, if everything goes wrong, you know it's definitely _someone else who did it_. If you read the comic book between the lines, you'll notice a not-so-subtle message to the end users:

* The browser is sandboxed, so if anything goes wrong, blame others (Adobe for Flash, Sun for Java, Microsoft for some other crap)
* You can monitor the resource consumption of each tab, _ergo_ what _each website_ uses. This means that if a site is slow is definitely the web developer's fault.

This is basically what "John Resig":http://ejohn.org/blog/google-chrome-process-manager/ immediately pointed out when the comic came out.

h3. How it feels

Google Chrome is clearly a very nice product to use. It's as intuitive as IE for the average Windows user, it has the best of Firefox and Opera features and it's even more sleek than Safari. The UI, in my opinion, is a true masterpiece and feels well though out.

Everything is aimed to be intuitive and does not get in your way: it just works. You want to download a file? You can just do it, without worrying about where to save it: it will appear in a "download bucket" at the bottom of your tabs, and you can just drag and drop what you downloaded anywhere you like, if you need to.
Why nobody thought of this before?

Even the program settings are simple to understand. The Options dialog is divided in "Basics", "Minor Tweaks" and "Under the Hood". The idea is that anyone can understand the Basics, some people may tweak a bit more, and only geeks may want to go beyond that. This is particularly evident in the Italian translation (it comes bundled with 40 localizations, by the way), where they translated "Under the Hood" with "Roba da smanettoni" which means something like "Stuff for people who fiddle with PCs". I personally found this translation a bit irritating, but anyway...

h3. Media Coverage and Target Audience

The overall impression is that Google wanted to target end users with this browser, but also appeal geeks, too. This makes sense from a marketing point of view. While 90% of geeks switched from IE to another browser, ordinary people are still stuck with IE. Why? Because alternative browsers have gained a reputation of being geek-friendly (which, by popular belief, does not mean user-friendly).

Google's marketing strategy is quite clear, and it doesn't seem to be failing on any point:

* They targeted Windows first, because that's what the bulk of IE aficionados uses.
* They did their best to make it as user-friendly as possible: the sleek GUI, the comic book, etc.
* They spread the world like crazy: every blog is talking about it, but also major news sites like BBC and CNN. When I got to work, a collegue of mine asked me if I tried the new Google browser and if I read the comic. She heard it at the radio. Here _in Italy_!
* At the same time, they made the whole thing open source, released APIs and emphasized this, so that "computer fiddlers" couldn't resist.

To me, it looks like Google Chrome stands a good chance to succeed where others have failed: drive most of the Internet population away from Internet Explorer.

h3. Open Source, testing and quality

Google is well known for its massive infrastructure. Moreover, Google is the only "entity" (let's call it that way, shall we) who _knows_ and _visited_ almost every web page on the Internet. If something is not "on Google", it may well not exist at all: this is not strictly true, but it's the user perspective and ad the end of the day that's all that matters.
Google, as a consequence, has virtually unlimited resources (compared to any other possible competitor) and virtually unlimited knowledge of the Internet, which makes automated testing no more than a joke.

From the Google Chrome Comic:

_"Within 20-30 minutres of each new browser build, we can teswt it on tens of thousands of different web pages"_

...and that's certainly not an understatemend: you can believe that.

!/files/google-chrome/chrome-tests.gif!

Google seems very concerned of building a "rock-solid" browser rather than being the coolest guy in town, and that's a good sign. Google is _smart_, remember?

As if it weren't enough, the entire thing (the rendering engine, the javascript implementation and the whole code of the broswer) is 100% open source which means, in a nutshell:

* Free testers
* Free developers
* Good publicity

!/files/google-chrome/chrome-os.gif!

If things go as planned, Chrome may become the most widely tested piece of software in the world. Let's just see how the community takes this.

h3. Why it matters

Everyone seems to have gone crazy about Chrome, even long before it was made available. Why does it matter, anyway? Isn't it just a browser, at the end of the day? Well, yes, but:

* It's 100% open source. If you like something of it, you can get it, modify it, bundle it in another project and redistribute it. Give it a few weeks and extensions which use some of Google's new API will flock to the 'fox like crazy.
* It's small, fast and very promising. Sure, it's not perfect, but YOU can help improving it. Get it?
* It's on Windows, so it will reach the majority of Internet users... in theory.

Last but not least, it comes bundled with "Gears":http://gears.google.com/, i.e. what Google would like you to use for RIAs. That's perhaps the only "subliminal" message they are trying to send to their users (for now, at least).
As a matter of fact, nothing prevents them from using Chrome as a way to promote their technology and products. But at the same time nothing prevents a random developer to just fork the project and distribute a _neutral_ and unbranded version of Chrome.

See? Google is not evil at all, it's just smarter than others.

h3. The Bottom Line

Google showed us once more that their "innovation" can be summarized with the following:

_*"Do not invent new things, just make them better"*_

They didn't invent Internet search: they just made it better and smarted. The same philosophy applies to Chrome, too. Some examples? Sure:

* They didn't create a new rendering engine, they used an existing one
* They analyzed Safari's neat GUI tricks and implemented something even better.
* They added an IE8-like domain highlight in the URL.
* They got the Firefox's AwesomeBar and improved it.
* They got Opera's Speed Dial and improved it.
* They got IE8's one-process-per-tab architecture and improved it.
* They didn't think of a Javascript JIT first, they just made it widely-available first.
* They didn't think about merging the address bar with the search bar, Mozilla announced it first, but Google released it before they did.
* Safari 4 allows users to create shortcuts for their favorite web apps, but unfortunately it's only out for developers...


Google did it, again. Exactly as planned.