The Architect´s Napkin

Software Architecture on the Back of a Napkin
posts - 69 , comments - 229 , trackbacks - 0

My Links

News

Article Categories

Archives

Post Categories

OOP as if you meant it

OOP as if you meant it
Today´s mainstream object orientation is not what Alan Kay, the inventor of the term, intended: I invented the term object-oriented, and I can tell you that C++ wasn't what I had in mind. To him, a core feature of object orientation was messaging, i.e. some form of “natural” communication: I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages. Messaging was so important to him that he listed it as second in his definition ......

Posted On Sunday, September 8, 2013 10:21 AM | Comments (1) | Filed Under [ OOP as if you meant it ]

Focus on the flow with messaging
To compare messaging with other approaches to object orientation, Steve Bate suggested a fun exercise: I want to take him up on this and asked him, to point me to sequence diagram of his choice we both can tackle. That way we could compare results and learn from each other. Here´s what he sent me: When I looked at this sequence diagram I immediately felt… hm… uneasy. Although the problem domain is not difficult to understand, once you dig into the back and forth of the request-response flow, I find ......

Posted On Sunday, September 1, 2013 8:54 PM | Comments (0) | Filed Under [ OOP as if you meant it ]

Bus or Flow? - Messaging done one way or the other
Messaging is neutral to the way it´s done. There is nor right or wrong. You think of a message bus, when you hear about communication by messages in software? That´s fine. You think of “pipes and filters” like Steve Bate does, when you hear about messaging? That´s fine, too. Messaging does not dictate specific means for how to send messages. All´s well, as long as messages are sent one-way and sender and receiver are oblivious of one another (Principle of Mutual Oblivion (PoMO)). Let me show you ......

Posted On Wednesday, August 28, 2013 10:09 AM | Comments (5) | Filed Under [ OOP as if you meant it ]

Nested Messaging - Flows on Different Levels of Abstraction
Building large object oriented systems requires us to be able to think/visualize them on different levels of abstraction. Whatever we want to describe – data or functionality – we want to describe in more or less detail. That´s also true if we want to switch our OO approach to messaging. Enter nesting. If flows describe networks of objects communicating through messaging, then we need to be able to nest flows. And in fact that´s what I´ve done all along. Take this flow from my previous posting for ......

Posted On Monday, August 19, 2013 12:25 PM | Comments (4) | Filed Under [ OOP as if you meant it ]

Messaging for More Decoupling
Object orientation true to its inventors original intent uses messaging for communication between objects. That means, data is flowing one-way during each “communication act”. It´s easy to depict – but what actually does it mean? Does it mean, each functional unit (a, b, c) calls the next like this?int doA() { var x = ...; doB(x); } int doB(int x) { var y = ...x...; doC(y); } Could be, at least technically. Formally this would be messaging (with no data, but just a signal flowing between processing ......

Posted On Monday, August 19, 2013 9:40 AM | Comments (2) | Filed Under [ OOP as if you meant it ]

Flows – Visualizing the Messaging Programming Model
Object orientation was ment to be based on messaging – at least if you follow Alan Kay. But that´s not really how it turned out to be, I´d say. Today´s mainstream OO languages are far from being “message-oriented”; they focus on objects as aggregates of data and functionality. Like in the old times of procedural languages it´s all about subprograms calling each other in deep dependency hierarchies. It´s about clients and services, requests and responses. But messaging is different, as I tried to ......

Posted On Sunday, August 18, 2013 2:35 PM | Comments (0) | Filed Under [ OOP as if you meant it ]

Messaging as a programming model – Let´s get real
Steve Bate just has written two very hones and straightforward blog articles [1,2] on how he approaches programming. I very much agree with him. For some four year´s I´ve explored programming along the same lines – and have experienced much relief. Programming has become easier and more fun. Many of the problems I experienced before and others are complaining about have disappeared. Just take Mock Frameworks as an example: I´m not using them anymore. There´s no need for them. I don´t need to stay ......

Posted On Saturday, August 17, 2013 1:59 PM | Comments (19) | Filed Under [ OOP as if you meant it ]

Powered by: