Question 1Le Next.js que tu rencontres dans les livres pour débutants est-il un langage, une bibliothèque ou un framework ?
Les différences entre langages de programmation, et les frameworks et bibliothèques
Cet article fait partie du cours Les bases de l'informatique, qui construit depuis zéro les connaissances informatiques pratiques indispensables pour programmer et faire du vibe coding.
Python et JavaScript diffèrent par la façon d'écrire, pas par ce que tu fais. Des schémas vont jusqu'à distinguer une bibliothèque d'un framework par le sens de l'appel.
Cet article traite des différences entre langages de programmation et des frameworks et bibliothèques.
Tu sauras dire si un nom comme React ou Next.js est un langage ou quelque chose d'écrit dans un langage.
Il couvre Python et JavaScript, plus quatre noms : React, Next.js, Django et Flutter.
Ce qu'est un langage de programmation — une syntaxe différente, un contenu identique
Un langage de programmation (le vocabulaire et les règles d'écriture du code source) va de pair avec un environnement d'exécution.
Ce qui diffère, c'est la syntaxe (les règles qui fixent avec quels signes et dans quel ordre s'écrit une instruction).
| Même rôle | Python | JavaScript |
|---|---|---|
| Donner un nom à une valeur | a = 3 | let a = 3; |
| Séparer selon une condition | if a > 2: | if (a > 2) { |
| Afficher à l'écran | print(a) | console.log(a) |
Python marque un bloc par le : en fin de ligne et l'indentation, JavaScript par ; et { }.
Sur les quatre lignes qui suivent, les trois premières sont écrites à la manière de JavaScript et la dernière à celle de Python.
let a = 3;
let b = 4;
console.log(a + b);
console.log(len([a, b]))
Après le 7 affiché à la troisième ligne, l'exécution s'arrête à la dernière.
Même quand tu veux faire la même chose, l'environnement d'exécution ne sait pas lire une écriture différente.
Les langages diffèrent par l'écriture, pas par ce qu'ils font
Un langage de programmation, c'est l'ensemble des règles de signes et d'ordre des mots pour écrire du code.
Donner un nom à une valeur, séparer selon une condition et répéter existent dans tous les langages ; ce qui diffère, c'est seulement l'écriture et l'environnement d'exécution qui la lit.
Bibliothèques et frameworks — l'appel va dans des sens opposés
Une bibliothèque (library) comme un framework sont des ensembles de programmes écrits par d'autres, et tu les utilises pour écrire moins toi-même.
Désigner par son nom une fonction d'un autre programme pour la faire s'exécuter, c'est l'appeler (call).
La différence entre les deux, c'est le sens de cet appel.
| Ce qu'il faut regarder | Bibliothèque | Framework |
|---|---|---|
| Terme anglais | library | framework |
| Contenu | Des programmes qui ont une fonction précise | Le déroulement de toute l'application |
| Rapport avec ton propre code | Tu l'appelles depuis ton propre code | Tu ajoutes du code à des endroits fixés |
| Sens de l'appel | Ton propre code → bibliothèque | Framework → ton propre code |
| Ce qui décide du déroulement | Ton propre code | Framework |
- Ce que l'environnement d'exécution lance, c'est ton propre code (app.js)
- Décide du déroulement de tout le programme
- Appelle la bibliothèque là où il en a besoin
- Ne s'exécute que lorsqu'il est appelé
- Rend la main à ton propre code une fois terminée
- Ce que l'environnement d'exécution lance, c'est le framework
- Le déroulement de toute l'application y est déjà écrit
- Appelle ton propre code à des moments fixés
- Ne s'exécute que lorsqu'il est appelé
- L'endroit où l'écrire et son nom sont imposés
Dans le cadre du bas, l'intérieur et l'extérieur sont inversés, et c'est le framework qui appelle ton propre code.
Ce qui est à l'extérieur décide du déroulement d'ensemble.
Appeler une bibliothèque tient en une ligne, au lieu des dizaines que tu écrirais toi-même.
La seule différence, c'est qui a écrit ce traitement.
Une bibliothèque qui doit être installée avant d'être appelée s'arrête sur une erreur si tu l'appelles sans l'avoir installée.
Les guides les appellent aussi « paquets » ou « modules », et leur fonctionnement est traité dans l'article « La gestion de paquets ».
Un framework d'application web porte le déroulement qui va de la réception de la requête au renvoi de la réponse.
- Reçoit la requête arrivée du navigateur
- Regarde l'URL et cherche le traitement correspondant
- Assemble la réponse à partir du résultat obtenu et la renvoie
- Ne s'exécute que lorsqu'il est appelé
- Lit et écrit la base de données et produit un résultat
- Renvoie au framework le résultat produit
Les trois éléments extérieurs sont assurés par le framework, donc tu ne les écris pas.
La raison d'utiliser un framework, c'est de ne pas avoir à écrire l'extérieur toi-même.
Ton propre code ne s'exécute qu'à la troisième étape, et le framework se charge de l'avant et de l'après.
Quelle URL exécute quel morceau de code s'écrit, là aussi, à un endroit imposé.
Appeler, ou être appelé
Une bibliothèque comme un framework sont des programmes écrits par d'autres, et la différence est de savoir lequel se trouve à l'extérieur.
La bibliothèque est appelée depuis l'intérieur de ton propre code, tandis que le framework appelle ton propre code depuis l'extérieur et décide du déroulement d'ensemble.
Ce que sont React, Next.js, Django et Flutter — classer les noms en trois catégories
Tu lis les noms rencontrés dans un cours en classant chacun comme langage, bibliothèque ou framework.
Next.js n'est pas un langage : c'est un framework écrit en JavaScript.
- Le code des écrans qui tournent dans le navigateur
- Le code côté serveur qui tourne sur node
- Sépare les fichiers de page par URL
- Tu peux aussi y écrire le traitement côté serveur
- Construit l'écran avec React
- Assemble les éléments d'un écran
- Tu peux l'appeler sans utiliser Next.js
- Le code d'analyse de données et d'automatisation
- Le code des traitements côté serveur
- La correspondance entre URL et traitements
- La lecture et l'écriture de la base de données
- Le mécanisme de connexion
- Le code des applications mobiles
- Les écrans et le comportement d'une application mobile
- D'un seul code vers iPhone comme vers Android
React est une bibliothèque qui assemble les éléments d'un écran, et Next.js un framework qui utilise ce React et va jusqu'au traitement côté serveur.
Flutter est un framework pour créer des applications mobiles, et il s'écrit dans un langage appelé Dart.
Pouvoir créer, à partir d'un seul code, une application qui tourne sur plusieurs OS s'appelle le multiplateforme (cross-platform).
Aucun de ces noms n'est un langage : chacun s'utilise en combinaison avec ton propre code.
Le même nom, Next.js, apparaît du côté de l'appareil comme du côté du serveur.
C'est parce que son périmètre change selon qu'il construit seulement l'écran ou qu'il porte aussi le traitement côté serveur.
Même depuis une application mobile faite avec Flutter, ce à quoi elle se connecte reste le même serveur public.
Le nom est-il un langage, ou quelque chose écrit dans un langage
Next.js, React, Django et Flutter ne sont pas des langages : chacun est écrit dans un langage.
Chercher dans quel langage il s'écrit t'indique si c'est un langage en soi, et chercher le sens de l'appel t'indique si c'est une bibliothèque ou un framework.
Par quel langage commencer — décide selon que ton projet a besoin ou non d'un écran dans le navigateur
Le langage qu'un navigateur sait lire est JavaScript, donc le côté écran (le frontend) se fait en JavaScript.
Le côté traitement (le backend) tourne sur le serveur, donc tu peux l'écrire dans l'un ou l'autre.
Si tu as besoin d'un écran dans le navigateur, cette partie est réglée : ce sera JavaScript.
Si tu n'as pas besoin d'écran, commence par Python, qui compte beaucoup de bibliothèques externes pour l'analyse de données et l'automatisation.
Les frameworks et bibliothèques de la rangée du bas viennent après le choix du langage : ce ne sont pas eux que tu choisis en premier.
Quel que soit ton point de départ, les mécanismes que tu acquiers sont les mêmes.
Les deux parcours se rejoignent au même endroit.
Ce que tu réapprends, c'est l'écriture et les noms des bibliothèques utilisées dans ce langage.
Choisis celui qui est le plus proche de ce que tu veux créer, et avance avec lui.
Une fois ton projet décidé, le langage l'est aussi
Le langage se décide par ce que tu veux créer, pas par préférence.
S'il te faut un écran qui tourne dans le navigateur, cette partie est en JavaScript ; sinon, tu peux commencer par Python, et pour un deuxième langage, tu ne réapprends que l'écriture et les noms des bibliothèques.
Vérification des connaissances
Répondez à chaque question une par une.
Question 2Quelle affirmation sur la différence entre une bibliothèque et un framework est correcte ?
Question 3Pourquoi le code du côté écran d'une application web s'écrit-il en JavaScript ?