The intro has nothing to do with the rest of the article, really. The author claims it does at the end, but it's just trashing OOP for fun (the author even says this).<p>OOP is fine. And DRY (what the core idea of the article is getting at) applies in OOP paradigms as much any another. The arguments the author makes are orthogonal to OOP.<p>The author seems to not enjoy planning before writing code, which I guess is more necessary for OOP than other paradigms?
It's really weird when the blogger assumes they know exactly what I do and think, here that I think of a class hierarchy as the first thing when writing a C++ program.<p>I suppose they're going for the "wow, are you God?" effect, but when it's a miss, it just makes them look silly.
I was actually in the school of thought that this article describes until I read and worked through the book <i>How to Design Programs</i> [0]. The rest is upto you to judge.<p>[0] <a href="https://htdp.org/" rel="nofollow noreferrer">https://htdp.org/</a><p>Edit: I would love others, who have read the above mentioned book, to weigh in with your anecdotes.
A page-long strawman isn't a great way to start an article. I also disagree with the author's claim that refactoring is ridiculous or different, but like the author I'm not going to elaborate.
Semantic compression is such a cool shorthand.<p>This article really helped me put things I had believed for years into words when I first read it. It's pretty amazing.
The introduction describes encountering awkwardness during modeling in OOP, which definitely does happen. But I’m not convinced that a payroll system written in C++ in the style described by the post is going to be a better solution.
This is from 2014 (it felt awfully familiar when it got to the code samples) but submitted under the title "Semantic Compression" or other variations:<p><a href="https://news.ycombinator.com/item?id=17090319">https://news.ycombinator.com/item?id=17090319</a> - May 17, 2018 (41 comments)<p>There are others with 1-2 comments but no other discussions beyond that that I can find.
I think semantic compression is achieved by using a denser more expressive language, some languages can express the same activity in far fewer lines of code.
Personally I find the denser code, harder to read, which I think also makes sense, since it contains more meaning in less space.
If you are writing code, perhaps in python, and you keep following your editors instructions to refactor it, you end up with far fewer repeated lines of code, and lots of small reused functions, you are actually doing manual code compression.
I have always wondered why, if editors are so smart, they don't have a 'compress this project' button, which does all that for you.
All he wanted to do was have some buttons that react to the mouse and run code. At this point, such a thing should be a language primitive like floating point.
So I guess he thinks that classes are great as long as there is never any inheritance? And so if you do that then it doesn't count as object oriented programming or something. Especially if you give it a new name like "semantic compression". Lol.<p>I think the newish thing is traits such as in Rust.