@Blue Ink: That's interesting. Macros form a pure functional programming language, right? A pure substitution system.

@Vaccano: That's a great example. I work in a language that has the WITH statement and while it looks nice on the surface because it can remove a little repetition it puts a burden of semantic analysis on the programmer - in particular with nested WITH statements. The cons outweigh the pros in my opinion.

Some people even prefix their variables in a certain way to clarify their scope; a practice that should be left to the compiler services behind the editor doing semantic analysis of the code. Hungarian notation should not be a naming practice but a service-assisted view of the code.