La programmation du Web
Tous laisse à penser, au vu des outils qui apparaissent actuellement,
que la programmation des scripts et applications du Web sera bientôt
aussi aisée que la programmation locale grâce aux plateformes
permettant de faire fonctionner ces programmes conçu pour le Web, mais
la tendance marquante actuellement, c'est la possibilité de faire fonctionner
hors connexion une application Web.
Pour répondre à plusieurs questions essentielles sur la programmation
du Web et l'avenir que l'on peut entrevoir, cet article confronte les nouveaux
besoins des entreprises et utilisateurs avec les solutions actuelles, et leurs
développements en cours.
Les domaines d'application
Le Web monopolise dorénavant l'activité des programmeurs.
Les domaines sont très variés:
- Création et design de sites (scripts, Ajax).
- Animation Flash / XAML.
- Applications Web, RIA (applications Internet riches).
- Services web.
- CMS (gestionnaires de contenu Web).
- Web 2.0, création de sites dotés de fonctionnalités
nouvelles permettant de nouveaux usages du Web.
Les besoins
Les particuliers trouvent dans le Web un espace de divertissement et de loisir,
un espace d'échanges, quelque fois même un monde virtuel. Cela
suppose des sites plus évolués, simplifiés, interactifs
et rapides.
Les entreprises utilisent le Web pour promouvoir leurs produits et activités,
mais aussi comme outil pour leur personnel et leurs clients. Cela suppose
la transposition sur Internet des logiciels d'entreprise, de connexion aux
bases de données notamment.
Les administrations utilisent le Web en remplacement des guichets. La plupart
se sont mises au Web 2.0 dorénavant et y trouvent une source d'économies
importante.
Les formats du Web
Les pages
Après le HTML 4, complété par les feuilles de style,
on pouvait penser que XHTML, une version plus générale dérivée
de XML, étant reconnu par tous les navigateurs récents, allait
devenir le standard.
Mais on s'aperçoit que le W3C semble vouloir au contraire relancer
le format HTML, avec un ensemble de spécifications dédiées
aux applications, dont HTML 5 et les différents formats
de formulaires qui étendent la liste des composants actuels.
Les données
Pour stocker des données librement, hors bases de données, le format JSON complète bien JavaScript qui le reconnaît directement, tandis que XML, plus sûr, base de nombreux formats spécialisés comme RSS, s'utilise avec Ajax. Une comparaison de XML et JSON permet de mieux choisir entre ces deux formats selon l'application en projet.
Les interfaces des applications
Flash est un format de graphisme vectoriel léger binaire utilisé
pour créer des applications riches. Il fonctionne sur tout navigateur
une fois le plug-in Flash Player téléchargé. Mais il
a maintenant deux concurrents sérieux avec HTML 5 canvas et XAML, le format de Microsoft.
En réaction à la diffusion du plug-in Silverlight basé
sur XAML, portable et multi-navigateurs, Adobe à décidé
de mettre en open source son éditeur Flex qui produit des applications
Flash.
Voir cette comparaison détaillée des langages
d'interface pour le Web.
Les pages Web dynamiques
Elles intègrent du code JavaScript qui permet une interaction avec
l'utilisateur et peut modifier le contenu et l'apparence de la page.
Si l'on veut ajouter une interaction avec le serveur, y récupérer
des données pour les afficher ou reconstruire la page, on utilisera
Ajax, qui est encore du JavaScript, mais complété de l'objet
XMLHttpRequest pour l'échange avec le serveur.
De nombreux frameworks sont disponibles qui offrent des composants graphiques
pour créer des applications en ligne. Ils souffrent d'une extrême
lenteur. L'apparition d'une solution XAML compilé devrait résoudre
le problème de l'interface utilisateur graphique, voir ci-dessous.
Les langages du serveur
Sur le serveur, on utilise des langages de script simples à programmer,
économes en ressource et disposant d'une bibliothèque de fonctions
étendues. Les programmes sont intégrés dans les pages,
ce qu'il affichent devient partie de la page et ils accèdent au contenu
de celles-ci par le Document
Object Model. Le code est exécuté sur le serveur avant l'envoi
de la page HTML, il disparaît de celle-ci.
Les principaux langages sont PHP, fonctionnant sur toutes les plateformes
et offert par tous les hébergements Web mutualisés, ASP sous
.NET, et JSP en Java.
L'interface utilisateur
Elle s'inscrit en HTML 5 ou XML avec l'emploi qui se généralise de balises
pour décrire l'interface: XUL, XAML, MXML, XForm. Android a également son format d'interface de même que Java avec JavaFX.
Avec le format XAML et l'environnement qu'il met en place, Microsoft a pris
une bonne option sur l'avenir des interfaces à balises.
Tandis que XUL ne parvient
pas à fournir une documentation complète sur un système
très ardu à mettre en oeuvre et qu'après des années
d'existences aucun outil de développement sérieux n'a vu le
jour, Microsoft attaque sur tous les fronts:
- XAML est un format universel utilisable pour les données et le code.
- L'environnement de développement existe: Visual Studio auquel s'ajoute
Expression un éditeur XAML plus spécialisé.
L'outil de développement Glade de Linux possède aussi son propre langage d'interface XML.
Les services Web
Ils sont destinés à rendre les ordinateurs interopérables sur un réseau. Ce sont en fait des programmes installés sur un serveur et utilisables par des pages Web. Ils impliquent un système de stockage des données et un protocole de communication entre le serveur et les pages.
Stockage
Les bases de données MySQL se sont généralisées
car gratuites et fonctionnant sur tous les serveurs en combinaison avec le
langage PHP notamment. Une version simplifiée et plus rapide SQLite
offre le moyen d'utiliser la base de données dans un fichier personnel,
transférable d'un site à un autre.
Alternativement, on peut utiliser XML comme format de base de données,
ce que font certains gestionnaires de contenus.
Communication
La base d'un service est le RPC (Remote Procedure Call), appel d'une procédure
distante. L'échange de document sur le Web se fait avec le protocole
SOAP ou en architecture REST.
SOAP est un format XML standard. REST utilise le format XML ou JSON, il est
souvent préféré à SOAP jugé trop lourd
et complexe.
Yahoo offre une quantité de services Web selon l'architecture REST,
concernant la recherche, le trafic, la cartographie et cela en code JSON.
Lorsqu'un service Web retourne un document au format JSON, cela simplifie
beaucoup son utilisation car les données sont alors utilisables directement
en JavaScript. C'est pourquoi Microsoft a inclut JSON Web Service dans son
plug-in Silverlight.
Le mashup
Le mashup est une tendance émergente du Web qui consiste à
combiner des services Web pour créer de nouvelles applications. Le
service de cartographie de Google est l'un des plus utilisés, il permet
de localiser sur une carte, éventuellement en 3D, toute sorte d'activités
économiques, notamment la location de logement.
Google a créé un espace pour les utilisateurs, MyMaps,
qui permet à chacun de créer des cartes et de les compléter
de textes et d'images.
Les frameworks Ajax
Ajax est aussi un moyen de communiquer
avec le serveur, mais dans le but d'utiliser des données du même
site pour créer des pages dynamiques, éventuellement des applications
et dans ce cas on utilisera un framework.
Le but des frameworks Ajax
est de créer l'interface des applications avec des moyens limités.
Ils sont écrits purement en JavaScript ou complétés de
scripts coté serveur, pour fournir des traitements ou accéder
à une base de donnée.
Anaa est un framework JavaScript
très simple qui convient pour débuter. Pour des applications
plus professionnelles, Dojo, Rico, offrent des possibilités étendues,
et notamment des widgets pour créer une interface graphique.
Dojo permet de faire fonctionner une application Web hors ligne, mais cela
est superflu avec HTML 5 implémenté notamment dans les navigateurs modernes qui offre cette possibilité nativement, de même que Silverlight
3.
A l'heure du choix...
Quel langage, quels formats, quelle interface, et quel framework, avant de
se lancer dans une application, un choix complet de technologies est à
faire.
Une application serait parfaite si elle fonctionnait sur un serveur et donc
immédiatement avec une connexion sans rien à installer, mais
en outre si on l'utilise fréquemment, elle devrait fonctionner localement
sans avoir à se connecter au Net...
Les éditeurs d'environnement tentent de créer le système
parfait qui permettra tout cela, ce qui nous place face à une pléthore
de solutions...
Mozilla fournit XULRunner qui permet d'exécuter localement des applications
fonctionnant aussi sur Firefox. Adobe produit Apollo pour les applications
écrites en MXML et Flash, et Microsoft le runtime Silverlight avec
l'outil de développement Expression parmi d'autres.
Alors lequel choisir? Peut-être cet article et les liens qu'il fournit
permettront-ils de résoudre le dilemme!
Plus d'informations
- Construire un CMS. Créer son propre gestionnaire de contenu.
|
|
|
