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

Reply via email to