Sunday, April 11, 2010

Rich Internet Application

The current vogue is developing Rich Internet Applications to bring an enhanced web experience, that is, web applications comparable to desktop applications. These Rich Internet Applications can be ran in-browser or as a standalone application. It's an entire new generation of interactive applications focusing on an enriched user experience.

The increasing demand for such applications brought me to work with this compelling technology and its frameworks. I have used AJAX for years but it does not have the same abilities than the newest frameworks. Adobe Flex/AIR is absolutely amazing and the user experience can be spectacular at times. For now, however, JavaFX has caught my interest...

Sun Microsystems has decided to enter the competition against other big players, such as Microsoft and Adobe, in the Rich Internet Application market. It offers its own software platform to create Rich Internet Applications and build on top of its existing Java technology. JavaFX is a declarative language supporting object-oriented programming that is later compiled into Java bytecodes and runs on top of your favourite Java Virtual Machine.
DETECTING DECEPTION Java was created in mid-90s and the latest version currently available is Java 6. Java command line will however return a version number such as 1.6.0_18. Advertising the technology as Java 6 is certainly a creative marketing approach but marketing practices in technologies are overly deceptive. Deceptive version numbers are most frequently seen from small and medium businesses; an obvious attempt to convince customers that their software has reached a certain maturity before its time.
Developing applications is costly and can be challenging at times. Software development tools have greatly evolved but the programming languages haven't that much. Most softwares nowadays are developed with technologies created 15+ years ago. This is as hostile as it gets.

Rapid prototyping is extremely difficult with those programming languages in spite of every effort made to improve development tools and Integrated Development Environment (IDE).

JavaFX becomes interesting to me because it allows to create interactive user interfaces using a declarative and forgiving language, ideal for proof-of-concepts and prototypes. The business logic can still be implemented using Java and both languages benefits from Write Once, Run Anywhere. The user interfaces can be later rewritten in Java after a prototype is approved for a full scale development.
DETECTING DECEPTION Write Once, Run Anywhere is an engaging slogan created by Sun Microsystems. Java is a cross-platform programming language and can run on a plethora of devices, from mobile phones to high-end servers. Unfortunately, this slogan is also deceptive because there are many factors to take into account while developing on each platform; and, yes, it may very well involve rewriting code.
On one hand, JavaFX is not without its shortcomings. It's great for rapid prototyping but it comes with sluggish performances. It may also be a short lived technology and there are only few books available on it at the moment. Don't get me started with another framework, Java Media Framework, where I once developed a voice conferencing prototype and used this technology to fill in; JMF has not been updated in 7 years.

On the other hand, JavaFX is fully reflective and interpolable with Java. Provided JavaFX would die in a ditch some day, it's still possible to rewrite the portion of the code in Java and merge it with the business logic. Higher potential for reusability and cross-platform are another reason to use JavaFX over Adobe Flash, Flex and AIR.

I am currently working on a prototype that uses JavaFX. I am extremely limited in what I can present on this blog and it is always important to respect legal engagements. Confidentiality, licenses, etc. You get the picture. There may be some possibility for this one but it may take some time. Check frequently.

No comments:

Post a Comment