On Thu, 3 Oct 2002 02:23:00 +0900
ptkwt / shell1.aracnet.com (Phil Tomson) wrote:

[snip]

> They've apparently implemented a Tcl interpreter in _hardware_.
> Does Tcl have a virtual machine (I didn't think it did)?  Perhaps they've 
> implemented a Tcl virtual machine in hardware (I suppose it would be 
> called a 'real' machine then since it wouldn't be 'virtual' anymore).
> 
> Ruby in hardware anyone?  That could speed things up quite a bit.  Or how 
> about Parrot in hardware?
> 
> Phil

Hardware VMs for Lisp were basically put out of business by faster general purpose workstations.  

Modern JIT VMs can be plenty efficient and stable.  A coworker of mine implemented some symmetric block ciphers in VisualWorks Smalltalk.  The result was 3% faster than RSA Security's reference DLLs implemented in C.  

Why?  Memory management.  A good generational Garbage Collector with well optimized parameters is like having a Buffer Cache for free.  You avoid overhead from malloc() and free() by having the program pre-allocate and recycle memory.  Only, with GC, there is no programmer effort involved.  

[Warning, some Preaching to the Choir below]

We have been at the point for some years now where raw processor speed is more than enough for VMs to do just fine with most applications.  Profile.  Optimize.  Run with good GC.  (Does Python still use reference counts?)  Be smart about memory management.  (Frivolous Object creation.)

Ruby on the VisualWorks VM anyone?  (Seriously, this could be a dandy project.  VisualWorks VM is one of the best VMs out there, bar none.)  

Peter Kwangjun Suk