http://qs321.pair.com?node_id=265113


in reply to Macros, LFSPs and LFMs

Well, the two viewpoints seem to be saying, "If you a programmer enough rope, he'll hang himself" and "If you a give a programmer enough rope, he'll build a rope bridge". (No slight intended: "she" works equally well in those.) I'm solidly in the latter camp.

Part of the problem is that people automatically think of macros as the way they were implemented in C. But that's just one implementation, and not a good one at that. Perl source filters already give you a way to wreak worse havoc, but I haven't seen anybody abuse them, except for entertainment.

The argument that "If the language had macros, everybody's code would look different" is a red herring, in my opinion. Most code already looks different in different shops, and it's not that big of a deal. The shops that like to re-invent wheels and "do things their way" do the same thing with goofy class libraries now. If you try to handcuff them by taking away language features, it just gets worse, not better, because then they come up with different workarounds.