Tuesday, April 1, 2008

Rich Web Internet Applications

The term RIA landed in the office recently with a boom, creating quite a stir. Some of the sonic vibrations produced by the initial landing had somehow transformed into words that sounded like Ajax, Silverlight, and Flex by the time they reached my ears.

However, Flex seems to be the clearest-sounding. So, I did some reading on it. Glad I did, too, because I got a chance to sit in a technology demo of Flex today.

In the demo, we were shown how someone took an existing Java-powered web application (J2EE in the back end and JSP out front), and added a slick Flex presentation layer to it.

The demo reminded me of a conversation with a co-worker about a year ago. Back then, we were just beginning to play around with Ajax, Prototype, jQuery, and JSON for our projects. I predicted that these Web 2.0 technologies are not going to stick around very long. Rather, even richer technologies will quickly come along to succeed them (Web 2.5/3.0?). Why? Well, because while these technologies have accomplished a lot of things, they feel raw and unplished to me. My co-worker didn't believe me then, and I myself promptly forgot about it, until today. I didn't even know about Flex and Silverlight then. But, I think I am right.

Rich web internet applications without having to abide by the limitations of HTML and then trying to overcome them with JavaScript? Interesting. Forget the statelessness of your old-school web applications. Say hello to statefulness like you were used to when you wrote desktop applications. Or, maybe it is time to get re-acquainted with client/server applications. Good-bye thin client, hello thick.

So what does this mean? Well, whereas server-side technologies such as JSP, PHP, ASP.NET, and Ruby on Rails traditionally rendered their output as X/HTML + JavaScript, they now have the option to render their output as, say, Flex binaries.

This brought to my mind the whole thing about REST and its implementation within Rails 2. I mean, Rails can theoretically output to SWF, or at least publish data in a format consumable by Flex binaries, no? Maybe this book will provide me with some insight and answers.

I also see Flex and Silverlight putting a 21st century shine on a 20th century promise Java made, except Java's "write once, run everywhere" turned into "write once, debug everywhere". Come to think of it, coding a lot of JavaScript is kind of like that when you are trying to make a fancy widget behave the same across IE 6/7/8, Firefox, Safari, etc.

The Flash player, on the other hand, has been deployed quite ubiquitously across the internet for online ads in the past few years. Perhaps this gave Adobe an opportunity to have worked out the cross-platform/cross-browser kinks. If Java's promise is delivered by Flex/Flash, that is saying something. Of course, targeting mobile devices powered only by Flash Player Lite might prove challenging.

Anyhow, after I have gone through the aforementioned book, perhaps I will have a better idea.

No comments: