Sean Middleditch <elanthis / users.sourceforge.net> wrote:
: language such as Ruby, would require far less code on the interpreter's
: end (no need for a compiler to be built in), and IMHO would result in
: more readable code that is just as powerful and dynamic.  

You'll have to prove that assertion.

: Yes, I see that eval() is very power in the fact that it can dynamically
: generate executable code, and I believe that it is fun (I love playing
: with stuff like that myself).  But is it really necessary?  When one
: wants a very small runtime that is very fast, is that power worth
: embedding an entire compiler?  

You're working on game scripting, right?  Let's take the Crash Bandicoot
series as a data point.  The game is scripted in a full LISP
interpreter.  It runs, and fast, on a 33-MHz PSX chip with 3 M RAM.  What
are the numbers you have to fit in?

It's easy to say "I can't figure out how to write this fast, therefore no
one can and you don't need it."

: And, to be honest, if you're developing a
: large-scale (possibly commercial grade) application, is fun or
: robustness/efficiency more important?

Fun is.  Robustness and efficiency do not exist in a vacuum, and if your
programmers can't find the fun, then the project is doomed anyway.  And
whatever your school is teaching you, far more small, fun hacks grow into
complex, critical, *successful* applications than are designed that way.

: Some features are fun, and possibly useful, but I still don't at all see
: eval() as being necessary, or even wise.  Sorry.  ^,^  Perhaps I'm just
: too old and set in my ways.

http://sourceforge.net/people/viewprofile.php?user_id=26193

I'm fairly certain you are bound by state and federal statues not to claim
that you are 'too old and set in my ways' before the age of 20.
BTW, I used to live in Ann Arbor.  Nice place.

As for eval(), if you cannot generate code and execute it within a
program, then you are incapable of metaprogramming - writing programs that
write programs.  And while switching editors or methodologies may give you
a 2- or 5-fold increase in productivity, only by incorporating the machine
into the development process can you find the 1,000-fold increase that we
are looking for next.  Just a data point.

In the general case, well, there is a general question of what you
percieve as necessary and how you restrict others who see differently.  It
looks like your background is in static Algol spawn, and as Paul Graham
says "programmers learn not to want what their language cannot provide."
And I would contend it's a bad idea *not* to expose as much power and
flexibility to the programmer, because languages that talked down to
people have historically been bad, or at least non-beloved: PL/1, Ada,
COBOL.

Lastly, exising features for speed is often a fool's errand.  Speed comes
from profilers, not compilers and small run-times.