On Oct 16, 2006, at 8:40 AM, Jeffrey Schwab wrote:

> 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.

Yes, indeed.

Wirth's criticism is probably valid in the context of developing code  
for tax accountants. But in the context of developing code intended  
to pass the Turing test, his criticism is completely fatuous. A well- 
know AI researcher once said something like: if our programs can't  
modify themselves, then they will never do anything very interesting.  
Was is Shank? Was it Minsky? I can't remember.

Regards, Morton