Comparison between AJAX and Flex
Web Design & Development Guide
Comparison between AJAX and Flex
Adobe Flex are popular
Web development technologies to create
Rich Internet Applications. They can be used separately or in
combination. Ajax developers often use an
Ajax framework to speed up development. Flex developers use
Adobe's tools for development. This article compares Ajax frameworks
with Adobe Flex.
About this Comparison
Adobe Flex is a single-vendor product (proprietary to Adobe) while Ajax is a
collection of techniques to create web applications that is not specific to a
vendor. With Ajax the following options can be considered:
- Custom Ajax (develop from scratch)
- Open Source Frameworks
- Commercial Frameworks
The comparison below will take these options into account when comparing Ajax
Other RIA Technologies
There are more technologies that can be used for building RIAs, other than
Ajax and Flex. A full list can be found in the ‘Methods and Techniques’ section
Rich Internet Application article.
Ajax and Flex can also be used together. There are two tools available to
facilitate this integration: the Flex Ajax Bridge and Ajax Data Services.
Comparison of Product Capabilities
Adobe Flex relies on the Flash 9 browser plug-in, which needs to be present
in the browser of the website visitor. Ajax uses the various Internet browsers
abstracts away from differences in browser implementations: developers use the
engine which in turn communicates with the browser.
The benefit of using a proprietary plug-in as Flash 9 is the controlled
runtime environment, which is identical across all web browsers. This make
development easier and it allows Adobe to add additional features and to improve
performance. The downside is that the plug-in needs to be installed, which can
pose a problem in environments with locked-down operating systems. Adobe
periodically publishes data on the market penetration of the Flash Player. Some
critics of flash, such as Jakob Nielsen,
state that reliance on a plug-in as a break with web standards, as the web
browser is only used to launch the player which does not use web standards such
The benefit of Ajax is that it runs in various web browsers, without the need
for a plug-in. The downside is that there are differences between browser
applications that work in one browser, but not in another. Ajax Frameworks
mitigate this issue by offering a browser compatibility layer. Another downside
disabled, but this requires additional application design.
Flex has a declarative development model, in which the application is defined
with XML tags. Additional programming is done in ECMAScript. Styling can be
added using CSS. Ajax
programming model (e.g. Backbase). Ajax styling is also done with CSS. There are
also server-side Ajax frameworks that allow Ajax programming with JavaServer
Faces (e.g. Icesoft and Backbase) or .NET (e.g. Telerik and Infragistics).
Adobe Flex has its own IDE: Adobe Builder, which is based on Eclipse. There are many IDEs that can be used for Ajax development. They
- Generic IDEs such as Eclipse and Visual Studio.NET
- Dedicated Ajax IDEs such as Aptana
- IDEs bundled with Ajax Frameworks
Some Ajax Frameworks develop their IDE on top of an existing IDE: for
example, Backbase uses Eclipse. Other Ajax Frameworks develop their IDE in the
web browser, often using their own framework, such as [[Tibco_Software|Tibco]
Adobe bundles a framework for automated testing with Flex, while for Ajax
most existing web page testing tools can be used.
RIA performance consists of various aspects, such as the size for the initial
download, the speed of the runtime, and speed of data manipulation.
Flex applications have a minimum initial download size of approximately 125
kilobyte, which users may consider slow on dialup connections. Ajax programs can
be very small, although most frameworks introduce a certain initial download
size, ranging from several kilobytes to a megabyte. Flex applications are
already compressed, while for Ajax,
GZip compression on
the web server is typically used to compress the files.
The performance of Ajax applications is based on the performance of the
browser, which can vary from one browser to another. Frameworks such as Backbase
and Jackbe have optimized the performance of their framework across browsers.
Adobe optimizes the Flash Runtime for performance, and therefore has more
control over performance. One of the benefits is that Flex can handle large data
sets on the client-side, while Ajax requires more optimization to get good
performance, especially in Internet Explorer.
The best Ajax frameworks can handle more client-side data than other frameworks,
due to careful optimization strategies.
Adobe Flex comes with many user interface widgets in different
Ajax does not come with pre-built widgets, but many Ajax frameworks do, ranging
from a couple of widgets to over 100. Some Ajax widgets are stand-alone, while
others are tightly integrated into an Ajax framework, using the framework’s
underlying functionality for event handling, drag-and-drop, resizing, sorting,
and so on. An underlying framework makes it easier to customize or extend
widgets, and to create completely new widgets. Some Ajax frameworks come with
multiple skins for the widgets.
Now, Flex SDK has been Open Source so it also can be extended by external
code contributions. Create custom component in Flex is very easy. Ajax is
typically more extensible, because Ajax runs in browsers instead of a
proprietary runtime. Custom widgets can also be created with Ajax and Ajax
frameworks simplify this task by providing reusable functionality.
Flex uses multimedia capabilities from Flash, such as vector graphics,
animation, image manipulation, audio and video. Ajax does not have multimedia
functionality built-in, but can use other browser functionalities and plug-ins
such as SVG and Quicktime, or even the Flash plugin.
Ajax uses the web browser’s underlying communication mechanism, which is
HTTP. This supports pulling data from the server, as well as pushing data to the
client using Server Push. Remoting is supported by various Ajax frameworks such
Adobe Flex also supports binary communication.
SEO and Web Analytics
Ajax and Flex are often used to build web applications that are not very
content-rich. However, if there is a fair amount of
that needs to be indexed by search engines, search engine optimization (SEO)
techniques become relevant. Adobe Flex has limited support for SEO because
content cannot be read directly by search engines, which instead use meta data
and HTML shadow pages to index Flex applications. HTML within Ajax applications
can be indexed by search engines, although search bots cannot follow links that
applications fully accessible for search engines. Web analytics typically works
well with Ajax applications, as all HTML files that are loaded can be tracked,
even if they are loaded into an existing page. What happens within a Flex
application is hidden from web analytics tools.
Adobe Flex is
508 compliant. Some Ajax frameworks such as Bindows and Backbase are also
Section 508 compliant, but most other Ajax applications are not.
Both Flex and Ajax run in the browser’s sandbox, and are generally seen as
equally secure, though the Flash plug-in can introduce additional security
risks. Most Ajax code is plain text and thus easy to read: this could make it
easier for attackers to find vulnerabilities.
Adobe has attempted to make Flex as user friendly as possible. However,
critics of Flash such as Jakob Nielsen
claim that Flash-based applications have inherent
issues because visitors are used to using web pages as interfaces for web
applications. Critics of Flash usability limitations such as the following:
- Flash apps have a different feel: the cursor looks different, fonts look
different, links and right-click does not work as expected
- Copy and paste of text does not work
- Back-button does not always work as expected
- Developers are more likely to introduce unintuitive interface concepts
Flex proponents state that many of these issues can be addressed with proper
application design and thorough usability tests.
Both Flex and Ajax support many web standards. Ajax uses a standards-based
runtime (the web browser) that supports many standards out-of-the-box. Flex uses
a proprietary runtime that has implemented support or partial support for many
standards. Any standard that is available in web browsers is immediately
available for Ajax applications, while Adobe has to implement these standards in
its Flash runtime.
Flex is supported by a single large vendor: Adobe. Ajax in general is not
supported by a vendor, though some Ajax frameworks provide support and several
open source Ajax projects are supported by their developer community on a
voluntary basis. Most commercial Ajax vendors provide support plans, ranging
from basic email support to 24x7 phone support with a
Flash: 99% Bad (2000-10-29).
Document Update Markup Language
Comparison between AJAX and Flex