Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Objects as originally conceived in Simula left out concurrency, i.e., region of mutual exclusion of an Actor.

See the following: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3418003



I'm unsure what this has to do with my comment.


Simula originated the terminology "object", which was then adopted in later versions of SmallTalk. Objects differ in fundamental ways from Actors.


What does this have to do with Kay's claim that objects are "mini-computers"?


What is your precise definition of "object"?


I don't have a precise definition, but regardless which of the many candidate definitions you choose, none are "mini-computers". A computer, if that term is to mean anything at all, is Turing Complete. It's a machine that can become any other type of machine. And unless your object (or actor) happens to be emulating a Turing Complete machine, it's not a "mini-computer".

The only self-similar architecture we have in computing is the virtual machine, not the "object", whatever that word means.


What exactly do you think that an Actor cannot do? Trivially, an Actor can implement a Turing Machine. However, there are some Actors that cannot be implemented using a Turing Machine, e.g., an Actor with unbounded nondeterminism.


Yes, an Actor (or object) can implement a Turing Machine. But most don't. Most are simpler machines. So this statement by Kay, for instance:

"each Smalltalk object is a recursion on the entire possibilities of the computer."

is incorrect.


Difficult to know since you don't specify exactly what an "object" is. Seems more reasonable that "Actors are a recursion on concept of interacting computers."


As I said, pick your definition of object (Java objects, Smalltalk objects, actor, etc.). Unless it's "Turing Complete machine", which isn't anyone's definition of object, you can't equate objects with computers. Saying objects are computers is like saying objects are bicycles. Some of them are, yes, but that's not the point.

What's your definition of computer?


Of course, a computer is an Actor ;-) This would be a joke except for the fact that Actors have been defined up to a unique isomorphism. See the following:

    https://papers.ssrn.com/abstract=3418003

    https://papers.ssrn.com/abstract=3459566


That's an interesting result, but you'll have to connect more dots for me. I don't see how the existence of a categorical theory of Actors relates to what we're discussing.


If a computer is required to be an Actor, then we have a precise characterization of what it can and cannot do.

Of course, an exact implementation of a computer as an Actor needs to be specified.


I think that was Alan's original conception of objects (at least as could could be implemented in Smalltalk-72).


The Smalltalk-72 model was extremely limited. Code in the language was viewed by the interpreter as simply a stream of tokens. According to [Ingalls 1983]:

    "The first (token) encountered (in a program) was looked 
     up in the dynamic context, to determine the receiver of
     the subsequent message. The name lookup began with the 
     class dictionary of the current activation. Failing 
     there, it moved to the sender of that activation and so 
     on up the sender chain. When a binding was finally found 
     for the token, its value became the receiver of a new 
     message, and the interpreter activated the code for that 
     object's class."
SENDER and stack of previous senders was retained as part of the message-passing protocol, which is problematical for concurrent systems.


No, most Smalltalk objects were not Turing Complete. Take numbers. Numbers are objects in Smalltalk. They're not Turing Complete.


He seems to hint a bit what he meant in this HN comment - https://news.ycombinator.com/item?id=11946935.

Also remember that what most people think of Smalltalk (ie Smalltalk-80) doesnt seem to be what AK thinks of Smalltalk (I get the feeling that the Smalltalk-72 approach is closer to the ideals he had in mind).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: