Rich Morin wrote:
> FYI, here is a quote which seems relevant to Ruby:
> 
>   Although the possibility of program modification at
>   run-time was heralded  as one of the great consequences
>   of John von Neumann's profound idea of storing
>   program and data in the same memory, it quickly turned
>   out to enable a dangerous technique and to constitute an
>   unlimited source of pitfalls.  Program code must remain
>   untouched, if the search for errors was not to become a
>   nightmae.  Program's self-modification was recognized as
>   an extremely bad idea.

That's a gross misinterpretation of the facts.  Not on your part -- 
thanks for posting something interesting -- but on the part of many 
self-styled pundits.  The fact that self-modifying code has its own set 
of problems doesn't meant that the code should not be pursued at all, 
any more than we should have stopped coding altogether the first time we 
realized there were such things as bugs.

Not only does self-modifying code still offer the benefits originally 
envisioned, but those benefits are finally being realized.  The Java 
HotSpot VM is a good example of real-world use.  When we are working 
with high-level languages to write portable code, we usually don't mind 
if the machine code changes on the fly according to provably valid rules.