October 27, 2008

Write once, REALLY run everywhere

Remember Sun's slogan for Java: write once, run everywhere? Because of the platform independency of Java, a Java application will indeed run on many platforms without any rewrite or recompile. Java is mostly used on the server side of things but it is hardly used on the desktop. I doubt that JavaFX will change that. On the other hand, Java is huge on mobile devices (Symbian). All in all, Sun has done an impressive job at keeping their promise.

Interestingly however, Java is quickly loosing field in this respect from a surprising enemy: Javascript. An open source HTML rendering kit that has become hugely popular in a small period of time deserves the credit for this: Webkit.

Webkit might well be the most installed piece of open source software today. Here are some instances I know from the top of my head: Apple Safari, Apple's iPhone (and the iPod Touch), Adobe AIR, Google's Android, Google's Chrome, Nokia's S60 phones (read section 2.1 of this pdf), Nokia's N810 (web tablet) and KDE. Webkit definitely has good specs: it is small, it is fast and it has a very good and simple API. That last one makes it a very popular choice for developers, resulting in a large and active online community.

As of version 4, KDE has been outfitted with a brand new desktop shell named Plasma. Plasma deploys Webkit (which originally started as KHMTL as part of the Konqueror webbrowser) for allowing web applications (javascript) to run natively on the desktop.

By the way, KDE nowadays runs on just about any major operating system (I heard this on the FLOSS Weekly podcast while I was commuting). Yes, that includes Windows and MacOS. Being the geek that I am, I installed KDE on my Vista Laptop (no sweat at all), and there you go, Konqueror (among other K-stuff) is now on my desktop. I am free!

konquer4windows.jpg

KDE also uses Trolltech's QT, a multi-platform C++ GUI toolkit. Trolltech has been bought by Nokia in the beginning of this year. Below is a citation from the official press release:

The acquisition of Trolltech will enable Nokia to accelerate its cross-platform software strategy for mobile devices and desktop applications, and develop its Internet services business. With Trolltech, Nokia and third party developers will be able to develop applications that work in the Internet, across Nokia's device portfolio and on PCs. Nokia's software strategy for devices is based on cross-platform development environments, layers of software that run across operating systems, enabling the development of applications across the Nokia device range.


As of version 4.4, the WebKit API has also been included in QT. That is how WebKit must have ended up in so many Nokia devices. Very interesting. Webkit is becoming ever more ubiquitous. Applications that are developed against this platform will quite probably run without problem on any of the Webkit instances listed above. It means that you can now truly write your application once and run it on almost any desktop and a large number of mobile devices too.

Isn't it interesting how an open source product such as WebKit has sneakily made its way to so many platforms and as such created a very ubiquitous platform for web application development? This ubiquity is especially significant in the light of SaaS but that is something to explore in another post.

To me this all proves that Open is the way to go.

No comments: