Great thread on the Lightweight Languages
list about language macros. Todd Proebsting suggests that using macros is akin to creating a language construct and therefore should be reserved for people that create langauges. Paul Graham observes that the issue is not with macros, but that
The real truth is that macros don't scale to stupider groups. A group
of one idiot can easily render his code unreadable with badly designed
I've been playing with an idea for some time that would password protect languages features. Want to write a multi-threaded program? Someone has to give you a password to access java.lang.Thread. The use of hashtables as method parameters? Forget about it. You need the password.
The LL1 discussion is happening at two levels - the purely technical issue of are macros and embedded languages a good thing. The second issue is about the intersection of languages features with teams. Graham's got it right when you are working in the rareified space of the super smart (or alone).
Todd Proebsting finishes me up with:
... While it would be wonderful to have a large team of such talented individuals over a long period of time, it has been my experience that groups tend, over time, towards mediocrity or worse no matter how good they started out.
Not much more to say.