Les paradigmes de programmation
Un paradigme, c'est une façon de penser et d'organiser son code. Les trois plus courants : impératif/procédural, orienté objet (POO) et fonctionnel, et pourquoi la plupart des langages les mélangent.
Les paradigmes de programmation
Devant un même problème, il existe plusieurs façons de structurer son code. Ces grandes manières de penser s'appellent des paradigmes. Un paradigme n'est pas un langage : c'est un style, une façon d'organiser ses idées. On va voir les trois qu'on croise le plus.
# Un paradigme, c'est quoi ?
Une manière de penser et d'organiser son code. Comme il existe plusieurs styles de cuisine ou plusieurs genres de musique, il existe plusieurs styles de programmation. Un même besoin (« gérer un panier d'achat ») peut se coder de plusieurs façons selon le paradigme choisi.
Un paradigme n'est pas un langage : un langage applique un ou plusieurs paradigmes. Certains n'en imposent qu'un seul, la plupart en mélangent plusieurs.
# Impératif / procédural
Le plus intuitif : tu décris comment faire, étape par étape, comme une recette. Une suite d'instructions qui modifient l'état du programme, regroupées en fonctions (ou procédures).
poser le pain
étaler le beurre
poser le jambon
refermerposer le painétaler le beurreposer le jambonrefermerC'est le style historique (le C), et la fondation de tout : même les autres paradigmes reposent dessus quelque part.
# Orienté objet (POO)
On organise le code autour d'objets : des « boîtes » qui regroupent des données et les comportements qui vont avec. On modélise le problème comme des choses qui interagissent.
un CompteBancaire a un solde
et sait faire : deposer(), retirer()un CompteBancaire a un soldeet sait faire : deposer(), retirer()C'est le paradigme dominant dans l'industrie (C#, Java). Ses piliers (encapsulation, héritage, polymorphisme) sont détaillés dans les objets en C#.
# Fonctionnel
On raisonne en termes de fonctions qui transforment des données, sans modifier ce qui existe (on préfère créer du nouveau plutôt que muter). On dit quoi obtenir, pas comment le calculer.
prendre la liste des prix
garder ceux au-dessus de 10
en faire la sommeprendre la liste des prixgarder ceux au-dessus de 10en faire la sommemap, filter, reduce incarnent cet esprit : des transformations enchaînées, prévisibles, sans effet de bord surprise.
# En vrai, on mélange
Très peu de langages sont « purs ». La plupart sont multi-paradigmes : tu choisis le style qui colle au problème. Le C# est orienté objet avant tout, mais fait du fonctionnel (LINQ, lambdas) et de l'impératif sans sourciller. JavaScript aussi.
Et ces trois-là ne sont pas les seuls : il existe le paradigme logique, réactif, et d'autres encore. Ce sont juste les plus répandus.
# À retenir
- Un paradigme = une façon de penser et d'organiser son code, pas un langage.
- Impératif / procédural : décrire les étapes, comme une recette.
- Orienté objet : organiser autour d'objets (données + comportements) ; le paradigme dominant.
- Fonctionnel : transformer des données via des fonctions, sans muter l'état.
- La plupart des langages sont multi-paradigmes ; ces trois sont les plus courants, il en existe d'autres.
C'est parce que la POO domine l'industrie qu'apprendre un langage orienté objet en premier est un choix malin (voir ma démarche).