Why shouldn't I use "Hungarian Notation"?

hungarian-notation, language-agnostic, naming-conventions

Solution

Most people use Hungarian notation in a wrong way and are getting wrong results.

Read this excellent article by Joel Spolsky: Making Wrong Code Look Wrong.

In short, Hungarian Notation where you prefix your variable names with their `type` (string) (Systems Hungarian) is bad because it's useless.

Hungarian Notation as it was intended by its author where you prefix the variable name with its `kind` (using Joel's example: safe string or unsafe string), so called Apps Hungarian has its uses and is still valuable.

Problem

I know what Hungarian refers to - giving information about a variable, parameter, or type as a prefix to its name. Everyone seems to be rabidly against it, even though in some cases it seems to be a good idea. If I feel that useful information is being imparted, why shouldn't I put it right there where it's available? See also: Do people use the Hungarian naming conventions in the real world?

Original source

Related problems