Re: [Webteam] Squeak History

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
25 messages Options
12
Reply | Threaded
Open this post in threaded view
|

RE: [Webteam] Squeak History

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

Cheers,

Alan

At 07:58 AM 5/21/2007, Alan Lovejoy wrote:

><Alan Kay>As Dan Ingalls used to say: "An operating system is just the stuff
>left out of the programming language -- if you don't leave it out, then you
>don't need the OS".</Alan Kay>
>
>And one of the most critical things left out of most programming languages
>is dynamic binding (and often even static linking,) which is why operating
>systems commonly provide both capabilities.  In fact, the operating system
>is essentially that body of common, shared code that is dynamically
>bound/linked to application programs.  Dynamically binding applications to
>that common code base is the primary purpose of the OS.
>
>--Alan


Reply | Threaded
Open this post in threaded view
|

RE: [Webteam] Squeak History

Alan L. Lovejoy


<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




Reply | Threaded
Open this post in threaded view
|

Re: [Webteam] Squeak History

Howard Stearns
In reply to this post by Brad Fuller-3

On May 21, 2007, at 9:08 PM, Alan Lovejoy wrote:

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

Well, as long as you're asking...

http://www.symbolics.com/Genera-1.htm                     (note  
feature bullets)

How this was done, exactly, for class defs:
http://www.lispworks.com/documentation/HyperSpec/Body/07_b.htm
http://lisp.org/mop/concepts.html#reinit-class

If I recall, there was an implementation of Objective-C that also  
updated existing instances when you changed class shape, but I never  
(knowingly) used it.


Reply | Threaded
Open this post in threaded view
|

RE: [Webteam] Squeak History

Alan L. Lovejoy
<Howard Stearns>Well, as long as you're asking...</Howard Stearns>

Heh...Got me.

Actually, when I wrote "no OS I know of...", I was mentally discounting
things like the early Smalltalk systems where Smalltalk served as its own
OS--and so, by extension, also discounting similar systems based on LISP. I
was also thinking of operating systems in current use, and that might
actually be encountered by non-geeks (and so was also excluding things like
SqueakNOS.)

That'll learn me to avoid using language that's more general than what I was
actually thinking ;-)

--Alan




Reply | Threaded
Open this post in threaded view
|

Re: [Webteam] Squeak History

Lex Spoon-3
In reply to this post by Alan Kay
"Alan Lovejoy" <[hidden email]> writes:
> 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.

I don't know, .so's/DLL's, not to mention Unixy daemons, are actually
plenty to allow you to replace subsystems without rebooting the whole
computer.  You reboot the subsystem, but not the whole machine.  Linux
folks update all the time without rebooting.

So it seems to depend on the culture as much as the technology.  Some
programmers make their subsystems replaceable, and others do not
bother and make you reboot.


Lex


12