Quelle interface pour une application moderne?
HTML 5 , XUL, XAML, 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?
HTML 5 et Ajax
La nouvelle spécification HTML 5 offre une interface universelle pour les applications en lignes et certaines applications locale grâce au mode offline.
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.
Fonctionne partiellemeent 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.
La balise vidéo avec le codec WebM devrait se développer pour remplacer le lecteur Flash.
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 utilisé pour l'interface
graphique de Windows depuis Vista, par le plugin Silverlight et par Metro sous Windows 8.
Avantages
Très large bibliothèque de fonctions.
Choix du langage de programmation sur la plateforme .NETInconvénients
Compatibilité néanmoins limitée. Requiert WPF ou WinRT (Windows 8).Evolutions
Silverlight a popularisé XAML, Metro par faire plus encore.
La plateforme Mono sous Linux offre avec le temps plus de compatibilité coté serveur.
Java et JavaFX
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, mais JavaFX est la solution standard pour construire des interfaces.
Flash et MXML
Flash est un code binaire pour des interfaces et applications vectorielles avec des animations. MXML, est l'alternative de Macromedia à XUL et XAML et 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.
Avantages
Compatibilité quand au navigateur et de plateforme.
De nombreuses utilisations effectives.Inconvénients
Un plugin est nécessaire pour faire fonctionner les applications.Evolutions
DHTML tend à se développer.
Flash va disparaître sur les navigateurs sur les mobiles mais persistera pour les applications natives.
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.
Open Laszlo est une plateforme 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 largement répandu, et du code DHTML (HTML et JavaScript). Solution fonctionnelle avec un outil RAD complet.
Ruby on Rails programmable en langage Ruby.
Tableau récapitulatif
Le choix de l'interface d'application Web pourrait être facilité à l'aide du tableau suivant:
|
HTML 5 |
XAML |
Flash |
Java |
|
Compatibilité navigateur |
oui |
oui |
oui |
Applet |
Portabilité système d'exploitation |
oui |
Partielle |
oui |
oui |
Utilisation locale (sans connexion) |
oui |
oui |
oui |
oui |
Performance (réactivité) |
oui |
oui |
oui |
- |
Gratuité |
oui |
oui |
oui |
oui |
Complexité excessive |
- |
- |
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.
Documentation
- Tutoriel Ajax. Requis pour toute applications HTML 5.
- Google Gears. Utiliser les applications Web hors ligne, remplacé par HTML 5 mais toujours utilisable.
|
|
|
