Gilad Bracha Shared this Perspektive on objects an...
# linking-together
c
Gilad Bracha Shared this Perspektive on objects and execution/executables https://twitter.com/Gilad_Bracha/status/1542722486348836864 I am Grateful for the effort. But I’d saddens me also a bit because I feel that Gilad is trying to make a case for concepts like objects beyond certain reference frames like programming languages, like Java. But because the way “our” programming culture is, more programmers would rather connect the notion of an object to Java classes/instances rather than objects from “The art of the meta object protocol”. Similarly with “patterns” . If we assume that everything evolves in a kind of dialectic manner I’m curious if there is a antithesis to objects(functions/data?) and how the synthesis looks like. Which (again) reminded me of that Alan Kay / Rich Hickey Discussion : How ever data could be a bad idea: https://news.ycombinator.com/item?id=11941656 There is something about these discussions that sets a tone and expectations. Like that there is a singular truth. How can we ever have discussions again if we can not understand each other’s perspectives?
m
The venerable master Zardoz was walking with a student, Zed. Hoping to prompt the master into a discussion, Zed said "Master, I have heard that objects are a very good thing - is this true?" Zardoz looked pityingly at the student and replied, "Foolish pupil - objects are merely a pitiable substitute for closures." Chastised, Zed took leave from the master and retreated into a quiet cell in the basement of Gates Hall, intent on studying closures. Zed carefully read the 3110 course notes, and implemented an OOP language using OCaml and closures. Zed learned much, and looked forward to informing the master of this progress. On the next walk with Zardoz, Zed attempted to impress the master by saying "Master, I have diligently studied the matter, and now understand that objects are truly a pitiable substitute for closures." Zardoz responded by hitting Zed with a stick, saying "When will you learn? Closures are merely a pitiable substitute for objects." At that moment, Zed became enlightened.
☝️ 4
😄 4
k
1
p
Related (and funny): _Execution in the kingdom of nouns_: http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html
👆 1
j
I like that Cook paper, but am surprised that he doesn't mention the angle from which one can see an object as a set of functions that have been partially evaluated against an underlying record.
💡 3
r
Brad Cox muses on the overly broad meaning of "object" across his writing, and splits them into 5 different types analogous to hardware - process/appliance, card/task, chip/late-bound methods/software-ic, block/procedure/statically bound method, and gate/conditional. What Bracha is talking about here is more at the task level, while Java objects exists mostly at the block level, yet what Bracha, as well as Ungar in a comment, are touching on are the commonalities found in objects that an object oriented system should be consciously designed around.
There is something about these discussions that sets a tone and expectations. Like that there is a singular truth. How can we ever have discussions again if we can not understand each other’s perspectives?
I don't know what it is about Gilad Bracha that evokes this feeling so well - Richard Gabriel mused on it before in https://dreamsongs.com/Files/Incommensurability.pdf.
o
I think his use of “object” is reasonable if not in keeping with OOP usage of the word. If anything, I think we ought to be broadening our notion of objects further, as they are one of the most fundamental and general notions in philosophy and over-constraining their use may do more harm than good. This is not to say that ‘object’ can’t mean something specific or formal, just that it will always be heavily contextual. The philosophy of computing is still a young discipline, but objects in that context are far from well understood, in fact, we’re only just starting to articulate the ways in which they exist (aka their ontological status). It seems like a reasonable assumption to me that the notions which have persisted as fundamental philosophical ideas will (at the very least) have corollaries in computing of similar fundamental importance. Perhaps more usefully, the reverse is also often true, and we should take advantage of the vast history of thought in philosophy when exploring these kinds of ideas in computing.
If we assume that everything evolves in a kind of dialectic manner I’m curious if there is an antithesis to objects(functions/data?) and how the synthesis looks like.
Personally I’d put forward relations as the top candidate for an antithesis to objects.