2 ms·
The tree under your reply proves my point. There is no one set of OO principles. This thread identifies at least two, the original Kay principles and what I was
by jerf 5y ago
The tree under your reply proves my point. There is no one set of OO principles. This thread identifies at least two, the original Kay principles and what I wasn't sure you were going to name, which is what I'd call the outdated 1990s ideas of OO. Then there's today's idea, which is probably pretty close to what I said in my post and is exemplified by duck-typed dynamic languages and a lot of modern languages like Go and Rust. That's at least three, and that's staying fairly broad; if we start quibbling about arcane details the count only goes up.
- mytailorisrich 5y ago> what I wasn't sure you were going to name, which is what I'd call the outdated 1990s ideas of OO. I'm sorry but this is getting surreal. I named the standard OO principles and concepts which are very much valid and alive today, though of course how they are applied (or if they are applied at all) varies from language to language. Claiming otherwise is absurd. If anything this whole article and thread show that too many people are confused by the concepts of OO principles (if they know what that means at all), programming languages (that may or may not implement some of these principles), design practices/patterns (how to come up with a model of objects): these are all different things. Certainly selecting objects that reflect real-life entities is not an OO principle, for instance, but rather a design practice (good or bad, it depends). In my team we do C exclusively and follow OO principles as much as practical. Any software engineer worth their salt has a good idea of what that means.