[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Macros Make Me Mad

Title: Macros Make Me Mad

Despite the fact that many folks I respect swear by macros, I've yet to feel comfortable with them in a language.  Since LL2, I've been trying to figure out what my resistance is based on.

Let me say that I think that macros are beautiful and powerful and all those good things.  Let's not quibble about that.

Defining a macro is often an act of defining a language construct and implementing it.  Reasonably or not, I hold language constructs to a higher standard than, say, a mere function definition.  Specifically,

* I expect language constructs to be implemented perfectly.  I must trust my compiler.
* I expect language constructs to be documented precisely.  I must trust the documentation.

I know precious few programmers who document well at all, much less to the level I expect in a language definition, and I know precious few programmers who implement and test their own code to the level expected in a compiler.  Therefore, I'd expect more problems from macros than benefits.

Are these technical reasons?  No.  But they are practical reasons, and ultimately I program practically.  Macros may be great for individuals and small groups, but I just don't believe that they scale for these non-technical reasons.