19 ms·
You can take a look at this discussion[0] where Casey Muratori designed something like that where communication is done by opcodes, and packets instead of vtabl
by tacitcoder 2y ago
You can take a look at this discussion[0] where Casey Muratori designed something like that where communication is done by opcodes, and packets instead of vtables.
Note: search for "raw_device_operation" if you want to get to the code, but reading the whole thing is very worth it.
[0] https://github.com/cmuratori/misc/blob/main/cleancodeqa-2.md https://github.com/cmuratori/misc/blob/main/cleancodeqa-2.md
- mpweiher 2y agoHmm...what's your definition of "object oriented"? I made up the term 'object-oriented', and I can tell you I didn't have C++ in mind -- Alan Kay, OOPSLA '97 https://www.youtube.com/watch?v=oKg1hTOQXoY&t=634s https://www.youtube.com/watch?v=oKg1hTOQXoY&t=634s While I also don't know what this "packets and opcodes" thing is, it certainly sounds a lot like, for example, Smalltalk-72. And vtables are certainly not a requirement, more of an anti-pattern for object-orientedness.
- igouy 2y agoand the very next sentence Alan Kay said was: "So, the important thing here is that I have many of the same feelings about Smalltalk … Part of the message of OOP was, that as complexity starts becoming more and more important, architecture's always going to dominate material. … I have apologized profusely over the past 20 years for making up the term object-oriented because as soon as it started to be misapplied I realized I should have used a much more process-oriented term for it. … If you had to pick one cause of both particular difficulty in our field, and also general difficulty in the human race, it's taking single points of view and committing to them like they're religions. This happened with Smalltalk."
- mpweiher 2y agoYes, I tend to quote that second part as well. In fact, I keep that link ready as well: https://www.youtube.com/watch?t=653&v=oKg1hTOQXoY https://www.youtube.com/watch?t=653&v=oKg1hTOQXoY Which is why I question the "OO means it has a vtable" stance that seemed the promulgated here. While "packets and opcodes" is a bit non-specific, it does not appear to be incompatible with OO, and, for example, Smalltalk-72 seems very similar to "packets and opcodes"...though, again, it's not really specific enough to say with any certainty.
- gpderetta 2y agoFitting, because Stroustrup didn't have Smalltalk in mind. C++ descends form Simula (in addition to C of course).