December 18, 2006
Ajax and Convergence
Is there a fine line between a good Ajax application and one that demands too rich an interface for scripting?
I've been tracking the Ajax phenomenon, and I’ve been wondering, just what are the practical limits of it? For instance, although you can build clever, dynamic, and useful, web applications with Ajax technologies, can you reach a point where it just gets in the way? If you try to add too many bells and whistles to your browser-based application, will it eventually fail from over-complicated code; browser/OS incompatibility; performance/stability issues; and so on?
I don't have the answer to this question because I haven't developed any really large Ajax applications. I've built many relatively small ones, for which it was a perfect fit. But the one thing that keeps getting in the way is that it gets complicated very quickly. JavaScript is tricky to debug, even with the plethora of tools that are currently available.
After reading a blog on the subject at java.net, I see that others feel the same way. It's easy, practical, and correct, to build a relatively small web application with Ajax. However, as the application grows and gets richer (a common problem for successful software), at what point do you wish you could switch to something that's more suited to the task, such as AWT/Swing, or the SWT from Eclipse?
All too often, the point at which it becomes obvious that you need to make that switch, you're already past the point where it's practical to abandon all of your Ajax code. The answer may be convergence: such as Ajax and Swing combined. This is a similar idea as seen with Java SE 6, where Java can be combined with script-based and dynamic languages such as JavaScript, PHP, Perl, and Ruby. No need to make a choice, or go in one direction instead of another, simply use the tools at the time that you feel make sense. As your requirements change over time, augment those tools with others more suitable without wasting your previous effort.
This theory, by the way, applies to more than the just the Ajax vs. thick client issue; it can be applied to other programming decisions we're forced to make. For example, wouldn't it be nice to avoid the whole NetBeans vs. Eclipse decision? But I digress.
I hope we'll see more convergence in technologies, as we've seen with Java and dynamic languages. After all, integration between disparate applications and various data sources is the goal of an even-increasing number of development projects. Shouldn't it also be the goal for developer tools and technologies? If integration and convergence is good enough for our customers, it's good enough for us developers.
Happy coding!
-EJB
Posted by Eric Bruno at 09:22 AM Permalink
|