Les différents paradigmes de programmation
Toutes les situations de ton quotidien peuvent être abordées d’une manière différente. Tu peux choisir de les aborder positivement ou négativement. En programmation, c’est pareil. Il existe plusieurs façons d’approcher la programmation informatique et de traiter les solutions aux problèmes. Ce sont les paradigmes de programmation. Nous allons décrire ici 3 paradigmes de programmation. Un que vous connaissez très bien puisque vous l'utilisez depuis l'année dernière quand vous programmez en Python : la programmation impérative.
Mais il existe d'autres types de paradigme de programmation, et nous en décrirons 2 : la programmation fonctionnelle, et la programmation objet.
1. Programmation impérative
source :ionos.fr
Qu'est ce que la programmation impérative ?
La programmation impérative (du latin imperare = ordonner) est le paradigme de programmation le plus ancien. Ce paradigme définit un programme comme une séquence clairement définie d’instructions informatiques.
Le code source des langages impératifs énonce donc des séquences d’ordres, déterminant quand l’ordinateur doit exécuter quelle action pour atteindre le résultat souhaité. Les valeurs utilisées dans les variables sont alors transformées en durée d’exécution du programme. Pour piloter les ordres, des structures de contrôle, telles que des boucles ou embranchements, sont intégrées au code.
Le paradigme de programmation impérative est très concret et fonctionne en étroite collaboration avec le système. Le code est aisément compréhensible, mais il nécessite l'écriture de nombreuses ligne de code source.
De nos jours, de nombreux langages de programmation se fondent sur le paradigme de programmation impérative.
Cela tient, d’une part, au fait que cette approche correspond au mode de programmation initial. De l’autre, au fait que le paradigme impératif présente des avantages pratiques par rapport aux autres modèles.
Comparativement, ces langages sont faciles à apprendre dans la mesure où le code se lit comme un mode d’emploi, étape par étape. En ce sens, au cours de leur formation professionnelle, les programmeurs commencent généralement leur apprentissage par un langage impératif.In [1]:1
C'est un code assez explicite, car nous en avons l'habitude.
On commence par évaluer le nombre d'éléments de notre liste, que l'on stocke dans une variable longueur
Puis on teste si la liste est vide, et si c'est le cas on affiche le message correspondant
Sinon, on affecte à la variable mini le premier élément de la liste, puis on teste pour tous les éléments de la liste si cet élément est plus petit que mini.
Si c'est le cas, la variable mini prend comme nouvelle valeur cet élément.
Et une fois la boucle terminée, le programme affiche la valeur de la variable mini.
Exemples de langages de programmation impérative :
C, Pascal, Python, COBOL, etc ...
Attention :
En programmation impérative, nous utilisons des fonctions, qui ne sont que des suites d'instructions informatiques regroupées dans un bloc. Mais cela ne suffit pour prétendre utiliser le paradigme fonctionnel que nous allons décrire ci-dessous :
2. Programmation fonctionnelle
Ce paradigme prend son origine dans le langage mathématique traitant des fonctions. Une fonction, dans son incarnation informatique, accepte des données et produit des données. Une fonction peut être soit primitive, soit formée par une composition de fonctions.
Il n'y a pas de séparation entre données et programmes : une fonction est un objet de première classe sur lequel d'autres fonctions peuvent opérer. Nous ne rentrerons pas plus en détail dans les caractéristiques précise de la programmation fonctionnelle. Pour ceux qui veulent s'initier à la programmation fonctionnelle sur Python, vous pouvez consulter ce lien :
Tutoriel pour apprendre la programmation fonctionnelle en Python
Si l'on reprend notre exemple de recherche du minimum dans une liste, nous aurions ceci en programmation fonctionnelle sur Python :
Explications :
Dans la version impérative, la fonction incrémente une variable globale (a). La valeur de la variable est donc modifiée quand nous exécutons la fonction.
Dans la version fonctionnelle, la fonction prend un argument (a), puis renvoie une valeur (a+1). Le code ne dépend pas de données se trouvant à l'extérieur de la fonction courante et il ne modifie pas des données à l'extérieur de cette fonction.
3. Programmation Orientée Objet
Programmer avec un langage oreitné-objet amène le programmeur à identifier les acteurs qui composent un problème, puis à déterminer ce qu'est et ce que doit savoir chaque acteur. En regroupant les aspects communs puis en les spécialisatn, le programmeur établit une hiérarchie de classe. Nous détaillerons en détail le fonctionnement inhérent à la programmation orientée objet dans le chapitre suivant.
Exemples de langages de programmation orientée objet :
C++, C#, Java, Python, etc ...
Nous pouvons en Python utiliser les classes pour répondre à notre exemple de recherche de minimum dans une liste :
En effet, lors de la création de notre liste, on crée en fait un objet qui est une instance de la classe liste. Et cette classe possède de nombreuses méthodes publiques dont la méthode sort() qui ordonne (de manière croissante) les éléments de la liste. Le minimum de cette liste est donc forcément le premier élément.
Nous allons maintenant revenir sur ce vocabulaire, et expliciter davantage cette manière de programmer en objet ...