On Sat, 09 Dec 2006 14:40:07 -0800, webraviteja wrote: > Personally, I find it strange that we, who argued so many times for > dynamic typing, the need for expressiveness and that it is OK to trust > the programmer with power ("we are all adults here" argument) while > arguing against relatively restrictive languages like Java find macros, > a chaotic and disruptive concept.
Why? The benefit of expressiveness and power isn't monotonically increasing. Look at us: we're all communicating in a common language, English, and we all agree on syntax and grammar. Now, I could be a lot more expressive, and language could be a lot more powerful, if I could define my own language where "You are a poopy-head" was in fact a detailed and devastatingly accurate and complete explanation for why Python was a better language than Lisp. You, however, not being an expert in my far greater expressive language, would see none of that, and would be under the mistaken impression that I was insulting you. So it is good that English restricts the expressiveness and power of the syntax and grammar. While we're talking English, we can both understand each other, and in fact people who redefine words and ignore the common meaning of them are often covering weaknesses in their arguments. The same goes for programming languages. Extra expressiveness comes at the cost of reduced communication between programmers -- the code becomes harder to read for those who haven't already learnt how to read it. So there is no contradiction in the positions that "we are all adults here" and "macros give too much power". The first is a design decision, the second is a trade-off, just like the lack of C-style pointers in Python is a trade-off. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list