Quelle interface pour une application Web?
Ajax, XUL, XAML, Flex, des plateformes émergent, chacune avec ses
avantages et ses défauts, et le choix se pose dès lors que l'on
veut réaliser une application Web, une RIA (Rich Internet Application)
ayant la même interface et les mêmes possibilités qu'une
application locale comme le font certains sites populaires.
La crainte de prendre la mauvaise voie et de passer des mois en développement
avec un environnement sur lequel on ne pourrait aboutir tandis qu'un autre
aurait pu s'avérer plus adapté se traduit dans les forums où
la question est très présente.
Le problème se complique encore quand on s'aperçoit que les
différentes solutions proposées ne cessent d'évoluer
et de proposer des fonctionnalités jusque là absentes, et l'on
se demande, sera-t'il possible qu'à l'avenir, telle plateforme offre
les possibilités actuellement offertes par telle autre?
AJAX
C'est la combinaison des techniques formant le HTML dynamique (CSS, JavaScript,
DOM) et de l'objet
XMLHttpRequest qui permet l'interaction asynchrone entre le navigateur et
le serveur.
L'application utilise un langage de script coté serveur comme PHP
ou ASP. Scriptol génère du code PHP ou binaire pour les applications mixtes.
Avantages
Portabilité totale: reconnu par tous les navigateurs récents.
Choix de framework très étendu.
Compatibilité avec les standards du Web: JavaScript, CSS, Document Object Model.
Facilité de mise en oeuvre.Inconvénients
Les possibilités d'interface coté client sont limitées en ce que peuvent offrir les frameworks existants.
Ne fonctionne pas localement sans connexion à un serveur.
Programmer en JavaScript est très laborieux (sans atteindre la difficulté d'autres solutions comme XUL évidemment puisque celle-ci utilise aussi JavaScript en plus de ses difficultés propres !).Evolutions
L'évolution se fait dans les frameworks, de plus en plus développés ainsi que dans les nouveaux standards du Web qui sont conçus pour supporter les applications Web.
XUL
C'est à l'origine le format de description d'interface de Gecko, le
moteur de rendu de Firefox, développé comme runtime indépendant
distribué sous le nom de XULRunner. Il est possible d'installer le
runtime sur toute machine et de faire fonctionner localement une application
XUL, mais seul le moteur Gecko le reconnaît sur le Web.
Utiliser XUL est très difficile notamment en raison du manque d'information
sur son fonctionnement.
Les écueils principaux sont l'emploi dynamique de RDF,
et le langage JavaScript, ce à quoi les auteurs tentent de remédier
en implémentant d'autres langages de scripts.
Avantages
Compatiblité avec les standards: JavaScript, CSS, RDF. Les webmasters ne sont pas dépaysés.
Intégration du HTML dans le code XUL ce qui permet de le compléter avec les éléments HTML, notamment les formulaires.Inconvénients
Fonctionne seulement avec Firefox ou navigateurs compatibles Mozilla.
Extrême difficulté de mise en oeuvre.
Manque d'information technique.Evolutions
La reconnaissance de nouveaux langages de scripts pourrait faciliter son emploi sans résoudre toutes les difficultés.
Il n'y a aucune chance pour que XUL soit jamais reconnu nativement par Internet Explorer. Avec un plugin peut-être? La plateforme ZK semble parvenir à cet objectif.
XAML
XAML est comme XUL un langage
de description d'interface basé sur XML. Mais il est vu par Microsoft
comme un moyen de créer des applications Internet riches. De même
que XUL est reconnu par Firefox, XAML est reconnu par Internet Explorer, avec
l'avantage d'un nombre d'utilisateur très supérieur. Il complète
donc .NET, plateforme universelle avec un langage d'interface.
Il est fourni nativement avec Vista et est utilisé pour l'interface
graphique de Vista.
Avantages
Très large bibliothèque de fonctions.
Choix du langage de programmation sur la plateforme .NETInconvénients
Compatibilité néamoins limitée. Requiert pratiquement la présence de WPF pour disposer de toutes les possibilité, et donc de Vista ou Windows XP avec extension .NET 3.0.Evolutions
Le remplacement de XP par Vista va populariser XAML.
La plateforme Mono sous Linux offrira avec le temps une plus grande compatibilité coté serveur.
On ne s'attend pas à ce que XAML soit reconnu par Firefox dans le futur, mais ce n'est pas totalement exclu.
Possibilité d'universalité future avec Silverlight, version light portable de WPF, la plateforme graphique de Windows sur laquelle se base XAML.
Java et les applets
La solution Java est complète puisqu'elle propose un framework coté
serveur, et coté navigateur, l'emploi d'applets, qui sont de petites
applications fonctionnant dans la page Web. Cela peut aussi être complété
par un langage de script coté serveur, JSP. Ajoutons à cela
les servlets pour les services Web et l'on dispose d'une plateforme portable
et complète pour les applications Web d'entreprises.
Avantages
Bibliothèque de fonctions extrêmement vaste.
Compatibilité avec toutes les plateformes.Inconvénients
Un plugin doit être installé sur le poste client, et le serveur doit également supporter Java ce qui implique pratiquement un serveur dédié.
Le chargement des Applets est extrèmement long, ce qui à depuis toujours limité leur emploi aux solution d'entreprises.
La programmation est assez complexe.Evolutions
XAMJ, une implémentation de XAML en Java pourrait combiner les avantages du format XAML avec la portabilité de Java.
Open Laszlo et Flash
Open laszlo est une application libre basée sur le langage à balises LZX. Sur le poste client, il produit du code Flash pouvant s'exécuter grâce à un plugin assez largement répandu, et du code DHTML (HTML et JavaScript).
Avantages
Compatibilité quand au navigateur et de plateforme.
La force de Laszlo est l'existence d'un outil de développement largement finalisé.
De nombreuses utilisations effectives.Inconvénients
Un plugin est nécessaire pour faire fonctionner les applications.Evolutions
Le coté DHTML tend à se développer.
Autres solutions
Le langage à balise de dessin vectoriel SVG permet de réaliser
des composants graphiques pour une interface d'application Web. Il faut cependant
pour cela un framework, et il n'existe pas de solution qui émerge actuellement
notamment dans le monde du logiciel libre.
Par ailleurs, la reconnaissance de SVG par les navigateurs est imparfaite.
SVG se conçoit plutôt comme un complément aux autres solutions.
xWidglets se base sur Java et donc à les avantages et inconvénients de cette plateforme. L'interface graphique utilise un langage XML, ce qui le place sur le même plan que XAMJ. L'avantage se réduit à l'existence d'un outil de développement.
MXML, alternative de Macromedia à XUL et XAML est employé par des applications Web en conjonction avec des développements propres pour l'interaction avec le navigateur. Il dispose d'un environnement de développement nommé Flex.
Citons aussi Ruby on Rails, populaire au Japon et MyXAML, un langage proche de XAML.
Backbase et Bindows sont des solutions commerciales.
Le projet XulFace repose sur l'environnement Java complété
de balises XUL, et est donc une alternative à XAMJ.
Le W3C propose de nouveaux standards du Web comme XForms, Web Application 1.0 accompagnés d'éléments d'applications Web tels que Window, File Upload, etc. Cependant il faudra attendre qu'ils soient implémentés dans tous les navigateurs pour pouvoir les utiliser dans une application Web publique. Il y a également un vague projet de langage d'interface à balises, sans grande motivation de développement.
Tableau récapitulatif
Le choix de l'interface d'application Web pourrait être facilité
à l'aide du tableau suivant:
|
Ajax
|
XUL
|
XAML
|
Laszlo
|
Java
|
|
| Compatibilité navigateur |
oui
|
oui
|
oui
|
oui
|
|
| Portabilité système d'exploitation |
oui
|
oui
|
Partielle
|
oui
|
oui
|
| Utilisation locale (sans connexion) |
Gears
|
oui
|
oui
|
oui
|
|
| Performance (réactivité) |
oui
|
oui
|
oui
|
oui
|
|
| Gratuité |
oui
|
oui
|
oui
|
oui
|
oui
|
| Complexité excessive |
oui
|
oui
|
oui
|
Noter qu'il est possible de combiner les solutions pour résoudre les
carences d'un format. Par exemple, Ajax peut être utilisé coté
client en conjonction avec Java coté serveur pour éviter la
lenteur des applets. Des frameworks permettent aussi de travailler hors connexion.
Le framework ZK permettrait d'utiliser XUL avec plusieurs navigateurs.
De son coté Microsoft propose Silverlight, un plugin pour utiliser
XAML sur plusieurs navigateurs.
Standards d'applications Web
- XForms 1.0. C'est un standard abouti pour créer des formulaires évolués et des applications.
- HTML 5. Spécification en cours WHATWG et W3C pour remplacer HTML 4 avec un support d'applications Web. Voir aussi l'article.
- Windows Object 1.0. Objet window du DOM.
- File Upload. Echange de fichiers avec le serveur.
- Web Forms 2.0. Extension à DOM et aux formulaires HTML.
Sites et articles utiles

- Gears. Utiliser Ajax sans connexion Internet. (En phase de développement).
- XUL. Ajax, XUL et technologies communes: JavaScript, CSS, DOM, XML. Traduction française de l'objet XMLHttpRequest.
- XAML. Le site français de XAML et des technologies Vista. Comporte un tutoriel XAML et Silverlight.
- Java. Télécharger le runtime ou le SDK de développement.
- Open Laszlo. Solution fonctionnelle avec un outil RAD complet. (Anglais).
- ZK. Faire fonctionner XUL sous Internet Explorer. (Anglais).
- Silverlight. L'alternative à Flash de Microsoft. (Anglais).
(c) 2007 Denis Sureau - Scriptol.fr. ECrit en Avril 2007. Dernière mise à jour 18 Mai 2007.