Tuesday, September 02, 2008

Google Chrome - Vilan or the next logical step?

Its a strange feeling when an idea you think is gaining momentum suddenly becomes concrete before your very eyes, confirming that you were spot on.

It is not news that Google is a clear advocate of software-as-a-service, but I'm not sure that most pundits thought that Google would be making the bold step of creating their own client platform just yet.

Well Google Chrome is out and I'm sure that there is going to be plenty said about it. Is this the browser wars all over again? Well when I first read the news (on the BBC news website), I thought so, but when I took a closer look at the details released by Google I changed my mind.

As my last post on Flex makes clear, the current browsers as a client platform just aren't up to the job. The JavaScript interpreters are slow and the whole thing is single threaded, so poorly written JavaScript can lock up your whole browser. Flex has addressed some of these problems, but anyone who remembers Windows 3.1, would agree that Flex will never be able to avoid the browser equivalent of a Windows 3.1 blue screen :)

In the noise I'm sure that Googles words are likely to get lost so here is a link where you can read why Google chose to create Chrome and you can decide for yourself whether they are satisfying a real need.

Should we fear Google in the same way we use to fear Microsoft? I don't think so. This snippet from the Google cartoon on Chrome sums up their position for me (click on the image to make it full screen):

So they want to create something better, and we shouldn't be worried about vendor lock-in because "this better thing" will be open sourced. Over the years I have come to the firm opinion that innovation should never be held back by premature standards. Our current crop of browsers where originally designed to solve a different problem, and whilst they are familiar and use a standard metaphor, they cannot be said to address the needs of software as a service.

There is no reason why Googles new platform should not be open, supporting ActionScript and Flex along with ECMAScript (JavaScript). In fact given that Chrome will be open sourced, there is no reason why people can't write a Ruby or Python or even Smalltalk plug-in for Chrome themselves. This is all consistent with the RESTful idea of code-on-demand, which doesn't dictate what is meant by "code". It will be interesting to see just how open Google are with their new platform, and whether they provide extension points so that others can extend the platform to meet their own specific needs.

Infact if Chrome gains momentum, then other browsers like FireFox or Safari could choose to integrate Chrome, or even borrow ideas. We need to see what type of license Google chooses to use, but a BSD style license would allow both open sourced and closed sourced projects to embed Chrome code. Even if the code isn't directly re-used by other browsers then I'm sure the idea of a multi-thread/process, high performance, networked, client software platform will be.

Chrome seems like the next logic step to me, and the fact that it is coming from Google and is open sourced, compared to a closed proprietary solution like Apples Dashboard Widgets, is a positive step forward. We need to be vigilant and hold Google to account, but I think that Chrome should be cautiously welcomed.

Last point, in executing our responsibility to ensure that Google adheres to ethical competitive practices, why not clean up and clarify our language? I am not sure that the vague term "Cloud Computing" is helping, why not use the term "software-as-a-service" (as Google has chosen to do)? Or better still why not stick with the term "code-on-demand" as coined in Roy Fieldings REST dissertation? I believe language is important and labeling these new client platforms in a precise way will provide less wiggle room for marketers looking to exploit vague terms like "cloud computing" to their own ends. Code on demand makes the purpose clear and by using RESTful language, I think it will help to tie these new platforms into open standards like HTTP, ECMAScript and APP (Atom Publishing Protocol). Just a thought :)


Yardena said...

Just came across this, might be of interest to you... unless of course you already knew. Looks like almost every software innovation today can be traced down to Smalltalk, ha? :-)

Paul said...

Hi Yardena,

Wow. Dave Griswold said that he was working on something big, but I didn't know it was this :)

This is really good news. I'm kinda old fashioned when it comes to fairness and giving recognition where its due.

C and Windows 3.1 was always a cheap imitation, based on Bill Gates sneak preview of Smalltalk at Xerox Parc.

Gilad should be happy :) He has been looking to port Newspeak to the Strongtalk VM, and with Googles backing it looks like he is going to get his way.

The thing with dynamic languages is that they are conceptually pure, and even if you want a static type system you can still layer it cleanly on top of the language, just as it should be.

This purity will mean that it will be relatively easy to port other dynamic languages to Chrome/V8. I think this is good news for all dynamic language lovers.

I wonder how long it will take to see software-as-a-service applications written in Newspeak and running on Chrome?

Or how about Open Croquet (either in Smalltalk or Newspeak) on Chrome?

They say dreams do come true. I'll keep dreaming just in case they're right :)

Thanks for the pointer. (PS. I'm missing your blog posts, but I guess you're busy right?)


Yardena said...

Hi Paul,

Yes, it's all very positive development and it's amazing how Gilad saw it coming long time ago!

I am also very optimistic about Newspeak future. It's already making a huge impact on people's minds. So maybe you're a dreamer, but are not the only one :-)

Dynamically typed platforms and optional types in languages that run on them is another one of those things that Smalltalkers knew long ago, but I think is now becoming closer to consensus and to the "wide market".

I'm glad you like my blog, thank you :-) I enjoy reading your blog very much too. And yes, there are many things I meant to blog about for some time now, but I'm just too busy recently.