Tomasz Zielonka wrote: > On the other hand, what do you get by allowing ( as an indentifier? > > Significant whitespace is a good thing, but the way it is designed in > Python it has some costs. Can't you simply acknowledge that?
One can admit this but what is it worth or how should those costs be evaluated? This problem is unsolvable because we cannot agree on a common standard of the value of PL design. All we can do is making the decisions more visible. Obviously Lispers want the boundary between application-level and interpreter-level programming as low as possible. It is still present but making it invisible and expressing language semantics through the language is regarded of high value. This makes application level meta-programming as simple as it could be. Others tend to separate the concerns/boundaries more strictly and standardize the language while implementing all features regarded necessary for application-level programming in a huge opaque runtime and a vast amount of libraries. Application level metaprogramming is restricted to runtime-reflection, metaclass-protocols, annotations etc. From this point of view a programming language is basically an interface to a virtual machine that is much like an operating system i.e. it supports basic functions and hides complexity. This is the way Java and Python have gone. The benefit of the latter approach lies not so much in creating new language capabilities but considering the language as just another application where requirement engineering and carefull design can be done without sprawling in every possible direction ( see Forth as an example for this tendency ). This way standard libraries ( "batteries included" ) become almost equal important and "language-designer" is a job that is not once be done. This is roughly my interpretation of GvRs "design view" on PLs that Xah Lee obviously doesn't get - Xah is not important here, because he never gets anything right but here are enough Lispers with quite some working brain cells who seem to think that the best thing to do is giving a programmer unlimited programming power. Concluding remark: I'm not sure I want to defend one point of view all the way long. Although not being a Lisper myself I can clearly see that the DSL topic is hot these days and the pendulum oscillates into the direction of more liberty. I have mixed feelings about this but I have my own strong opinion of how those *can* fit into the CPython design space and a working model that is to be published soon. As with the dialectic double negation there is no return to a former position. -- http://mail.python.org/mailman/listinfo/python-list