Which Interface for a Web Application?
Ajax, XUL, XAML, Flex, platforms are emerging, each one with its advantages
and its drawbacks, and the choice is posed since one wants to build a Web
application, a RIA (Rich Internet Application) having the same interface and
the same possibilities that a local application as certain popular sites do
it.
Fear to take the bad way and to spend months under development with an environment
on which one could not lead while an other could have proven to be more adapted
according post in forums where the question is very present.
Things seems even more complicated when one realizes that the various solutions
suggested do not cease evolving/moving and proposing functionalities for now,
and one wonders, will be it possible that in the future, such platform offers
the possibilities currently offered by such other?
AJAX
It is the combination of the technologies of dynamic HTML (CSS, JavaScript,
DOM) plus
the XMLHttpRequest object which allows asynchronous interaction between the
browser and the server.
The application uses on the server-side a scripting language like PHP
or ASP. Scriptol generates PHP code or binary for mixed applications.
Advantages
Total portability: recognized by all of recent browsers.
Very wide choice of frameworks.
Compatibility with standards of the Web: Javascript, CSS, Document Object Model.
Simplicity of implementation.
Disadvantages
The possibilities of client-side interface are limited in what can offer existing frameworks.
Do not function locally without a connection to a server.
Programming in Javascript is very hard (without reaching the difficulty of other solutions as XUL obviously since this one uses also JavaScript in addition to its own difficulties!).Evolutions
The evolutions are done through frameworks, increasingly developed and also in new standards of the Web which are designed to support Web applications.
XUL
It was at first the format of description of interface of Gecko, the rendering
engine of Firefox, developed then like a standalone runtime, and distributed
under the name of XULRunner. It is possible to install the runtime on any
machine and to make a XUL application working locally, but only the Gecko
engine recognizes it on the Web.
Using XUL is very difficult in particular because of the lack of information.
The principal shelves is the dynamic use of RDF,
and the JavaScript language, problem the authors try to solve by implementing
more scripting languages.
Advantages
Compatibility with the standards: Javascript, CSS, RDF. Webmasters are not disoriented.
Integration of HTML code into XUL what makes it possible to complete it with HTML tags, in particular forms.
Disadvantages
Function only with Firefox Mozilla-compatible browsers.
Extreme difficulty for programming.
Miss technical information.Evolutions
The recognition of new scripting languages could facilitate its use without solving all the difficulties.
There is no chance so that XUL is ever recognized natively by Internet Explorer. With a plugin perhaps? The ZK platform seems to reach this objective.
XAML
XAML is like XUL an XML-based language of description of interface. But unlike
XUL it is at start intended by Microsoft to be a means of creating rich Internet
applications. Just as XUL is recognized by Firefox, XAML is recognized by
Internet Explorer, with the advantage of a larger number of users. He thus
supplements the universal .NET platform, with a language of interface.
He is provided natively with Vista and is used for the graphic interface of
Vista.
Advantages
Very broad library of functions.
Choice of the programming language on the .NET platform.
Disadvantages
Compatibility limited. Requires practically the presence of WPF to run all the features, and thus requires Vista or Windows XP with the .NET 3.0 extension.Evolutions
The replacement of XP by Vista will popularize XAML.
The Mono platform under Linux will offer with time a greater compatibility server-side.
Nobody expects that XAML will be recognized by Firefox in the future, but this is not completely excluded.
Possibility of future universality with Silverlight, a portable light version of WPF, the graphic platform of Windows on which XAML is running.
Java and applet
The Java solution is complete since it proposes a server-side framework,
and with at client-side, on the browser, applets, which are small applications
functioning in a Web page. That can also be supplemented by a scripting server-side
language, JSP. Let us add to that servlets for Web services and one has a
portable and complete platform for enterprise Web applications.
Advantages
Extremely vast library of functions.
Compatibility with all platforms.Disadvantages
A plugin must be installed on the client-side, and the server must also support Java what implies practically a dedicated server.
Loading of Applets is really slow, which has always limited their use by companies only.
Programming it is rather complex.Evolutions
XAMJ, an implementation of XAML in Java could combine the advantages of the XAML format with the portability of Java.
Open Laszlo and Flash
Open laszlo is a free application based on a markup language named LZX. On the client-side, it produces Flash code which can be runs thanks to a plugin rather commonly installed, and it produces also DHTML code (HTML with Javascript).
Advantages
Compatibility for browsers and platforms.
The force of Laszlo is the existence of a well finalized development tool.
Many effective users.Disadvantages
A plugin is necessary to let the applications executed.Evolutions
The DHTML part tends to increase.
Other solutions
The markup vectorial drawing SVG format makes it possible to build
graphic components for an interface of Web application. However a framework
is needed for that, and there is no emerging solution for now in particular
in the world of free software.
More again, the SVG recognition by browsers is imperfect.
SVG may be useful rather like a complement to other solutions.
xWidglets is based on Java and thus has the advantages and disadvantages of this platform. The graphic interface uses the XML markup language, which put it on the same plan as XAMJ. The advantage is reduced by the existence of a RAD development tool.
MXML, alternative from Macromedia to XUL and XAML is used by Web applications in conjunction with developments dedicated for the interaction with the browser. It has a development tool named Flex.
Let us quote also Ruby one Rails, popular in Japan and MyXAML, a language close to XAML.
Backbase and Bindows are commercial solutions.
The XulFace project is another Java extension with XUL tags and thus
is an alternative to XAMJ.
The W3C proposes new standards for the Web like XForms, Web Application 1.0 accompanied by elements of Web applications such as Window, File Upload, etc. However we have to wait until they are implemented in all browsers to be able to use them in a public Web application. There is also here a vague project of markup language of interface, without much motivation for its development.
Summary table
The choice of the interface of Web application could be facilitated by using
the following table:
| Ajax | XUL | XAML | Laszlo | Java | |
| Browser compatibility | yes | yes | yes | yes | |
| Portability on operating systems | yes | yes | Partial | yes | yes |
| Local use (without connection) | Gears | yes | yes | yes | |
| Performance (reactivity) | yes | yes | yes | yes | |
| Free of charge | yes | yes | yes | yes | yes |
| Excessive complexity | yes | yes | yes |
Note that it is possible to combine solutions to solve the deficiencies of
a format. For example, Ajax can be used at client-side in conjunction with
Java at server-side to avoid the slowness of applets. There are also frameworks
that allow to work offline.
The ZK Framework would make it possible to use XUL with several browsers.
Microsoft also has released Silverlight, a plugin for executing XAML on all
browsers.
Standards for Web applications
- XForms 1.0. It is a standard led to create advanced forms and applications.
- HTML 5. Specification in progress from WHATWG and W3C for replacing HTML 4 with Web applications support. See also the article.
- Windows Object 1.0. The window object of DOM.
- File Upload. File exchanges with the server.
- Web Forms 2.0. Extension to DOM and to HTML forms.
Useful sites and articles
- Google Gears. Using Web applications offline with Ajax. (In progress).
- XUL. Ajax, XUL and common technologies : Javascript, CSS, DOM, XML.
- Java. Place to download the runtime or the SDK.
- Open Laszlo. Functional solution with a complete RAD tool.
- ZK. To make XUL working under Internet Explorer.
- Silverlight. A replacement to Flash, by Microsoft.