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:

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.