Squeak Speed (Was: A few low-level Pentium II performance measurements)

Marcus Denker marcus at ira.uka.de
Mon Feb 22 12:45:47 UTC 1999

> Doesn't all this go completely against Smalltalk? I mean, I recently found 
> myself digging up in the implementation of the CPU... what would really had 
> to be well designed is the CPU, and I shouldn't be looking inside it to see 
> what's going on, so the CPU is not being thought of as an object properly.

This problen shows up everytime you try to hide implementations (software,
hardware, whatever). 
We all have learned to hide implementations (of objects, modules,
etc..)  behind a well defined interface, because then it is possible to 
change the implementation of a module without the need to change the software 
that uses it. In this case it is possible to make the CPU faster, without the 
need to recompile all the applications.    

But we have a problem: An improvement for one customer makes it
worse for another. 

The first idea for a solution is simple: Develop better interface 
Specify not only the interface, but even performance and
use of memory, and simply everything someone could be interested in,
up to the point where we would loose all freedom of changing
the implementation. 
Hey, we want to hide the implementation, not document it!
So, this is no option.      

It is very simple: hiding the implementation is impossible!

(1) The "classical" solution: 

"implementation hiding is a good idea in theory, but in practice
not always possible".

Different module-implementations for different custumers. 
Thats how it is done today. If a customer is not satisfied with the
implementation, he can do one himself. 
You want to have a really fast Smaltalk-machine?
Build a new CPU! Need fast privat methods in Squeak? Build a new VM....

(2)Open Implementations

"hiding the implementation behind a interface is impossible, but the
use of modules with defined interfaces has shown it's value in practice."

The idea behind OI is to make the change of the implementation explicit
by providing a (Metalevel-)interface for changing the implementation.

I wonder if there are OI-CPUs in development somewhere... 

The OI HomePage:

A short introduction: 

Towards a New Model of Abstraction in the Engineering of Software
 by Gregor Kiczales. 
             proceedings of IMSA'92 Workshop on  Reflection and Metalevel 

Marcus Denker marcus at ira.uka.de fon at home:(0721)614235 @work:(0721)608-2749  

More information about the Squeak-dev mailing list