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
specifications.
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:
http://www.parc.xerox.com/spl/projects/oi/default.html
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
Architectures.
--
Marcus Denker marcus at ira.uka.de fon at home:(0721)614235 @work:(0721)608-2749
More information about the Squeak-dev
mailing list
|