(This came about from having to deal with the ‘never rewrite’ schtick spolsky used which was unfortunately interpreted as dogma)
Yeah, my favorite part of this article is the examination of how an anecdote and a hundred thousand pageviews turns into gospel truth.
Today, cross site scripting attacks can be eliminated by the language runtime, if it is aware of the difference between safe and unsafe strings.
And if you’re working in a language that doesn’t have safe and unsafe string types? (They still exist.) Besides, security was just one small example. I used to be a doubter, but then I spent a few years actually developing fogbugz. The Hungarian notation was sometimes helpful, sometimes meh, but never a burden.
The names were usually pretty natural. If you had a bug, you’d call it bug. If you had two, you might call them bugOld and bugNew. Certainly better names than new and old. Stripping all the prefixes would simply make the code worse. Some people would use newBug and oldBug? Is Hungarian suffix notation so superior?
With some regularity byte vs block mixups occur in the openbsd kernel file system code, which I attribute in part to variables and functions not clearly identifying themselves. Hungarian notation would fix this, but we’re too smart to need that, so bugs come and bugs go, and life goes on.