sigh replying non-technical people sucks. @hcorion, @jibal, etc, listen, you 
are ignorant + arrogant, which makes you the worst people.

compilers impose restirctions, you are forced to use macros, which are just 
kludge, but in a pure interpreted language (PicoLisp for example) you can 
simply use functions, which you can debug, apply, etc in opposite to macros. 
Such as this Common Lisp do macro, written as function in PicoLisp (a pure 
interpreted and dynamic language):

(de do "Args"
    

(bind (mapcar car (car "Args"))
    

(for "A" (car "Args")
    (set (car "A") (eval (cadr "A"))) )
(until (eval (caadr "Args"))
    (run (cddr "Args"))

(for "A" (car "Args")
    (and (cddr "A") (set (car "A") (run @))) ) )

(run (cdadr "Args")) ) )

Note that there are almost no penalties of using eval in PicoLisp.

And nothing stops you to write optimized and efficient code in interpreter 
environments. And one more thing, the above example obviously uses S-expression 
or lets say Lisp-like syntax, it has certain advantages, such as ease of 
parsing it, and together with S-expressions and interpretation, equalivance of 
code and data is formal and realistic in PicoLisp, check the web resources for 
reasos...

This one is a very, very wise and beautiful quote, from author of Ruby, 
Yukihiro Matsumoto,

"Often people, especially computer engineers, focus on the machines. They 
think, "By doing this, the machine will run fast. By doing this, the machine 
will run more effectively. By doing this, the machine will something something 
something." They are focusing on machines. But in fact we need to focus on 
humans, on how humans care about doing programming or operating the application 
of the machines. We are the masters. They are the slaves."

I was brainwashed just like you, I thought Nim in Action is right about how bad 
are dynamism and interpreters, but thank God I realised the truth when I looked 
around and see all those people use bash, dynamic mecahnism, etc in eveything 
and I started to know the reality of the concepts.

Compilers simply discards many things just for the sake of execution speed, but 
those "many things" are what makes programmer's life easier and "truely" reduce 
development time. Many (if not all) major game engines use and contain JS, 
Python-like languages (such as Boo in Unity).

The real execution speed concept is well- and carefully-designed algorithm, 
relying on compiler optimization is for stupid programmers.

Reply via email to