You are on page 1of 2

# Timeline

1958 Algol
1960 Lisp McCarthy
1963 Sketchpad Sutherland
1965 Simula Dahl, Nygaard
1966 Euler Wirth
1967 LOGO Papert
1968 NLS Engelbart
1969 Arpanet Kahn, Cerf
1969 Planner Hewitt
1970 Scheme Sussman, Steele
1972 Smalltalk Kay

# Smalltalk
The original idea of Alan Kay's OOP is about organizing programs into li
ttle computers (objects) sending messages to each other.
http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en
> I didn't like the way Simula I or Simula 67 did inheritance (t
hough I thought Nygaard and Dahl were just tremendous thinkers and designers). S
o I decided to leave out inheritance as a built-in feature until I understood it
better.
> OOP to me means only messaging, local retention and protection
and hiding of state-process, and extreme late-binding of all things. It can be
done in Smalltalk and in LISP. There are possibly other systems in which this is
possible, but I'm not aware of them.
"embedding procedure pointers in data structures" Same offset for relate
d procedures (polymorphism)

# Lispers against OOP


The problem with inheritance is that things don't belong to single taxon
omies.
Multiple inheritance can be ambiguous, so many languages don't provide i
t.
http://paulgraham.com/reesoo.html
http://paulgraham.com/noop.html
Paul Graham:
Dynamic typing transends OOP.
C++ success is that it provides polymorphism in a language that
doesn't have it.

# Carl Hewitt - Actor Model


Influenced by
LISP (1960)
Capabilities (1965): http://publications.csail.mit.edu/lcs/pubs/
pdf/MIT-LCS-TR-023.pdf
Smalltalk
Physics
Actor = Fundamental unit of computation: Processing + Communication + St
orage
Actors can
Create other actors
Send messages to actors it knows
Designate what to do with a message
When a message will be received is indeterminate.

You might also like