27 ms·
This gets to something that's dogged AK for ages. He created the term "object-oriented," but the way everyone in the field thinks of it is not what he meant. He
by mmille10 10y ago
This gets to something that's dogged AK for ages. He created the term "object-oriented," but the way everyone in the field thinks of it is not what he meant. He blames himself for that, using terminology that got people focused on objects. It's not about the objects. It's about messaging and interfaces, and the independence of objects. Objects are just the endpoints for messages. His notions of objects have a lot more in common with how the internet (TCP/IP) works than the way Simula, C++, or Java works. The real abstraction, indeed the real programming, is about interfaces and messages, and their relationships. A short summary of it is to think of objects as servers on the internet, and interfaces as analogous to the protocols used for communication between clients and servers. If you could imagine programming using the structure of the internet, with the same scaling and loosely-bound qualities that the internet possesses, that would be the ultimate in OOP. Simula doesn't get into this at all. It's a class-based language, and what the design really communicates is that it formalizes the notion of abstract data types. C++, Java, and C# do the same thing, in this respect.