|(language, convention)||Hungarian Notation - A linguistic convention requiring one
or more letters to be added to the start of variable names
to denote scope and/or type.|
Hungarian Notation is mainly confined to Microsoft Windows
programming environments, such as Microsoft C, C++ and
Visual Basic. It was originally devised by Charles Simonyi, a Hungarian, who was a senior programmer at
Microsoft for many years. He disliked the way that names in
C programs gave no clue as to the type, leading to frequent
According to legend, fellow programmers at Microsoft, on
seeing the convoluted, vowel-less variable names produced by
his scheme, said, "This might as well be in Greek - or even
Hungarian!". They made up the name "Hungarian notation"
(possibly with "reverse Polish notation" in mind).
Hungarian Notation is not really necessary when using a modern
strongly-typed language as the compiler warns the
programmer if a variable of one type is used as if it were
another type. It is less useful in object-oriented programming languages such as C++, where many variables are
going to be instances of classes and so begin with "obj".
In addition, variable names are essentially only comments,
and thus are just as susceptible to becoming out-of-date and
incorrect as any other comment. For example, if a signed
short int becomes an unsigned long int, the variable
name, and every use of it, should be changed to reflect its
A variable's name should describe the values it holds. Type
and scope are aspects of this, but Hungarian Notation
overemphasises their importance by allocating so much of the
start of the name to them. Furthermore, type and scope
information can be found from the variable's declaration.
Ironically, this is particularly easy in the development
environments in which Hungarian Notation is typically used.
Simonyi's original monograph.
Microsoft VB Naming Conventions.