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.
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...
Alors lequel choisir? Peut-être cet article et les liens qu'il fournit
permettront-ils de résoudre le dilemme!
Les domaines d'application et les besoins
Le Web avec les mobiles monopolise dorénavant l'activité des programmeurs.
Les domaines d'application 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 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 et techniques du Web
Les pages deviennent dynamiques
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.
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 formats de 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
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 avec HTML 5 et XAML est un format universel utilisable pour les données et le code. L'environnement de développement pour XAML est Visual Studio ou la version Express gratuite.
Ajax est 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.
Voir cette comparaison détaillée des langages d'interface pour le Web.
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. Mais ils ont maintenant un concurrent avec Node.js qui utilise JavaScript sur le serveur (voir la section JavaScript).
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.
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.
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 PostgreSQL a ajouté JSON comme nouveau type de données.
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.
Voir aussi Construire un CMS, comment créer son propre gestionnaire de contenu.