4 ms·
I, for one, tried to read the comment. I got the impression it was trying to talk about the drawbacks of active record, echoing many of the common criticisms of
by randomdata 3y ago
I, for one, tried to read the comment. I got the impression it was trying to talk about the drawbacks of active record, echoing many of the common criticisms of active record, but which has little to do with OOP. Perhaps you could clarify what you were trying to say with respect to OOP?
- dventimihasura 3y agoI'm the author of the comment and yet I have never used ActiveRecord, which was coined by Martin Fowler 2 years after I was using iBATIS and was popularized by Ruby on Rails a year later. As the author of the comment, I can assure you the comment was not referring to ActiveRecord, a topic that was not mentioned either in the comment or in the original article.
- randomdata 3y agoActive record, with a space, not ActiveRecord. Not sure how you managed to jump all the way to Ruby on Rails. Regardless, the ask was "Perhaps you could clarify what you were trying to say with respect to OOP?", not "Have you used (active record|ActiveRecord)?" Even if you somehow managed to not see the space, and didn't notice the capitalization, the response still doesn't logically follow. Did you not read the comment?
- dventimihasura 3y ago> Not sure how you managed to jump all the way to Ruby on Rails. I said that ActiveRecord was popularized by Ruby on Rails in 2004. I feel I was quite clear on this subject. > Regardless, the ask was "Perhaps you could clarify what you were trying to say with respect to OOP?" Sorry. I wrote my comment before you had revised yours. If you'd like to let me know when you're done with your revisions, I'm happy to wait.
- randomdata 3y ago> I said that ActiveRecord was popularized by Ruby on Rails in 2004. Thanks for the random history lesson and all, but why are you bringing up ActiveRecord in the first place? The topic is OOP, not a library that is bundled with a web framework created many years ago. Did you not even read your own comment? For a brief moment you seemed to recognize that the subject is about OOP.
- dventimihasura 3y agoWhether it's "active record" or "ActiveRecord", with or without caps, with or without spaces, I'm not persuaded these are different things. If you want me to believe that they are, I invite you to try to persuade me. While I'm inviting you to do that, let me also invite you to accept what people tell you about themselves in lieu of what you infer about themselves. I was talking about OOP. You said that I seemed to be talking about "active record." I assured you that I was not. Setting aside sophistry about caps and spaces, any disinterested third party observer would agree that it's obvious I've addressed what you have inferred. Therefore, I consider the matter settled. I'm talking about OOP and not active record. I will not address this topic further with you.
- randomdata 3y ago> I invite you to try to persuade me. Why? I enjoy and benefit from the fact that you think a software library and a theoretical concept are the same thing. Never change. > I'm talking about OOP and not active record. Yes. We established that in my very first comment. However, I stated that it reads like you were talking about active record, and that is why it was asked if you could clarify how it pertains to OOP, given that we know you are actually talking about OOP. If you don't know how to clarify your message, why not just say so?
- dventimihasura 3y agoJesus, and now you're erasing your tracks by deleting your comments, and those of other people along with it, like you just did in this sub-thread.
- dventimihasura 3y agoPerhaps your request for clarification was added after I replied, or perhaps I just missed it. Charity urges me to accept the fault as mine, so please accept my apology for overlooking what surely could not have been an after the fact revision. In any case, what I was saying was that in my experience, often OOP is applied where it isn't suited, particularly in the application layer between a client and a relational database, and this is the source of much of the criticism of OOP which the OP is trying to deflect. In that case, it isn't OOP critics who don't understand OOP, but rather OOP practitioners who don't understand OOP well enough to know when not to use it. I believe a close reading of my comment reveals that this is what I was saying, so that a clarification isn't strictly needed though it's happily provided.
- randomdata 3y ago> often OOP is applied where it isn't suited, particularly in the application layer between a client and a relational database What it is about the OOP paradigm that you find does not fit this client->relational database application? The idea behind OOP is that you send a message out into the world, and maybe another actor can make something of it. You don't really know or care about the other actors are out there. If an actor hides a relational database behind closed doors, so be it. Not your problem. That's outside of the concern of OOP. On the flip side, we have active record, which imagines a way to try and marry relational databases to an object-based (not oriented) model. Here you will regularly find criticism about "impedance mismatch" and where things like constraints should be handled. This still reads like what you are talking about, but has little to do with OOP. Conceivably you could use that pattern to implement the local retention of an actor. Is that where you find applicability to OOP? OOP doesn't speak to the underlying actor implementation, though. It purposefully doesn't speak to the implementation as not having knowledge of actors is kind of OOP's whole deal. If you need to know things about other actors, you can't just throw a message out there. Because of the similar names, those who don't understand OOP oftentimes confuse it with object-based programming. Perhaps this is what you are trying to speak to, using a 'database layer' as an example of object-based programming as seen in the wild? Admittedly, I still don't fully understand the link you are making between relational databases and OOP.