Sobes.tech
Junior

Quelle est la différence entre la programmation impérative et déclarative?

sobes.tech IA

Réponse de l'IA

La programmation impérative décrit comment faire quelque chose, en indiquant une séquence d'étapes. La programmation déclarative décrit ce quil faut faire, sans entrer dans les détails de l'implémentation.

  • Impérative : Se concentre sur le flux de contrôle et les changements d'état du programme. Vous indiquez à l'ordinateur, comment passer d'un état à un autre.
  • Déclarative : Se concentre sur la logique des calculs, sans décrire explicitement le flux de contrôle. Vous indiquez à l'ordinateur, ce que vous souhaitez atteindre.

Exemples :

  • Approche impérative pour rechercher des nombres pairs dans un slice :

    // Approche impérative
    func findEvenImperative(nums []int) []int {
    	var evenNums []int // Déclarons la variable pour le résultat
    	for _, num := range nums { // Parcourons les éléments
    		if num%2 == 0 { // Vérifions la condition
    			evenNums = append(evenNums, num) // Ajoutons au résultat
    		}
    	}
    	return evenNums // Renvoyons le résultat
    }
    
  • Approche déclarative (par exemple, en utilisant SQL, qui est de nature déclarative) :

    Bien que Golang lui-même soit en grande partie impératif, l'idée de la déclarativité est illustrée par une requête à une base de données :

    -- Approche déclarative (SQL)
    SELECT *
    FROM numbers
    WHERE number % 2 = 0;
    

    Ici, nous déclarons simplement que nous voulons obtenir toutes les lignes de la table numbersnumber est pair, sans décrire comment la base de données doit le faire précisément (par exemple, quel algorithme de recherche ou de filtrage utiliser).

Les principales différences peuvent être résumées dans le tableau :

Propriété Programmation impérative Programmation déclarative
Focus Comment faire (séquence d'étapes) Quoi faire (résultat souhaité)
Flux de contrôle Géré explicitement par le programmeur Caché ou abstrait
État Modifié activement Moins explicitement modifié ou immuable
Exemples C, Java, Python (principalement), Go SQL, HTML, CSS, React (JSX)

En Go, on utilise souvent le style impératif, mais les concepts de déclarativité apparaissent dans certains approches, par exemple, lors de l'utilisation de bibliothèques pour travailler avec des données ou dans la description de configurations.