Développement 375194
Qu'est-ce qu'un paradigme de programmation exactement ?
Lors de la programmation, la complexité est toujours l'ennemi. Les programmes d'une grande complexité, avec de nombreuses pièces mobiles et des composants interdépendants, semblent initialement impressionnants. Cependant, la capacité de traduire un problème du monde réel en une solution simple ou élégante nécessite une compréhension plus approfondie.
En développant une application ou en résolvant un problème simple, on se dit souvent « Si j'avais eu plus de temps, j'aurais écrit un programme plus simple ». La raison en est que nous avons fait un programme avec une plus grande complexité. Moins nous avons de complexité, plus il est facile de déboguer et de comprendre. Plus un programme devient complexe, plus il est difficile d'y travailler.
La gestion de la complexité est la principale préoccupation d'un programmeur . Alors, comment les programmeurs gèrent-ils la complexité ? Il existe de nombreuses approches générales qui réduisent la complexité d'un programme ou le rendent plus gérable. L'une des principales approches est un paradigme de programmation. Plongeons-nous dans les paradigmes de programmation !
Introduction aux paradigmes de programmation
Le terme paradigme de programmation fait référence à un style de programmation. Il ne fait pas référence à un langage spécifique, mais plutôt à la façon dont vous programmez.
Il existe de nombreux langages de programmation bien connus, mais tous doivent suivre une stratégie lors de leur mise en œuvre. Et cette stratégie est un paradigme.
Les types de paradigmes de programmation

source : ionos
Paradigme de programmation impératif
Le mot « impératif » vient du latin « impero » qui signifie « je commande ».
C'est le même mot dont nous tirons « empereur », et c'est tout à fait approprié. Vous êtes l'empereur, vous donnez à l'ordinateur de petits ordres à faire et il les fait un à la fois et vous rend compte.
Le paradigme se compose de plusieurs déclarations, et après l'exécution de toutes, le résultat est stocké. Il s'agit d'écrire une liste d'instructions pour dire à l'ordinateur quoi faire étape par étape.
Dans un paradigme de programmation impérative, l'ordre des étapes est crucial, car une étape donnée aura des conséquences différentes selon les valeurs courantes des variables lors de l'exécution de l'étape.
Pour illustrer, trouvons la somme des dix premiers nombres naturels dans l'approche du paradigme impératif.
Exemple en C :
#include #include <stdio.h> int main() { int sum = 0; sum += 1; sum += 2; sum += 3; sum += 4; sum += 5; sum += 6; sum += 7; sum += 8; sum += 9; sum += 10; printf("The sum is: %d\n", sum); //prints-> La somme est 55 return 0; }
Dans l'exemple ci-dessus, nous commandons à l'ordinateur quoi faire ligne par ligne. Enfin, nous stockons la valeur et l'imprimons.
1.1 Paradigme de la programmation procédurale
La programmation procédurale (qui est également impérative) permet de scinder ces instructions en procédures.
REMARQUE : Les procédures ne sont pas des fonctions. La différence entre eux est que les fonctions renvoient une valeur, contrairement aux procédures. Plus précisément, les fonctions sont conçues pour avoir des effets secondaires minimaux et produisent toujours la même sortie lorsqu'elles reçoivent la même entrée. Les procédures, en revanche, n'ont pas de valeur de retour, leur objectif principal est d'accomplir une tâche donnée et de provoquer un effet secondaire souhaité.
Un bon exemple de procédures serait la boucle for bien connue. Le but principal de la boucle for est de provoquer des effets secondaires et ne renvoie pas de valeur.
Pour illustrer, trouvons la somme des dix premiers nombres naturels dans l'approche du paradigme procédural.
Exemple en C :
#include #include <stdio.h> int main() { int sum = 0; int i =0; for(i=1;i<11;i++){ sum += i; } printf("The sum is: %d\n", sum); //prints-> The sum is 55 return 0; }
Dans l'exemple ci-dessus, nous avons utilisé une simple boucle for pour trouver la somme des dix premiers nombres naturels.
Les langages qui supportent le paradigme de la programmation procédurale sont :
- C
- C++
- Java
- PHP
- Pascal
La programmation procédurale est souvent le meilleur choix lorsque :
- Il s'agit d'une opération complexe qui inclut des dépendances entre les opérations, et lorsqu'il y a un besoin de visibilité claire des différents états de l'application ('SQL loading', 'SQLloaded', 'Network online', 'No audio hardware', etc.). Ceci est généralement approprié pour le démarrage et l'arrêt de l'application.
- Le programme est très unique et peu d'éléments ont été partagés.
- Le programme est statique et ne devrait pas changer beaucoup au fil du temps.
- Aucune ou seulement quelques fonctionnalités ne devraient être ajoutées au projet au fil du temps.
Pourquoi devriez-vous envisager d'apprendre le paradigme de la programmation procédurale ?
- C'est simple.
- Un moyen plus simple de suivre le déroulement du programme.
- Il a la capacité d'être fortement modulaire ou structuré.
- Nécessite moins de mémoire, c'est efficace.
1.2 Paradigme de la programmation orientée objet
La POO est le paradigme de programmation le plus populaire en raison de ses avantages uniques tels que la modularité du code et la capacité d'associer directement des problèmes métier réels en termes de code.
Les principales caractéristiques de la programmation orientée objet incluent la classe, l'abstraction, l'encapsulation, l'héritage et le polymorphisme.
Une classe est un modèle ou un plan à partir duquel des objets sont créés.
source : Javatpoint
Les objets sont des instances de classes, les objets ont des attributs/états et des méthodes/comportements. Les attributs sont des données associées à l'objet tandis que les méthodes sont des actions/fonctions que l'objet peut effectuer.
L'abstraction sépare l'interface de l'implémentation et l'encapsulation est le processus de masquage de l'implémentation interne d'un objet.
L'héritage permet de représenter et d'affiner les relations hiérarchiques. Le polymorphisme permet à des objets de différents types de recevoir le même message et de répondre de différentes manières.
Pour illustrer, trouvons la somme des dix premiers nombres naturels dans l'approche du paradigme orienté objet.
Exemple en Java :
public class Main { public static void main(String[] args) { Addition obj = new Addition(); obj.num = 10; int answer = obj.addValues(); System.out.println("The sum is = "+answer); //prints-> La somme est 55 } } class Addition { int sum =0; int num =0; int addValues(){ for(int i=1; i <=num;i++){ sum += i; } return sum; } }
Nous avons une classe Addition qui a deux états, sum et num qui sont initialisés à zéro. Nous avons également une méthode addValues() qui retourne la somme des numnombres.
Dans la Main classe, nous avons créé un objet, obj de classe Addition. Ensuite, nous avons initialisé le num à 10 et nous avons appelé addValues() la méthode pour obtenir la somme.
Langages prenant en charge le paradigme orienté objet :
- Python
- Ruby
- Java
- C++
- C#
La programmation orientée objet est mieux utilisée lorsque :
- Vous avez plusieurs programmeurs qui n'ont pas besoin de comprendre chaque composant.
- Il y a beaucoup de code qui pourrait être partagé et réutilisé.
- Le projet devrait changer souvent et être complété au fil du temps.
Pourquoi devriez-vous envisager d'apprendre le paradigme de la programmation orientée objet ?
- Réutilisation du code par héritage.
- Flexibilité grâce au polymorphisme.
- Haute sécurité grâce à l'utilisation de mécanismes de masquage de données (Encapsulation) et d'Abstraction.
- Amélioration de la productivité du développement logiciel : un programmeur orienté objet peut assembler de nouveaux objets logiciels pour créer des programmes entièrement nouveaux.
- Développement plus rapide : la réutilisation permet un développement plus rapide.
- Coût de développement réduit : La réutilisation des logiciels réduit également le coût de développement. En règle générale, davantage d'efforts sont consacrés à l'analyse et à la conception orientées objet (OOAD), ce qui réduit le coût global de développement.
- Logiciel de meilleure qualité : Un développement plus rapide du logiciel et un coût de développement réduit permettent d'utiliser plus de temps et de ressources pour la vérification du logiciel. La programmation orientée objet a tendance à produire des logiciels de meilleure qualité.
1.3 Approche de traitement parallèle
Le traitement parallèle est le traitement des instructions de programme en les divisant entre plusieurs processeurs.
Un système de traitement parallèle permet à de nombreux processeurs d'exécuter un programme en moins de temps en les divisant.
Langages prenant en charge l'approche de traitement parallèle :
- NESL (l'un des plus anciens)
- C
- C++
L'approche de traitement parallèle est souvent la meilleure utilisation lorsque :
- Vous disposez d'un système doté de plusieurs processeurs ou processeurs multicœurs que l'on trouve couramment sur les ordinateurs aujourd'hui.
- Vous devez résoudre certains problèmes de calcul qui prennent des heures/jours à résoudre même avec l'avantage d'un microprocesseur plus puissant.
- Vous travaillez avec des données du monde réel qui nécessitent une simulation et une modélisation plus dynamiques.
Pourquoi devriez-vous envisager d'apprendre l'approche de traitement parallèle ?
- Accélère les performances.
- Souvent utilisé en Intelligence Artificielle. Apprenez-en plus ici : Intelligence artificielle et traitement parallèle par Seyed H. Roosta.
- Cela facilite la résolution des problèmes, car cette approche ressemble à une méthode de division pour mieux régner.
Voici quelques ressources utiles pour en savoir plus sur le traitement parallèle :
- Programmation parallèle en C par Paul Gribble
- Introduction à la programmation parallèle avec MPI et OpenMP par Charles Augustine
- INTRODUCTION À LA PROGRAMMATION PARALLÈLE AVEC MPI ET OPENMP par Benedikt Steinbusch
2. Paradigme de programmation déclarative
La programmation déclarative est un style de construction de programmes qui exprime la logique d'un calcul sans parler de son flux de contrôle.
La programmation déclarative est un paradigme de programmation dans lequel le programmeur définit ce qui doit être accompli par le programme sans définir comment il doit être implémenté. En d'autres termes, l'approche se concentre sur ce qui doit être réalisé au lieu d'indiquer comment y parvenir.
Imaginez le président pendant l'état de l'union déclarant ses intentions pour ce qu'il veut qu'il se passe. D'autre part, la programmation impérative serait comme un gérant d'une franchise McDonald. Ils sont très impératifs et, par conséquent, cela rend tout important. Ils disent donc à chacun comment tout faire jusqu'aux actions les plus simples.
Ainsi, les principales différences sont que l'impératif vous dit comment faire quelque chose et le déclaratif vous dit quoi faire.
2.1 Paradigme de programmation logique
Le paradigme de la programmation logique adopte une approche déclarative de la résolution de problèmes. Il est basé sur une logique formelle.
Le paradigme de la programmation logique n'est pas constitué d'instructions, mais plutôt de faits et de clauses. Il utilise tout ce qu'il sait et essaie de trouver le monde où tous ces faits et clauses sont vrais.
Par exemple, Socrate est un homme, tous les hommes sont mortels, et donc Socrate est mortel.
Voici un programme Prolog simple qui explique l'exemple ci-dessus :
man(Socrates). mortal(X) :- man(X).
La première ligne peut être lue "Socrate est un homme", c'est une clause de base , qui représente un fait simple.
La deuxième ligne peut être lue, "X est mortel si X est un homme"; en d'autres termes, "Tous les hommes sont mortels ". '(Le symbole ":-'', parfois appelé tourniquet , se prononce "si''.) Nous pouvons tester le programme en posant la question :
?- mortal(Socrates).
C'est-à-dire "Est-ce que Socrate est mortel ?" (Le "?-" est l'invite de l'ordinateur pour une question). Prolog répondra "yes". Une autre question que nous pouvons nous poser est la suivante :
?- mortal(X).
C'est-à-dire "Qui (X) est mortel ?", Prolog répondra " X = Socrates''.
Pour vous donner une idée, John est le père de Bill et Lisa. Mary est la mère de Bill et Lisa. Maintenant, si quelqu'un pose une question comme "qui est le père de Bill et Lisa ?" ou "qui est la mère de Bill et Lisa?" nous pouvons apprendre à l'ordinateur à répondre à ces questions en utilisant la programmation logique.
Exemple en Prolog :
/*On définit les faits de l'arbre généalogique*/ father(John, Bill). father(John, Lisa). mother(Mary, Bill). mother(Mary, Lisa). /On posera des questions à Prolog*/ ?- mother(X, Bill). X = Mary
Exemple expliqué :
father(John, Bill).
Le code ci-dessus définit que John est le père de Bill.
Nous demandons à Prolog quelle valeur de X rend cette affirmation vraie ? X devrait être Marie pour que la déclaration soit vraie. Il répondraX = Mary
?- mother(X, Bill). X = Mary
Langages prenant en charge le paradigme de la programmation logique :
- Prolog
- Absys
- ALF (langage de programmation fonctionnelle de logique algébrique)
- Alice
- Ciao
Le paradigme de la programmation logique est souvent la meilleure utilisation lorsque :
- Si vous envisagez de travailler sur des projets tels que la démonstration de théorèmes, les systèmes experts, la réécriture de termes, les systèmes de types et la planification automatisée.
Pourquoi devriez-vous envisager d'apprendre le paradigme de la programmation logique ?
- Facile à implémenter le code.
- Le débogage est facile.
- Comme il est structuré à l'aide d'instructions vrai/faux, nous pouvons développer les programmes rapidement en utilisant la programmation logique.
- Comme il est basé sur la réflexion, l'expression et la mise en œuvre, il peut également être appliqué dans des programmes non informatiques.
- Il prend en charge des formes spéciales de connaissances telles que les connaissances de niveau méta ou d'ordre supérieur, car elles peuvent être modifiées.
2.2 Paradigme de la programmation fonctionnelle
Le paradigme de la programmation fonctionnelle est à l'honneur depuis un certain temps maintenant à cause de JavaScript, un langage de programmation fonctionnelle qui a gagné en popularité récemment.
Le paradigme de la programmation fonctionnelle a ses racines dans les mathématiques et il est indépendant du langage. Le principe clé de ce paradigme est l'exécution d'une série de fonctions mathématiques.
Vous composez votre programme de fonctions courtes. Tout le code est dans une fonction. Toutes les variables sont étendues à la fonction.
Dans le paradigme de la programmation fonctionnelle, les fonctions ne modifient aucune valeur en dehors de la portée de cette fonction et les fonctions elles-mêmes ne sont affectées par aucune valeur en dehors de leur portée.
Pour illustrer, identifions si le nombre donné est premier ou non dans le paradigme de la programmation fonctionnelle.
Exemple en JavaScript :
function isPrime(number){ for(let i=2; i<=Math.floor(Math.sqrt(number)); i++){ if(number % i == 0 ){ return false; } } return true; } isPrime(15); //returns false
Dans l'exemple ci-dessus, nous avons utilisé Math.floor() des Math.sqrt() fonctions mathématiques pour résoudre efficacement notre problème. Nous pouvons résoudre ce problème sans utiliser les fonctions mathématiques JavaScript intégrées, mais pour exécuter le code efficacement, il est recommandé d'utiliser les fonctions JS intégrées.
number est limitée à la fonction isPrime() et elle ne sera affectée par aucune valeur en dehors de sa portée. isPrime() La fonction produit toujours la même sortie lorsqu'elle reçoit la même entrée.
REMARQUE : il n'y a pas de boucles for et while dans la programmation fonctionnelle. Au lieu de cela, les langages de programmation fonctionnels reposent sur la récursivité pour l'itération (Bhadwal, 2019).
Langages prenant en charge le paradigme de la programmation fonctionnelle :
- Haskell
- OCamlComment
- Scala
- Clojure
- Racket
- JavaScript
Le paradigme de la programmation fonctionnelle est souvent mieux utilisé lorsque :
- Travailler avec des calculs mathématiques.
- Travailler avec des applications visant la concurrence ou le parallélisme.
Pourquoi devriez-vous envisager d'apprendre le paradigme de la programmation fonctionnelle ?
- Les fonctions peuvent être codées rapidement et facilement.
- Les fonctions à usage général peuvent être réutilisables, ce qui conduit à un développement logiciel rapide.
- Les tests unitaires sont plus faciles.
- Le débogage est plus facile.
- L'application globale est moins complexe car les fonctions sont assez simples.
2.3 Approche de traitement de la base de données
Cette méthodologie de programmation est basée sur les données et leur mouvement. Les instructions de programme sont définies par des données plutôt que par le codage en dur d'une série d'étapes.
Une base de données est une collection organisée d'informations structurées, ou de données, généralement stockées électroniquement dans un système informatique. Une base de données est généralement contrôlée par un système de gestion de base de données (SGBD) ("What is a Database", Oracle, 2019).
Pour traiter les données et les interroger, les bases de données utilisent des tables . Les données peuvent alors être facilement accessibles, gérées, modifiées, mises à jour, contrôlées et organisées.
Une bonne approche de traitement de base de données est cruciale pour toute entreprise ou organisation. En effet, la base de données stocke tous les détails pertinents sur l'entreprise, tels que les dossiers des employés, les enregistrements des transactions et les détails des salaires.
La plupart des bases de données utilisent le langage SQL (Structured Query Language) pour écrire et interroger des données.
Voici un exemple d'approche de traitement de base de données (SQL):
CREATE DATABASE personalDetails; CREATE TABLE Persons ( PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) );
La PersonID colonne est de type int et contiendra un entier. Les colonnes LastName, FirstName, Address et City sont de type varchar et contiendront des caractères, et la longueur maximale de ces champs est de 255 caractères.
L'approche de traitement de base de données est souvent mieux utilisée lorsque :
- Travailler avec des bases de données pour les structurer.
- Accéder, modifier, mettre à jour les données de la base de données.
- Communiquer avec les serveurs.
Les bases de données sont-elles importantes et pourquoi devriez-vous envisager d'apprendre l'approche de traitement des bases de données ?
- Une quantité massive de données est gérée par la base de données : contrairement aux feuilles de calcul ou à d'autres outils, les bases de données sont utilisées pour stocker quotidiennement une grande quantité de données.
- Précis : Avec l'aide de fonctionnalités intégrées dans une base de données, nous pouvons facilement valider.
- Mise à jour facile des données : les langages de manipulation de données (DML) tels que SQL sont utilisés pour mettre à jour facilement les données d'une base de données.
- Intégrité des données : à l'aide de contrôles de validité intégrés, nous pouvons garantir la cohérence des données.
Conclusion
Les paradigmes de programmation réduisent la complexité des programmes. Chaque programmeur doit suivre une approche paradigmatique lors de la mise en œuvre de son code. Chacun a ses avantages et ses inconvénients.
Si vous êtes débutant, je voudrais suggérer d'apprendre d'abord la programmation impératif (procédural), orientée objet et la programmation fonctionnelle. Comprenez leurs concepts et essayez de les appliquer dans vos projets.
Par exemple, si vous apprenez la programmation orientée objet, les piliers de la programmation orientée objet sont l'encapsulation, l'abstraction, l'héritage et le polymorphisme. Apprenez-les en le faisant. Cela vous aidera à comprendre leurs concepts à un niveau plus profond, et votre code sera moins complexe et plus efficace.
Je vous encourage fortement à lire plus d'articles connexes sur les paradigmes de programmation. J'espère que cet article vous a aidé.
N'hésitez pas à me faire savoir si vous avez des questions.
Web 1.0 fait référence à la première étape de l'évolution du World Wide Web. Auparavant, il n'y avait que quelques créateurs de contenu dans le Web 1.0 avec une grande majorité d'utilis...
L'informatique quantique, un domaine autrefois cantonné aux laboratoires de recherche et aux théories abstraites, émerge aujourd'hui comme une des technologies les plus prometteuses du XXIe siècle...
Laissez votre commentaire :

@oshuya
Horizon High Tech Community

@SUSANO-LOURD
Dev Web & Data analyste
Tous les langages ont plusieurs points de convergence et divergence. Un Dev devrait plutôt, au regard du langage qu'il code, de comprendre le chaque type de ce paradigme. Qui bien entendu, ne dépend pas de lui, mais du langage qu'il utilise. Félicitations Jordan Lulebo pour cet article !

chansardo
Horizon High Tech Community
Il suffit de bien faire l'étude de son programme avant de se lancer ensuite penser à la simplicité de son programme au lieu de faire un truc chargé et bizarre a comprendre,souvent les belles choses sont très simples et magnifiques

chansardo
Horizon High Tech Community
Bel article
🏃🏃🏃🏃😅😅😅😅🔥🔥🔥🔥😅Plongeons nous dans les paradigmes de programmation
Sublime est le terme que je pense faire correspondre à cet article !
Merci et force à toi @jordanlulebo
Sinon j'ai une question à ce propos ... Est-il faisable de développer un programme avec au moins deux paradigmes en même temps ou non ?