Hi Miles
I wouldn't characterize it that way.
Much of today's way of doing "object-oriented" programming with regard to
simulating data-structures is due to C++ and Bjarn Stroustrup's explicit intent
to "do to C, what Simula did to Algol". He says clearly in the first C++
documentation that he is going to follow Simula by making a preprocessor for C,
and not try to do a late-bound integrated system like Smalltalk.
The idea of simulating data structures using procedures goes way back -- the
B5000 had it in hardware! -- and I think it was a multiple invention to see
this as useful in objects. My first investigation (also recounted in TEHOS) was
to "fix" one thing the B5000 couldn't quite do, which was to simulate a "sparse
array" efficiently using objects.
When Simula 67 later appeared, one of their examples was Class String.
My way of thinking about it was much more influenced by Sketchpad and Biology.
Objects should be like active entities -- Dan Ingalls later characterized the
feeling of OO programming as being more like training intelligent entities than
as a puppet master having to pull all the wires directly. So my thought was
that sending a message should be requesting a goal to be carried out, etc.
What seemed to be really nice -- and still does -- was the simulation idea.
This meant that you could make one OO system and that you could simulate all
the components. What if you didn't know how to make a particular smart object
"the right way"? No problem, you could write a kluge for now, stick it inside
the object to hide it, and make it look the way it should on the outside. What
if you couldn't think of anything better than a data structure for a classic
algorithm? No problem, you could simulate the data structure.
From my bio background, this seemed really nice. You want to do things in terms
of cells and tissues, but you might have to resort to lesser organizations of
atoms to make them. The idea in the OOP languages we did was that you should
really take advantage of the simulation possibilities to design as strongly as
possible, and then you had a universal material that could allow every
qualitative level of structure and process to be done.
So this would again be very "actor-like" -- and I thought "actors" were just a
great name for this way of doing things.
My own personal thoughts about what was accomplished are completely intertwined
with what our entire group was able to do in a few years at PARC. I would give
us credit for a very high level combination of "computer science" and "software
engineering" and "human centered design" and "commingled software and
hardware", etc. The accomplishment was the group's accomplishment. And this
whole (to me at least) was a lot more interesting than just a language idea.
I hasten to redirect personal praise to the group accomplishment whenever it
happens.
I think this is also true for the larger ARPA-PARC community, and why it was
able to accomplish so much at so many levels.
The "awards to individuals" structure beloved of other fields and of
journalists completely misses the nature of this process. Any recognition
should be like "World Series" rings -- everybody gets one, and that's it.
Best wishes,
Alan
>________________________________
> From: Miles Fidelman <[email protected]>
>To: Fundamentals of New Computing <[email protected]>
>Sent: Tuesday, February 12, 2013 1:09 PM
>Subject: Re: [fonc] Terminology: "Object Oriented" vs "Message Oriented"
>
>Hi Alan,
>
>Is it fair to say that the path you took with Smalltalk led to today's object
>model of data structures, associated methods, and inheritance, with either a
>single thread-of-control, or small numbers of threads; while the Actor model
>led (perhaps not directly) to massive concurrency and Erlang? (I'm still
>waiting for something that looks like Smalltalk meets Erlang.)
>
>Cheers,
>
>Miles
>
>Alan Kay wrote:
>> Hi Miles
>>
>> (Again "The Early History of Smalltalk" has some of this history ...)
>>
>> It is unfair to Carl Hewitt to say that "Actors were his reaction to
>> Smalltalk-72" (because he had been thinking early thoughts from other
>> influences). And I had been doing a lot of thinking about the import of his
>> "Planner" language.
>>
>> But that is the simplest way of stating the facts and the ordering.
>>
>> ST-72 and the early Actors follow on were very similar. The Smalltalk that
>> didn't get made, "-71", was a kind of merge of the object idea, Logo, and
>> Carl's Planner system (which predated Prolog and was in many respects more
>> powerful). Planner used "pattern-directed invocation" and I thought you
>> could both receive messages with it if it were made the interface of an
>> object, and also use it for deduction. Smalltalk-72 was a bit of an
>> accident....
>>
>> The divergence later was that we got a bit dirtier as we made a real system
>> that you could program a real system in. Actors got cleaner as they looked
>> at many interesting theoretical possibilities for distributed computing etc.
>> My notion of "object oriented" would now seem to be very actor-like.
>>
>> Cheers,
>>
>> Alan
>>
>>
>> ------------------------------------------------------------------------
>> *From:* Miles Fidelman <[email protected]>
>> *To:* Fundamentals of New Computing <[email protected]>
>> *Sent:* Tuesday, February 12, 2013 11:05 AM
>> *Subject:* Re: [fonc] Terminology: "Object Oriented" vs "Message
>> Oriented"
>>
>> Alan Kay wrote:
>> > A little more history ...
>> >
>> > The first Smalltalk (-72) was "modern" (as used below), and
>> similar to Erlang in several ways -- for example, messages were
>> received with "structure and pattern matching", etc. The language
>> was extended using the same mechanisms ...
>>
>> Alan,
>>
>> As I recall, some of your early writings on Smalltalk sounded very
>> actor-like - i.e., objects as processes, with lots of messages
>> floating around, rather than a sequential thread-of-control model.
>> Or is my memory just getting fuzzy? In any case, I'm surprised
>> that the term "actor" hasn't popped up in this thread, along with
>> "object" and "messaging."
>>
>> Miles Fidelman
>>
>>
>>
>> -- In theory, there is no difference between theory and practice.
>> In practice, there is. .... Yogi Berra
>>
>> _______________________________________________
>> fonc mailing list
>> [email protected] <mailto:[email protected]>
>> http://vpri.org/mailman/listinfo/fonc
>>
>>
>>
>>
>> _______________________________________________
>> fonc mailing list
>> [email protected]
>> http://vpri.org/mailman/listinfo/fonc
>
>
>-- In theory, there is no difference between theory and practice.
>In practice, there is. .... Yogi Berra
>
>_______________________________________________
>fonc mailing list
>[email protected]
>http://vpri.org/mailman/listinfo/fonc
>
>
>
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc