6 ms·
What is your precise definition of "object"?
by ProfHewitt 7y ago
What is your precise definition of "object"?
- mgummelt 7y agoI 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.
- ProfHewitt 7y agoWhat 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.
- mgummelt 7y agoYes, 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.
- ProfHewitt 7y agoDifficult 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."
- mgummelt 7y agoAs 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?
- ProfHewitt 7y agoOf 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
- mgummelt 7y agoThat'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.
- ProfHewitt 7y agoIf 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.
- infinite8s 7y agoI think that was Alan's original conception of objects (at least as could could be implemented in Smalltalk-72).
- mgummelt 7y agoNo, most Smalltalk objects were not Turing Complete. Take numbers. Numbers are objects in Smalltalk. They're not Turing Complete.
- infinite8s 7y agoHe seems to hint a bit what he meant in this HN comment - https://news.ycombinator.com/item?id=11946935 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).