Ajax - A Rose by Any Other Name is…                                 
             
There are alternatives to using Ajax for building rich Internet applications.
     -        Flash
     -        Flex
     -        XUL
     -        XAML
     -        Java
     -        SVG
     -        Ruby on Rails

Adobe (formerly Macromedia) Flash is a powerful and relatively ubiquitous choice. While initially a plug-in
requiring installation, in 2000 it began distribution with Windows XP. It is able to deliver some of the most
rich user experiences on the web, and can deliver multimedia.

There are a few things that cause hesitation when looking to jump into using Flash extensively. Primary
presence has been largely bells and whistles type stuff, and in some cases has been abused to the point where
"skip flash" is oft clicked. Most shops looking into Ajax at this time do not have skills in house for Flash
development, it is still rather specialized.

Perhaps the biggest potential issue has to do with security and privacy. The Flash Player writes files to the
user's machine. This is not obvious, and there is no installed configuration or settings manager. In addition,
Flash Player gives access to your computers camera and microphone. Users concerned about security must go
to Adobe's site to utilize a "Settings Manager" to remedy the problem.






















While Flash is a different perspective entirely on building rich clients, Adobe has introduced a collection of
tools collectively known as Flex. Flex provides a framework, integrated development tools (Eclipse based,
Flex Builder), and data integration services.  Flex fills the role of the XMLHttpRequest, while providing ease
of integration with SOAP, REST or classic HTTP services.

While Flash may be an alternative to Ajax, Flex could certainly be categorized as an example of an Ajax toolkit.

XUL, XML User Interface Language (Zool) is a language developed and used by Mozilla. It facilitates
building feature rich applications that can run even when disconnected from the Internet. It provides a set of
common user interface components, widgets, which can be customized, scripted, etc. It utilizes JavaScript,
XML and DTD. It should be easy for developers familiar with DHTML to learn how to use it.

The primary drawback with XUL is that it requires a XUL-enabled browser… Mozilla based browsers only
at this time.

XAML, (Zaml) Extensible Application Markup Language, along with Windows Presentation Foundation
provides the core of Microsoft's vision for application development with Vista. Microsoft aims high with
XAML and WPF, aiming to replace HTML, Flash and PDF. XAML is about delivering 2D and 3D imaging,
animation, audio, video, flow format documents, etc. The idea is to remove the line separating web and
desktop apps…

Since XAML is a Microsoft technology, it is sure to be widely used. However… What happened to W3C
standards? XSLT 2.0? XQuery? XPath 2.0? Will likely not make it onto Linux, or any other non-Windows
platform.

Sun's Java is another alternative. Java's been around a while, and applets were the first rich client tool for the
browser. With Java applets, developers can use a full-fledged object oriented programming language for web
applications. Java code runs in a virtual machine, JVM, with a sandbox for memory. It is the JVM that allows
Java code to run on any platform, and is the inspiration for the motto "write once, run anywhere".

Applets run in a sandbox, and are able to only access memory allotted for it. This feature is important for
security reasons.

There are some difficulties with using Java. It does require the Java plug-in, which is not available by default
and must be installed for some browsers. Applets can't start up until the JVM is running, and this may take
some significant time to load. If the applet is not cached, it must be downloaded over the Internet, which
takes some time.

The extra time required when getting an applet the first time is, perhaps, the most serious problem since web
users tend to expect higher performance than users of desktop applications.

SVG, Scalable Vector Graphics, is a W3C language for describing 2D graphics and graphical applications using
XML. The most current version is 1.1, which became a Recommendation in 2003. SVG 1.1 is supported
natively in Opera 8+, and Gecko-based browsers (such as Firefox) have some support, though not complete.
Internet Explorer, Konquerer and Safari have plug-ins available. Internet Explorer has no stated commitment
to SVG, which all other browsers have. There is an SVG Basic and Lite editions, for PocketPC/PDA and
cellular phones respectively.

The reality of the situation with SVG is that it is likely to see adoption in the mobile arena before full
support in the browser world. The lack of commitment in the Internet Explorer browser is severely limiting
adoption.

Finally, there is a young upstart Ruby on Rails. Ruby is an object-oriented scripting language that is totally
free and has been garnering a lot of attention recently. Ruby on Rails is a full stack framework for building
database backed web applications using the MVC (Model View Controller) design pattern.

Ruby on Rails focuses on ease of development, and has two prominent mantras. Don't Repeat Yourself -
DRY- aimed at reduced duplication of information be it data or code. Convention over Configuration meaning
that configuration is only necessary when it is unconventional.

As for the relationship between Rails and Ajax. Intrinsically available and easy to use within Rails is Ajax
support. You get it instantly when you use Rails.

The drawback here is obvious and unfortunate. If you work for a company with a well-established
development environment, platform, and legacy code base… how practical is it to switch to Ruby? Besides,
Ruby is still young.

To oversimplify some salient points/opinions:
     -        For those who are looking to add Ajax functionality to an existing site, "good on ya" because that
               is a fortunate starting point.
     -        For those who are looking to build a site utilizing Ajax from the outset, Rails is an excellent place
               to begin.
Ajax Alternatives
Table of Contents
Copyright (c) 2008.  Intertech, Inc. All Rights Reserved.  This information is to be used exclusively as an
online learning aid.  Any attempts to copy, reproduce, or use for training is strictly prohibited.
Courseware
Training Resources
Tutorials
Services