woensdag 3 september 2008

g Cr


Incase you don't know what the above means, it's simple, first of all is the symbol for Googol (or was it Googolplex? I always mix them up), and the second for Chromium. Combing them together with some missspelling results in something now known as Google Chrome.


This is a new browser, by Google, that is ought to take away the "pain" in webbrowsing. While I can't say everything about it, having used it for a mere 30 minutes, I can tell you my first impressions of this "beast".

But first of all, let us explain why I am not writing this in Dutch, even tough it's my native language. 1. It's late. 2. I'm lazy. 3. Context Language "switching" is expensive for me. And I may do a Dutch translation if there is enough demand. A later post may include a Dutch translation by default.

Anyway, back to Google Chrome! Before anyone can complain, these are my, and my alone, first impressions. So don't bother complaining. You know who I'm refering to. ;-)

  1. For a supposedly new and innovative browser, it looks and feels remarkably like Opera, I haven't yet found a feature that isn't in Opera. With the possible exception of the multiple processes (see later) and the App mode. But the latter is a counterpart to Opera's Widget system. I suppos OmniWeb will feel similar as well, for Mac users (from what I've heard). Look and Feel also looks a lot like Opera.
  2. It's, for now, XP/Vista only.
  3. Installation was painless, just run the exe you download and say if you want to place a shortcut on the desktop/quicklaunch and if you want to import from IE or FireFox (strangely enough not Opera nor Safari), which you can't cancle after you accidently make a mistake (so I started with the RunMeFirst of IE as my homepage). One thing to note, it will plant itself into the the Local AppData of the running User (in Vista), no way to define something else. In XP this will be a similar place (ApplicationData for example).
  4. The only "innovative" feature I could find was the 1 process per tab idea. I currently have eight tabs open, with a total of ten chrome processes. So one master monitoring process, one for the actual browser "chrome" (to use a FireFox term, it's the GUI around the actual web content), which, if the rumors are right is also a webpage. And one for each tab. So I guess the actual browser window is a webpage. Thread-wise the master process currently uses 27 threads, maybe a bit excessive, not sure. Each browser window 5 threads and roughly half the memory, even less for workingset memory. Each tab process has 2 threads. I think one for the JavaScript, and one for the, required, Windows Message Pump (it's a Win32 API thing). Or maybe for the rendering, if that's done my the tab process itself. Memory-wise it's similar to a window process, basicly confirming (yeah, not very scientific, I know) that a window is a webpage.
  5. Scroll is too fast.
  6. The Mozilla Prism/Adobe Air/MS Silverlight/Opera Widget part consists of placing a shortcut in either QuickLaunch or the Desktop telling the Chrome application to start with an url, the exact url from where you chose to create an app out of a webpage. Apps open in a new window. But share the infrastructure of the other Chrome apps (which means it will launch the master Chrome app if it's not yet present). If you open a page/tab in the new App window it will open a new tab in the last used window, that is not an App window. It also means it will start 2 new processes under the Chrome master process, which makes sense because a window is a webpage and the actual app is also a webpage.
  7. It does not yet pass the Acid3 test (63%), even tough the nighlies of WebKit (which is the render engine used in Safari and most of the webbrowser-like applications found on the Mac, and on other platforms) already do for some time, and I believe the latest beta of Safari does this as well. Acid2 test also isn't yet pixel perfect (like it is on Opera ^_^), just like Safari. So I think they are currently using the WebKit (or a near) version to the one used in the latest stable Safari release.

That's it for now!
I'll might do a more indepth (and comparison with other browsers) article in the future.

--Maarten

PS.

Written from within g Cr!

PPS.

Next morning now, and I think I forgot to mention something last night. I put quotes around the word "innovative" in point 4, why did I imply sarcasm there? Well, a little language has been known to casually support tens of thousands of processes at the same time. What is the difference? Well, those processes are lightweight and use the shared nothing approach to concurrency. In fact, most processes/threads in Erlang are so called "green threads" or "fibers". In Chrome, they are spinning up real, heavy, processes. One for each tab.

But I have to admit, it is very Google in mentality (the spinning up of processes), Google's famous "MapReduce" is infact implemented to spinning up processes that do part of the job, actually they spin up entire machines for this!