Hacker News new | ask | show | jobs
by carapace 600 days ago
I sure am glad that, when I was twelve and learning Pascal at middle school, my teacher took pains to point out that OOP is just a way of arranging code, it doesn't change the code semantically, it's just topological. You avoid a lot of noise and nonsense if you just keep that simple idea in mind: OOP is a style of arrangement, not semantics.

It's especially odd to compare and contrast OOP style with Functional Programming paradigm because these things are orthogonal.

1 comments

My view of OOP is that is a way for people to replicate in code the experience of "bullet lists". In other words, create a hierarchy by a particular method of code engineering that conforms to traditional techniques that many people (specially in management) already use. The disadvantages come exactly from the fact that not everything in math, science and engineering can be easily modeled using bullet lists.
I think that might come from OOP's middle-era in xtreme-programming and early agile. A lot of focus on mapping user stories to classes/CRC diagrams, which eventually get mapped to some specific file/bytes on disk. Pretty explicitly modelling the code after bullet lists of messages that need to be passed around.

http://www.agile-process.org/model.html

https://agilemodeling.com/artifacts/crcmodel.htm