3 ms·
> It's not me who finds that OOP is a mismatch with relational systems. It's me and many other people. Great, but what is the mismatch you speak of? > Ted New
by randomdata 3y ago
> It's not me who finds that OOP is a mismatch with relational systems. It's me and many other people.
Great, but what is the mismatch you speak of?
> Ted Neward talked about this 20 years ago. Jeff Atwood talked about it 18 years ago.
Are you referring to the "The Vietnam of Computer Science"? It is about active record and object/relational mapping.
OOP, despite the poorly chosen name (which Kay regrets), isn't about objects at all. As is defined, OOP is about "messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things." But perhaps there is some other work by these people that I'm not familiar with that speaks to OOP?
> It seems like a lot of people dislike Object Oriented Programming
Sure. I expect all people dislike object-oriented programming in practice, which is why you never truly see it. Sending a message and maybe getting a response (i.e. extreme late-binding) is cool on a theoretical level, but not exactly practical when it comes to real applications that want to have certain guarantees. The rising love for statically typed languages highlights that people want such guarantees.
Ironically, OOP probably only shines for things like client->relational database systems that cannot guarantee the state of the database at compile time. At least the paradigm gets you thinking about what to do when an actor doesn't respond to your message.
- dventimihasura 3y ago> Great, but what is the mismatch you speak of? Go do some independent study and then maybe we'll talk.
- randomdata 3y agoHappy to, but it is not clear what I should study. You have not yet indicated what it is about OOP that you are talking about. You keep pointing to the object-relational mismatch, which, while a thing, has no more to do with OOP than it does functional programming. It pertains to object-based programming. That is something else entirely. Understandably, those who don't understand OOP often confuse OOP with object-based programming. Is that the problem here? Just that you don't understand OOP? Fair that fluidity of language means that anyone can define OOP as they wish, and if they want to define OOP to be equivalent to OBP, good for them. They wouldn't be the first. And if we were discussing this topic in a vacuum we could set out a proclamation that defines OOP to be equal to OBP. However, OOP was already and explicitly defined by the article that setup the context for the following discussion, and the definition used is Kay's – the one that has nothing to do with objects. Other definitions for OOP would be clearly off-topic. Perhaps it is that you are purposefully trying to go off-topic? Indeed, this thread started because someone (not me!) questioned exactly that. If it is simply that you don't know how to clarify what you mean, why not just say so?
- dventimihasura 3y ago> Happy to, but it is not clear what I should study. You have not yet indicated what it is about OOP that you are talking about. I don't have to. That's already explained in the standard literature on the topics of the object-relational mismatch and on functional critique of mutable state. > You keep pointing to the object-relational mismatch, which, while a thing, has no more to do with OOP than it does functional programming. It pertains to object-based programming. That is something else entirely. And I say that the object-relational mismatch does have more to do with OOP than it does with functional programming. If you want to make unfounded claims, two can play at that game. > However, OOP was already and explicitly defined by the article that setup the context for the following discussion, and the definition used is Kay's Point to the place on the doll where the article explicitly defines OOP and uses Kay's definition to do it. > Perhaps it is that you are purposefully trying to go off-topic? Indeed, this thread started because someone (not me!) questioned exactly that. And yet that person never came back. You can't rule out the possibility that this person was satisfied by my subsequent clarifications. > If it is simply that you don't know how to clarify what you mean, why not just say so? You first.
- randomdata 3y ago> And I say that the object-relational mismatch does have more to do with OOP than it does with functional programming. Understood. You have asserted that many times now. But what you are trying to say has not been made clear. Let's break this down. As defined by context, OOP means: messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. Indeed, there exist other OOP definitions, but that is the one that was defined here. I think we can rule out "local retention and protection and hiding of state-process" from the discussion. Hiding means that even if there is some kind of relational database access happening behind the curtain, we cannot know about it. If we don't know about it, we cannot talk about it. That leaves messaging and extreme late-binding. It is not clear to me what it is about messaging and/or extreme late-binding that is at odds with relational databases. This is where I seek clarification. While you pointed to the work of Neward and Atwood, all I could find from them was discussion about the pitfalls of trying to model relational databases as a particular object model. They say nothing about messaging or extreme late-binding. Unfortunately, they were of no help here.