Re: OT: Language Design
- Posted by Derek Parnell <ddparnell at bigpond.com> May 31, 2004
- 540 views
Pete Lomax wrote: > http://www.paulgraham.com/popular.html [snip] > > Derek, I don't understand why on earth you regurgitated this trash; it > goes against everything you have previously said. I respectfully disagree with this opinion of yours. It may be that I have simply not made myself clear in the past. I apologize if that is the case. Can you point me to where I may have implied differently and I'll try to clarify things, if possible. > Flexibility is one thing, no protection whatsoever is another. In which sentence(s) did I advocate "no protection whatsoever"? My understanding of what Mr. Graham was saying is that a certain class of programmers (real experts, which he calls 'hackers' and not crackers) need tools which allow them to achieve their goals without unnecessary encumburances. And that, when language designers are creating a programming language, they need to be aware of who is their target audience for the language. A language with training-wheels (such as LOGO) is suitable for some purposes that languages that run close to the metal (such as C) are not suitable for, and visa versa. My take on a language like Euphoria is that it has moved a bit too much to the protectionist, camp-mother philosophy, and that some minor releasing of potential for **experts** would be a good idea. For example, Euphoria does remove the need for memory pointers, but still allows their usage for those coders that really want them. Euphoria already supports a subset of controlled goto idioms : 'call', 'while', 'for', 'return', and 'exit', yet hasn't implemented other controlled goto idioms ('next', 'try-catch', and 'retry'). As for uncontrolled goto, I think that if somebody is good enough to use them, then let them. I know I'm not good enough, so I would never use them in Euphoria. Why should my skill level or philosophical outlook be justification for restricting the abilites of other coders? Mr. Graham did say "How can the language designer know what the programmer is going to need to do?" While this is a true statement, it is not implying that every language should enable a coder to do anything. Instead, the language designer would do well to state their goals for the language and what restrictions are in place, and why. I believe that for the most part, RDS has done this with Euphoria. Both RDS and Euphoria is evolving into better entities and I'm truely looking forward to version 2.5, 2.6, 2.7, ... -- Derek Parnell Melbourne, Australia