On Tue, 28 Aug 2001, Sean Middleditch wrote: > But should this eval() be built into the language itself as a core > component? I can where, perhaps if one wished to play with full > meta-programming, it would be necessary, but neither do I see a need for > meta programming outside of the academic field. or are there some examples > to prove me wrong? Again, I'd rather be proven wrong and corrected now than > just be wrong for a long time to come. ^,^ This article has already been mentioned once in this thread, but: http://www.paulgraham.com/lib/paulgraham/sec.txt I think he says something like 25% of the code is macros (which definitely counts as metaprogramming), and this is in a highly commercial setting. Now, metaprogramming doesn't have to be run-time, or require eval - something like AspectJ (ok, those guys don't like me to call it metaprogramming, but...) works as a preprocessor on Java code, which isn't really that different from how Lisp works, since macros are expanded at (roughly) compile-time anyway. As for whether there's a "need" for it, there are absolutely some problems that become much, much easier at the meta-level (Ruby's attr_accessor method is a very simple case in point; something like the GOODS object database is a more complex one). "Need"? Insert standard Turing-completeness disclaimer here. > C/C++ is my most familiar language actually. I haven't looked into Algol at > all, although I'm slightly familiar with COBOL. I've studied newer > languages a lot more though, especially lately. By "Algol-spawn" he was referring to the loose family of C/Java/etc, usually in contrast to Lisp. > In any event, I find that rarely is there anything I need to do in C/C++ > that isn't possible. Sometimes just a bit hard to do. ^,^ Sure. If it really comes down to it, you can just use C to write a Lisp interpreter... or Ruby ;-).