

The Early History of Smalltalk (1993) - throwaway344
http://worrydream.com/EarlyHistoryOfSmalltalk/

======
rdtsc
> The mental image was one of separate computers sending requests to other
> computers that had to be accepted and understood by the receivers before
> anything could happen. In today's terms every object would be a server
> offering services whose deployment and discretion depended entirely on the
> server's notion of relationship with the server.

1993 called and wants its micro-services. That is great. At least it seems
like he is describing Go's channels, Rust's tasks, and most of all Erlang's
processes.

It is interesting, perhaps it is a reflection on how some of these concepts
are abstract that anything can be read into it, but it seems that the initial
design and motivation behind OO has been perverted by C++ and Java.

I started with C++ and Java in college. To me OO was inheritance, composition,
and polymorphism, and so on. Years later, when distributed and scalable
computing is talked about other languages and platforms seems more OO than the
classic OO.

And finally one more excerpt:

>

\---

    
    
      1. Everything is an object
    
      2. Objects communicate by sending and receiving messages (in terms of objects) Objects have their own memory (in terms of objects)
    
      3. Every object is an instance of a class (which must be an object) The class holds the shared behavior for its instances (in the form of objects in a program list)
    

\---

Pretty funny. Replace 'object' with 'process' and you have Erlang, the last
language you'd call OO : 1) everything is a process 2) processes sending
messages to each other. Each process has an isolated heap (won memory). 3)
Functions in modules hold the shared behavior of many possible process
instances spawn from it.

~~~
coldtea
> _1993 called and wants its micro-services. That is great. At least it seems
> like he is describing Go 's channels, Rust's tasks, and most of all Erlang's
> processes._

Hmm, don't know about the others, but Go's channels seem much much more
primitive and bare than the description you quoted.

~~~
rdtsc
I meant coupled with a goroutine. But yeah also no isolation.

OS processes though with some IPC mechanism also fit the pattern. But that is
not a language anymore as a standard library and OS API

------
pholbrook
Glad to see someone posted this again. This is without a doubt one of the best
papers I've ever read. Drives home that Alan Kay is truly brilliant.

------
Glench
Here's a better one, with a github for corrections:
[http://worrydream.com/EarlyHistoryOfSmalltalk/](http://worrydream.com/EarlyHistoryOfSmalltalk/)

~~~
dang
Ok, we'll change to that (from
[http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html](http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html)).

------
quink
I want to enjoy reading this as much as it deserves to, but there are so many
typos ;_;

Nevertheless, I shall persist and so should you.

~~~
whocares
Smalltlak?

