- Getting the damn thing
- How Google “re-invented” the browser
- An “old” Rendering Engine
- A “new” Javascript
- One Process per Tab
- Relax, it's Google!
- How it feels
- Media Coverage and Target Audience
- Open Source, testing and quality
- Why it matters
- The Bottom Line
It looks like there's a new open source browser in town. As usual, nearly everything about it leaked before its release. 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 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 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.
Getting the damn thing ⇈
You can freely download Google Chromm from here. 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 thisthread/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 (Thanks Crazy Australian).
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.
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)
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!
An “old” Rendering Engine ⇈
Let's just say that the main work was already done for Google by the WebKit 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.
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.
A “new” Javascript ⇈
Mozilla has a fast engine, which will soon become much faster. WebKit has a blazing fast 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).
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:
- 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 on this new Javascript implementation, it looks like Google did it right. If you don't believe it you can download V8's C++ code and try it out yourself.
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.
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, as someone 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!)
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™ 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 crapuseful 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
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…
Relax, it's Google! ⇈
Google is not Evil™. 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.
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 immediately pointed out when the comic came out.
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…
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.
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.
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
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.
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, 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.
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.