Where do objects come from?. A brief history of object-oriented thought. Dynabook to Personal Computer. The Personal Computer* as we know it today was invented in pursuit of the Dynabook (*And object-oriented programming, too!). Start of the Story: Late 60's and Early 70's.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
A brief history of object-oriented thought
The Personal Computer* as we know it today was invented in pursuit of the Dynabook(*And object-oriented programming, too!)
| anArray anIndex aValue | "Declare three local variables"
aValue := 2. "Set aValue to 2"
anArray := Array new: 10. "anArray is an Array 10 elems"
1 to: 10 do: "Store 2*index at each array elem"
anArray at: index
put: (aValue * index)].
anIndex := 1. "Walk the array again, printing out the values"
[anIndex <= anArray size] whileTrue:
'Value at: ',(anIndex printString),
' is ', (anArray at: anIndex) printString ; cr.
anIndex := anIndex + 1.]
Value at: 1 is 2
Value at: 2 is 4
Value at: 3 is 6
Value at: 4 is 8
Value at: 5 is 10
Value at: 6 is 12
Value at: 7 is 14
Value at: 8 is 16
Value at: 9 is 18
Value at: 10 is 20
There are no pre-defined control structures in Smalltalk!
Just a gentle reminder that I took some pains at the last OOPSLA to try to remind everyone that Smalltalk is not only NOT its syntax or the class library, it is not even about classes. I'm sorry that I long ago coined the term "objects" for this topic because it gets many people to focus on the lesser idea.
The big idea is "messaging" -- that is what the kernel of Smalltalk/Squeak is all about (and it's something that was never quite completed in our Xerox PARC phase). The Japanese have a small word -- ma -- for "that which is in between" -- perhaps the nearest English equivalent is "interstitial". The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be. Think of the internet -- to live, it (a) has to allow many different kinds of ideas and realizations that are beyond any single standard and (b) to allow varying degrees of safe interoperability between these ideas.
If you focus on just messaging -- and realize that a good metasystem can late bind the various 2nd level architectures used in objects -- then much of the language-, UI-, and OS based discussions on this thread are really quite moot. At PARC we changed Smalltalk constantly, treating it always as a work in progress -- when ST hit the larger world, it was pretty much taken as "something just to be learned", as though it were Pascal or Algol. Smalltalk-80 never really was mutated into the next better versions of OOP. Given the current low state of programming in general, I think this is a real mistake.