Ola,
Pensez-vous qu'il soit encore utile d'utiliser la notation hongroise avec les éditeurs modernes qui fournissent (en hint) toutes les infos sur la variable utilisée ? Si oui, à quelles fins ?
Merci.
8-)
JJE
Version imprimable
Ola,
Pensez-vous qu'il soit encore utile d'utiliser la notation hongroise avec les éditeurs modernes qui fournissent (en hint) toutes les infos sur la variable utilisée ? Si oui, à quelles fins ?
Merci.
8-)
JJE
Peut-être pour s'apercevoir plus facilement d'un problème de capacité, signe, etc. wNewOne := iOldOne ?
La notation hongroise (ainsi que certaines syntaxes un peu bizarres, comme écrire un test sous la forme "if (0=a)" au lieu de "if (a=0)" ) ont été définies et avaient toutes leur justification pour le langage C d'origine.
En effet, ce dernier ne faisant pas la vérification des types, on ajoutait les informations de type dans le nom des variables pour savoir ce qu'on manipulait et détecter les erreurs plus facilement. C'était plus ou moins indispensable car le compilateur ne détectait pas les incohérences.
Mais aujourd'hui, les langages typés et compilés font la vérification des types. Si tu te trompes tu as une erreur au plus tard à la compilation.
Pour moi, la notation hongroise n'a plus de sens depuis longtemps. D'ailleurs la plupart des guides de style des langages modernes la banisse.
Moi, je trouve indispensable de préfixer mes variables d'un caractère pour indiquer le type. D'un coup d'oeil, je sais de quel type sont les variables que je vois. Pas besoin d'attendre qu'une info-bulle daigne s'afficher, ou de devoir faire un Ctrl-clic pour aller à sa définition. Pour moi, c'est un gain de temps énorme.
Il suffit de se référer à Object Pascal Style Guide : Delphi is created in California, so we discourage the use of notation, except where required in header translations...
Je préfixe rarement, je préfère des noms de variable explicite, c'est vrai que pour les variables temporaires entre conversion Numérique<->Chaîne, le pré-fixage me tente parfois
En fait, le nom me suffit la plupart du temps pour trouver le type même pas besoin de préfixe, mais j'ai BCP d'objet !
Déjà, utilise F Field, A Argument, T Type, j'en vois pas d'autres
Ah si, L Local, ce dernier rarissime mais l'ayant vu dans classes.pas*, quand je veux bien différencier le Paramètre, le Membre interne, la propriété et une variable temporaire, je l'utilise par manque d'imagination
*classes.pas ne respecte pas toujours la charte, sur le if then par exemple !