Hungarian Notation (notation hongroise)
La notation hongroise ou la Hungarian Notation est une convention de nommage dans laquelle un identifiant est précédé de préfixes indiquant son type ou son but. Ces préfixes, souvent de deux à trois lettres, fournissent des informations sur le type de données de l'identifiant, sa portée ou son utilisation dans le programme, ce qui permet de rapidement identifier son rôle en lisant son nom. La Hungarian Notation a été popularisée par Charles Simonyi, un informaticien d'origine hongroise (d'où le nom).
Exemple de notation
Imaginons un code où la Hungarian Notation est utilisée pour nommer des variables :
Nom | Description |
---|---|
iCount | i indique qu'il s'agit d'un entier (integer) représentant un compteur. |
strNom | str montre que c'est une chaîne de caractères (string) représentant un nom. |
pValeur | p indique qu'il s'agit d'un pointeur (pointer). |
bActif | b pour un booléen (boolean), indiquant si quelque chose est actif ou non. |
Types de préfixes courants
Les préfixes utilisés varient selon les développeurs ou les entreprises, mais certains sont assez répandus :
Préfixe | Description |
---|---|
i | pour les entiers (int) |
f | pour les nombres à virgule flottante (float) |
str | pour les chaînes de caractères (string) |
b | pour les booléens (bool) |
p | pour les pointeurs (pointer) |
arr | pour les tableaux (array) |
Avantages
La Hungarian Notation est utile dans des contextes où le langage ne vérifie pas les types de données de façon stricte, comme dans certains langages C, car elle rend le code plus explicite et aide à repérer rapidement les types de variables. Elle peut aussi être utile dans des environnements avec des contraintes fortes de type, pour éviter des erreurs de logique en rappelant le type d'un identifiant.
Inconvénients
Avec l'apparition de langages modernes et typés statiquement (comme C#, Java,...), où les outils et environnements de développement affichent les types des variables, l'utilité de la Hungarian Notation a diminué. Aujourd'hui, elle est moins courante, car elle peut alourdir le code en le rendant moins lisible, surtout pour les développeurs non familiers avec les préfixes spécifiques.
Dans les environnements modernes, on préfère souvent des noms d'identifiants explicites qui décrivent la fonction ou le rôle de la variable plutôt que son type.