The short answer is, “Yes, there are a number of alternatives to Ajax for building Rich Internet Applications (RIAs).” These include Flash, Flex, Java, SVG and Ruby on Rails, as well as a few other niche players.
Now for the details, which make up a somewhat longer answer.
Flash and Flex, fellows
Adobe’s Flash, originally created by Macromedia, has quickly become an RIA tool of choice. Initially installed as a plug-in, its Player application started shipping with Windows XP some ten years ago now. Flash delivers some of the best RIA experiences, as well as multimedia.
On the downside, there is a longer learning curve with Flash. There is also a nagging, potentially problematic security issue. The Flash Player writes files to your computer in a rather secretive way, and there is no way to change the settings without using a “Settings Manager” located at Adobe’s Web site. Finally, Flash takes over your camera and microphone.
Flash brings a totally different perspective to building rich clients, but Adobe didn’t put all its eggs in that basket. The company also introduced a set of tools known collectively as Flex that provides data integration within a framework using integrated development tools. Taking care of the “XMLHttpRequest,” Flex offers easy integration with REST, SOAP or classic HTTP services. Flash is more of a straight-up alternative to Ajax, while some would characterize Flex as something like an “Ajax toolkit.”
Java’s still smokin’
Sun Microsystems’ Java is an Ajax alternative that has been around the block a few times, and its “applets” constituted among the first rich client tools for browsers. Java applets allow developers to use an honest-to-goodness, object-oriented programming language, while Java code runs in the JVM virtual machine with a “sandbox” for memory. Because of JVM, Java code runs on all platforms, living up to its slogan, “Write once, run anywhere.”
Applets can access only the memory allotted for its sandbox, which is an important security feature. Still, there are some problems with Java, the first of which is that it does require a plug-in that has to be manually installed for some browsers. JVM must be running for Applets to start up, and JVM may be slow to load at times. The applet has to be downloaded if it is not cached, which takes even more time, and this may be the most serious problem of all, since Web users typically expect ever higher, faster, better performance.
A mobile acronym?
SVG stands for Scalable Vector Graphics, a W3C language that uses XML to define 2D graphics and graphical applications. Its current version is 1.1, supported natively in the Opera browser (8+). Some Gecko-based browsers such as Firefox offer limited support, and although Konquerer, Internet Explorer and Safari browsers have plug-ins available for SVG, Microsoft’s IE has no commitment to it. The others do.
For PDAs (including PocketPC) and cellular phones there are, respectively, SVG Basic and Lite editions. The fact is that SVG will probably experience some adoption in the mobile category before it earns universal support among browsers. The lack of a commitment from Internet Explorer appears to be limiting the adoption of SVG.
Ruby, won’t you be mine?
Ruby on Rails is a somewhat more youthful technology, a free object-oriented language that has gotten a lot of press in the last few years. It is a “full stack framework” for developing database-driven Web apps following the Model View Controller (MVC) design method.
Ruby emphasizes development simplicity, reinforced with two near-famous and oft-repeated slogans. The first -“Don’t Repeat Yourself,” or DRY – is meant to eliminate wasteful duplication, of data or code. “Convention Over Configuration” instructs users to eschew configuration unless you have an “unconventional” situation.
Ajax support is innately, intrinsically available and simple to use in Ruby. You get instant functionality as soon as you install it. There are drawbacks, of course, especially if your firm has a well-entrenched system, stable development environment, solid platform and a ton of legacy code. It may not be practical to switch to Ruby – and she is still a youngster, after all.
XAML (“zammel”) is eXtensible Application Markup Language, and coupled with Windows Presentation Foundation makes up the heart of Microsoft’s application development strategy. Microsoft is aiming for XAML and WPF to replace HTML, Flash and PDF, a tall order, indeed. XAML will deliver 2D and 3D imaging, video, animation, audio and so on, and is supposed to erase the line between Web and desktop applications. As an MS technology, it will certainly be used broadly, but it is not likely to make many waves in non-Windows environments.
If you are hoping to add Ajax functions to an existing site, that is a good place to start, but if you are planning the construction of a new site, and want to use Ajax from the gate, take another look at Ruby on Rails. However, your ultimate decision on the tools to use will depend entirely on what you’ve been doing, what you’ve been doing it with and how willing you are to add another tool to the toolkit. If Ajax is the tool you need, then use it. If an alternative works, use that. If you aren’t sure what’s best, use both until you find out.