Steven D'Aprano <[EMAIL PROTECTED]> writes: [Extensibility of syntax (via Lisp like macros)] > In the real world, programmers aren't lone wolves stalking the > programming landscape doing their own thing. Whether we're talking > open source projects maintained by volunteers, or commercial > software teams, standardized languages are a good thing. It is a > good thing that not every hare-brained idea that some random > programmer comes up with can be implemented as part of the core > language.
Everything from functions over classes and class hierachies to macros are just ways to create your own personal language, to create abstractions. That's the whole point of high level languages: Say it your way. Create your (domain specific) vocabulary. (By the way: You must really hate Guido for allowing operator overloading in Python. It's exactly the same argument, nearly the same wording you used, that others used against operator overloading. You have to really love Java. :)) > It is a good thing that when Fred decides to stop contributing to an > open source project (or leave the company), other people can read > his code without having to learn his Uber-Special Custom Macro > Extended Language. You don't need macros for this kind of problem -- it's a really old problem, independend of language. There are assembler, C, Fortran, Java, Haskell, Lisp and many more hackers who write code, that's really hard to understand for other people. Heck, even in natural language there are many people who say or write things others have really trouble to understand. So what? Big class hierachies are always hard work to understand, even the very best designs of mankind. There is much Python code out there, that's really hard to understand. So Python is a bad language? No, quite not. So why do you think, Common Lisp or Macros are a bad thing? What's the difference (from the perspective of understanding) between a function foo and a macro bar? Both just transform their inputs. It's just another form of abstraction and from time to time really quite helpful. -- Stefan. -- http://mail.python.org/mailman/listinfo/python-list