Aller au contenu
Serveur Counter.
Développement

Programmation web : quels langages pour quoi faire

programmation web

« Quel langage apprendre pour faire du web ? » La question revient sans cesse, et la plupart des réponses alignent une liste de noms sans dire à quoi chacun sert. Or la programmation web ne se déroule pas à un seul endroit : elle se répartit entre trois lieux d’exécution distincts, et c’est cette répartition qui détermine le langage, bien plus que les préférences de chacun.

Trois lieux d’exécution, trois familles de langages

Où le code s’exécuteCe qu’il y faitLangages concernés
Dans le navigateur du visiteurRéagir aux actions, modifier la page, appeler le serveurJavaScript, et ce qui se compile vers lui
Sur le serveurCalculer, authentifier, interroger les données, produire la réponsePHP, Python, JavaScript, Java, C#, Ruby, Go
Dans la base de donnéesStocker, retrouver, agrégerSQL

Cette division explique tout le reste. Un langage n’est pas « meilleur » qu’un autre dans l’absolu : il occupe une case. Et une seule de ces cases n’admet pratiquement aucun choix.

Côté navigateur : JavaScript, et rien d’autre

C’est le point que les listes de langages masquent en mettant tout sur le même plan. JavaScript est le seul langage que les navigateurs exécutent nativement. Ce n’est pas une question de popularité, c’est une contrainte technique : il n’y a pas d’alternative à choisir.

Ce qui existe en revanche, ce sont des langages qui se transforment en JavaScript avant d’être envoyés au navigateur. TypeScript est le plus répandu : il ajoute un système de types à JavaScript et se compile vers lui. On n’écrit pas autre chose que du JavaScript, on l’écrit autrement.

Une seconde voie existe, WebAssembly, qui permet d’exécuter dans le navigateur du code compilé depuis d’autres langages. Elle sert aux traitements lourds, calcul, image, jeu, et ne remplace pas JavaScript pour construire une interface.

HTML et CSS ne sont pas des langages de programmation

La confusion est constante et elle a des conséquences pratiques, parce qu’elle fait croire qu’apprendre le HTML, c’est apprendre à programmer.

  • HTML est un langage de balisage. Il décrit la structure d’un document : voici un titre, voici un paragraphe, voici un tableau. Il ne calcule rien et ne décide rien.
  • CSS, pour Cascading Style Sheets, soit feuilles de style en cascade, est un langage de présentation. Il attribue une apparence aux éléments décrits par le HTML.

Ni l’un ni l’autre n’exprime de logique : pas de condition véritable, pas de boucle, pas de variable manipulable au sens d’un programme. Ils restent indispensables, et ils s’apprennent en premier, mais les confondre avec de la programmation conduit à une mauvaise surprise au moment d’aborder JavaScript.

Côté serveur : là où le choix existe vraiment

  • PHP domine très largement le web côté serveur, principalement parce que WordPress, Drupal et la plupart des CMS reposent dessus. Les mesures de parts d’usage, comme celles publiées par les observatoires de technologies web, s’obtiennent en analysant les en-têtes et les signatures des sites : elles ne couvrent donc que les sites qui révèlent leur pile technique.
  • Python s’est imposé par ses cadres applicatifs et par sa proximité avec le traitement de données. Il est multiparadigme, et non « tout objet » comme on le lit souvent.
  • JavaScript côté serveur, avec Node.js, permet d’écrire les deux côtés dans le même langage. C’est son argument principal, et il vaut surtout pour une petite équipe.
  • Java et C# occupent le logiciel d’entreprise, où la stabilité sur dix ans compte plus que la rapidité d’écriture.
  • Go s’est installé sur les services à forte charge, pour sa simplicité de déploiement et sa gestion de la concurrence.

Le choix se fait rarement sur le langage seul : il se fait sur le cadre applicatif et sur l’écosystème qui va avec, comme nous l’expliquons dans notre article sur les raisons de choisir Symfony.

SQL, le langage que personne ne cite et que tout le monde utilise

SQL n’est pas un langage généraliste : on ne construit pas une application avec. C’est un langage de requête, conçu pour décrire ce que l’on veut obtenir plutôt que la manière de l’obtenir.

C’est pourtant lui qui décide de la vitesse de la plupart des sites. Une page lente est bien plus souvent une requête mal écrite ou un index manquant qu’un langage serveur trop lent. C’est l’une des causes les plus fréquentes que nous détaillons dans notre article sur l’optimisation des performances d’un site.

Front-end, back-end, full-stack : le vocabulaire

Ces trois mots reviennent dans toutes les offres et dans toutes les formations. Ils ne désignent pas des langages mais des périmètres, et ils recoupent exactement la répartition décrite plus haut.

  • Front-end : ce qui s’exécute dans le navigateur. Structure, apparence, interactions. Le métier consiste autant à traiter l’accessibilité et la compatibilité entre navigateurs qu’à écrire du JavaScript.
  • Back-end : ce qui s’exécute sur le serveur. Logique métier, authentification, accès aux données, sécurité. C’est là que se jouent les questions de fiabilité.
  • Full-stack : les deux. Utile dans une petite structure, où la même personne suit une fonctionnalité de bout en bout, moins pertinent dans une grande équipe spécialisée.

Un débutant a tout intérêt à choisir un côté et à le tenir quelques mois. Apprendre les deux en parallèle donne l’impression d’avancer deux fois plus vite et produit en général deux compétences inutilisables.

Par quoi commencer, concrètement

  1. HTML et CSS, sans y passer des mois. Quelques jours suffisent pour être capable de structurer et de mettre en forme une page.
  2. JavaScript, parce qu’il est incontournable dans le navigateur et qu’il ouvre aussi le serveur avec Node.js.
  3. Un langage serveur et son cadre applicatif, choisi selon ce que vous voulez faire : PHP pour travailler avec les CMS, Python pour les données, Java ou C# pour l’entreprise.
  4. SQL, en parallèle, dès que vous manipulez des données réelles.

La communication entre le navigateur et le serveur mérite d’être apprise tôt, car c’est elle qui structure toute application moderne : nous en décrivons les principes dans notre article sur la création d’une API REST performante.

Ce que le choix du langage ne décidera pas

La réserve vaut d’être posée, parce que le débat sur « le meilleur langage » occupe une place sans rapport avec son importance réelle.

  • La performance. Sur un site ordinaire, le langage n’est presque jamais le goulot. Les requêtes en base, le poids des images et le nombre d’appels réseau pèsent des ordres de grandeur de plus.
  • La sécurité. Aucun langage ne protège d’une faille de logique ou d’une dépendance abandonnée. Les mesures qui comptent sont les mêmes partout, comme le montre notre article sur la sécurisation d’un site WordPress.
  • Votre employabilité. Elle dépend de la capacité à livrer et à maintenir, pas du nom du langage sur la ligne du CV. Les langages s’apprennent ensuite en quelques semaines.

Questions fréquentes sur la programmation web


Quel langage apprendre pour la programmation web ?

HTML et CSS d’abord, rapidement, puis JavaScript qui est le seul langage exécuté nativement par les navigateurs. Ensuite un langage serveur choisi selon l’objectif : PHP pour les CMS, Python pour les données, Java ou C# pour l’entreprise.


Le HTML est-il un langage de programmation ?

Non. Le HTML est un langage de balisage : il décrit la structure d’un document sans exprimer de logique, ni condition ni boucle. Il reste indispensable, mais l’apprendre n’est pas apprendre à programmer.


Que signifie CSS ?

Cascading Style Sheets, soit feuilles de style en cascade. C’est un langage de présentation qui attribue une apparence aux éléments structurés par le HTML, et non un langage de programmation.


Peut-on utiliser un autre langage que JavaScript dans un navigateur ?

Pas directement. On peut écrire dans un langage qui se compile vers JavaScript, comme TypeScript, ou exécuter du code compilé via WebAssembly pour les traitements lourds. Dans les deux cas, JavaScript reste au centre de l’interface.


Le choix du langage influence-t-il la vitesse d'un site ?

Très peu sur un site ordinaire. Les requêtes en base de données, le poids des images et le nombre d’appels réseau pèsent bien davantage que le langage serveur retenu.