Monday, March 3, 2008

Adobe Air Versus Java Write Once Run Anywhere

Java's original intent was to allow developers to write programs and it is supposed to run in any OS without the need to change your code. Hence, it's slogan "Write Once Run Anywhere".

Unfortunately, Java was not really able to fulfill this promise. It is widely known that the different JVMs (Java Virtual Machines) are incompatible with each other.

This is what Adobe AIR promises to solve. And so far if you run Adobe AIR applications like Klok, you will find that it will run exactly the same whether you are using Windows or Linux.

I cannot however answer with regards to Mac. Because right now it appears that Apple, Inc. is not very fond of Adobe, Inc.


Terry said...

Sorry to post so late, but I had to comment. Java executables most certainly DO run everywhere there is is compliant JVM, which is pretty-much EVERYWHERE worth caring about - Windows, Linux, OSX, plus a number of other platforms too. There are few to no incompatibilities for typical, routine apps. It's been a resounding success from that perspective. Where it has failed is on the desktop. The reason for this is probably mostly due to how wretchedly slow the UI toolkits, AWT & Swing were, for so long. They've finally become quite respectable and usable within the last few years, but they garnered such a horrible reputation previously, that few developers have been willing to bother with them at this point - not to mention perhaps the only 'maybe' decent IDE for graphically creating Swing apps is Netbeans, which has been plagued with issues of sluggishness too.

Adobe Air has a chance to succeed where Java on the desktop failed so miserably, in large part, because it doesn't have the horrible history parts of Java do. Perception means a lot! The perception is that java desktop is still slow - that's not particularly true anymore, but that's still the perception is there's probably not a whole lot that'll change that now. Additionally, Adobe have GREAT tools for developing for their technologies - Sun has failed miserably in that department time & time again. Also, particularly with the advent of Flex, I personally believe they've hit upon and excellent programming model which leverages technology that thousands of web developers are familiar with. Anyway, I'm tired of typing now... you probably get my point... I like what Adobe's doing a lot but I wanted to be fair to Java too.

Temujin said...

Thanks of your comment Terry. Wow that was even longer than my post.

Anyway, another aspect where AIR trumps Java is simplicity and ease of programming.

Java's philosophy has always been to give developer's "Breadth of Choice". That is why Java programs tend to get complicated with all the different technologies you have to use.

Adobe AIR on the other hand seem to adhere to simplicity and openness. I mean, you don't even have to learn Flex. If you already know HTML and Javascript you will be good to go.