Focus sur les différents langages de développement web

Le 15/03/2011

Dans Développement

Ami webdesigner, vous êtes perdus quand votre développeur préféré vous parle? Pour mieux s’y retrouver dans la jungle des langages de programmation web, voici une description des principaux langages utilisés, leurs points forts, et leurs points faibles.

Si la spécialisation à outrance permet de devenir très compétent dans son milieu, elle à aussi comme malheureuse conséquence de compliquer le dialogue entre les différents corps de métiers. Comment savoir si la remarque qu’on veut faire est pertinente, si notre petite modification sur une maquette ne cache pas en réalité un travail de titan, voir même quelque chose de techniquement infaisable, si l’on ne comprend pas ce qu’elle implique?

Pour assouplir la frontière entre webdesigner et développeur web, il est important de pouvoir partager une base de connaissance commune, ainsi qu’un vocabulaire précis et bien employé. Et comme il faut toujours commencer par la base, nous allons parler ici des différents langages de programmation.

Comment se passe l’affichage d’une page web, de façon tres schématique? Le client (le navigateur de l’utilisateur, en général), demande une page. La requête est traitée par le serveur, et renvoie la réponse au client. Le client, ensuite, traite la réponse de son coté. Les langages utilisés sur le web peuvent naturellement se séparer en deux grandes catégories, en fonction de l’endroit ou ils s’executent : les langages cotés serveur, et les langages coté client.

Les langages serveur

La première partie des langages que nous dirons serveur servent à traiter la demande du client et préparer la réponse à envoyer. Le code y est exécuté par le serveur, et ne pourra jamais être vu par le client.

Le php
Personne n’a pu passer à coté du PHP, utilisé par les plus grands CMS (wordpress, joomla, drupal, magento). Il est très facile à déployer, a une excellente documentation, et permet de faire des choses simples très vite. Il n’est néanmoins pas exempt de défauts : il est très lourd, car tous les scripts doivent être lus à chaque appel de page. C’est aussi un langage très « mal rangé », car il c’est construit au petit bonheur la chance, au hasard des versions. Si votre site est en php, il sera très simple de trouver de petits bouts de code à ajouter à droite à gauche, pour avoir, par exemple, un fond qui change en fonction du jour de la semaine, de l’heure, ou autre (cet exemple sera détaillé sur un prochain article, d’ailleurs).

Le Java
Le java permet de faire des sites et applications web bien plus rapides et sécurisés que le php, mais le prix à payer est assez lourd: La consommation en ressources est assez aléatoire, et l’application pas forcément stable. De plus, il n’est pas simple de trouver un hébergeur acceptant autre chose que le php. Si vous voulez faire un serveur pour un chat, ou quoi que ce soit qui demande beaucoup d’échanges entre serveur et client sans recharger la page, le Java est une bonne option.

ASP.net
 C’est le « langage » serveur de Microsoft. Pourquoi langage est-il entre guillemet? Car la technologie .net permet de choisir son langage! (le plus utilisé restant C#). Avec cette technologie, le code est compilé, et donc beaucoup plus rapide à l’execution que du PHP! Son inconvénient est qu’il est assez compliqué à faire tourner sur Linux, et que la plupart des serveurs tournent sous linux.


Les autres
ColdFusion (le serveur d’adobe), Ruby (Principalement utilisé avec Rails), … Il en existe beaucoup d’autres, largement moins utilisés. Cette liste est loin d’être exhaustive !

Il existe d’autres types de langages serveur, en fonction des logiciels installés sur le Serveur:

SQL
Le langage qui permet d’interroger les bases de données (généralement mySQL). Les bases de données sont indispensables pour tout site web conséquent, elles permettent de stocker et gérer de grandes quantités d’informations.

Je ne cite pas tous les autres (python, le moteur de recherche sphynx, …), mais là aussi, la liste est loin d’être exhaustive

Les langages Client

Sous ce nom assez… Improvisé, nous allons parler des langages exécutés sur la machine du client, donc de l’internaute.

Le HTML
Sans conteste le langage client phare pour les sites web, le HTML gère tout ce qui est mis en forme d’information (bien que le HTML5 tende à faire plus que de l’affichage). Il est composé d’un ensemble de balises, et qui ressemble (voir même qui est, si nous simplifions) au XML. Il est assez particulier car il n’est en réalité qu’un ensemble de règles énoncées par le W3C. L’interprétation de ces règles est ensuite laissée à la discretion des créateurs de navigateurs, qui ne se concertent pas, ce qui se traduit par des affichages assez… Disons folkloriques, sur certains navigateurs créés par Microsoft.

Le CSS
Il s’utilise conjointement avec le HTML, et définit des règles d’affichage. Il est lui aussi maintenu par le W3C, et n’est aussi qu’une suite de recommandations. Sa version 3 permet de faire des choses qui s’approchent du javascript, en permettantt de faire des transitions (un moyen tout smooth de passer d’un état, une couleur, une position, à une autre).

Le Javascript
Comme pour les deux précédents, le javascript est une interprétation de l’ECMAScript maintenu par le W3C. C’est le moyen de rendre dynamique des pages, en modifiant les propriétés HTML avec des transitions (pour faire de jolies animations, par exemple), effectuant des requêtes vers le serveur, discutant avec des éléments embarqués tels du flash, et autres.

Le Flash
Le nom réel du langage est l’AS3 (ou anciennement AS2, mais soyons à la page). C’est l’interprétation de l’ECMAScript d’Adobe. C’est un langage très orienté objet, avec les spécificités de l’ECMAScript, qui sont des listener et des prototypes. Ses avantages sont qu’il est précompilé, et donc que le code source n’est pas disponible pour le premier passant venu, et qu’il tourne avec le plugin Flash directement fourni par Adobe. Nous avons donc pas de mauvaises surprises en fonction des navigateurs.

Le Java
Et oui le java est aussi présent ici, car il peut s’executer grace à une machine virtuelle directement sur le navigateur (mais si, la tasse de café orange qui met des plombes à charger, vous l’avez forcément déjà vue).

XML et JSON
Ces deux langages sont très éloignés l’un de l’autre dans la forme, mais ont des buts identiques : transmission d’informations et stockage. Ils seront traités dans un prochain article.

Les Framework

Vous noterez l’absence de Ruby On Rails dans les langages serveur. Pourquoi ? Car RoR n’est pas un langage. C’est un Framework.

Les Framework (tel Symphony, cakePHP, et mes excuses à tous ceux que je ne cite pas) sont un assemblage d’outils qui enrobe un langage, pour lui donner de nouvelles possibilités. C’est un moyen de programmer bien plus proprement, plus rapidement, et plus efficacement. Je ne saurais que trop les recommander pour les projets un peu conséquents.

Et AJAX, alors ?

Et non, AJAX n’est pas un langage. C’est une manière de construire des applications Web en utilisant Javascript de façon à ce que le serveur et le client travaillent de concert. Cela permet de faire de très puissantes applications web.

Voilà pour notre introduction aux différents langages de programmation web. Les prochains articles feront le focus sur certains langages, et fourniront des bases un peu plus solides, toujours à la portée des webdesigners sans connaissances en programmation. Si vous voulez défendre votre langage préféré, clarifier un point que j’ai laissé obscure, ou donner un avis, faites le avec un commentaire !