[Webteam] Squeak History

Alan Lovejoy squeak-dev.sourcery at forum-mail.net
Tue May 22 02:08:18 UTC 2007



<Alan Kay>If only they did dynamically bind ... far too many changes require
a reboot and this means that they are still using linking loaders to do
quite a bit of integration of changes ...</Alan Kay>

System calls are essentially a dynamic dispatch mechanism--and so can be
thought of as sending messages (albeit the receiver is always the kernel.)
The distinction between user space and kernel space is analogous to object
encapsulation.

Interrupts/signals are also a form of dynamic dispatch--and the message
receiver(s) can vary dynamically. They are also examples of the Observer
design pattern.

DLL and .so files are a weak form of dynamic binding--but fall short of what
you meant by "OOP" 30+ years ago (in the same way that C++ does.) It's still
static typing, just not static linking.

Of course, no OS I know of has the equivalent of ClassBuilders that can
transparently migrate instances of old (versions of) classes to be instances
of new (versions of) classes.  This deficiency is one reason why rebooting
is so often necessary.  Static linking and/or static typing is another.

--Alan






More information about the Squeak-dev mailing list