3 ms·
I was confused about OOP for about the first decade of my career. I always thought I was an experienced OOP programmer because I had been working with object-or
by tobyjsullivan 6y ago
I was confused about OOP for about the first decade of my career. I always thought I was an experienced OOP programmer because I had been working with object-oriented languages like C#, Java, and Ruby.
Eventually I sat down and read what OOP actually was. I immediately realized that I'd never worked on a single object-oriented architecture despite a decade of working in object-oriented languages.
I can't stress this enough. Using an object-oriented language does not mean you are building an object-oriented system. If you cannot differentiate your classes from C structs, you are probably not building an object-oriented system. If you have functions that manipulate objects, rather than objects manipulating each other, then you are probably not building an object-oriented system.
This article seems to conflate these ideas in the same way. It seems to say that "the success of languages who happen to be OOP" somehow implies "OOP is still one of the dominant paradigms right now". I don't see any other explanation for that claim beyond this inference.
Based on all the systems I've worked on at various software companies (heavily weighted to SaaS), I would be legitimately surprised if it was true that "OOP is still one of the dominant paradigms right now."
edit: Decided not to explicitly recommend the Byte article[0]. It's good but doesn't go deep enough to get the nuances across unambiguously.
[0]https://archive.org/details/byte-magazine-1981-08/page/n75/mode/2up https://archive.org/details/byte-magazine-1981-08/page/n75/m...
- oliwarner 6y agoThe article describes encapsulation and instance methods. Hardly a departure from modern OOP.
- imtringued 6y agoI think your comment is a very round about way of saying that you should keep your code base as simple as possible. Just because your language can do OOP doesn't mean you have to. Not everything needs inheritance, polymorphism, encapsulation. Point free style is also something that lends itself to abuse in FP. At some point you're losing more than you're gaining. With more experience you learn to just keep it simple and boring.