La notation hongroise n'a de sens que dans des langues sans types définis par l'utilisateur. Dans un cadre moderne fonctionnelle ou OO-langue, vous serait d'encoder de l'information au sujet de la "nature" de la valeur dans le type de données ou de la classe plutôt que dans le nom de la variable.
Plusieurs réponses référence Joels article. Notez cependant que son exemple est en VBScript, qui n'a pas en charge les classes définies par l'utilisateur (pour un long temps au moins). Dans un langage de types définis par l'utilisateur vous permettrait de résoudre le même problème par la création d'un HtmlEncodedString-type, puis laissez la méthode d'Écriture acceptez seulement que. Dans un langage statiquement typé, le compilateur va attraper n'importe quel codage d'erreurs, dans un typées dynamiquement, vous obtiendrez une exception d'exécution - mais en tout cas, vous êtes protégé contre l'écriture clair des chaînes de caractères. Hongrois notations tourne juste le programmeur dans un type humain-vérificateur, avec est le genre de travail qui est généralement mieux traités par le logiciel.
Joel fait la distinction entre systèmes "à la hongroise" et "apps hongrois", où "les systèmes de hongrois" code pour les types intégrés comme int, float et ainsi de suite, et "apps hongrois" encode "types", qui est plus élevée au niveau de méta-informations sur la variable beyound le type de machine, Dans un OO ou moderne fonctionnelle de la langue vous pouvez créer des types définis par l'utilisateur, donc il n'y a pas de distinction entre type et de la "nature" dans ce sens - à la fois peut être représentée par le type de système et des applications ("apps", le hongrois est tout aussi superflue que les "systèmes" hongrois.
Donc, pour répondre à votre question: les Systèmes hongrois ne serait utile que dans un dangereux, langage faiblement typé, où par exemple l'affectation d'un float valeur à une variable int va planter le système. La notation hongroise a été spécialement inventé dans les années soixante pour l'utilisation en BCPL, un joli langage de bas niveau qui ne fait rien de tout type de vérification à tous. Je ne pense pas que n'importe quelle langue en général utilisés aujourd'hui ont ce problème, mais la notation vécu comme une sorte de culte du cargo de programmation.
Apps hongrois a du sens, si vous travaillez avec une langue sans types définis par l'utilisateur, comme héritage VBScript ou les premières versions de VB. Peut-être aussi les premières versions de Perl et PHP. Encore une fois, de l'utiliser dans un cadre moderne languge est pur culte du cargo.
Dans toute autre langue, le hongrois est juste moche, redondant et fragile. Il répète des informations déjà connues du type de système, et vous ne devrait pas se répéter. Utilisez un nom descriptif pour la variable qui décrit l'objectif de cette instance spécifique du type. Utilisez le type de système d'encoder des invariants et des méta-informations sur des "types" ou des "classes" de variables - ie. les types.
L'idée générale de Joels article - pour avoir un code erroné regarde mal - est un très bon principe. Cependant une meilleure protection contre les insectes est-à - lorsque cela est possible - avoir un mauvais code pour être détecté automatiquement par le compilateur.