4 ms·
I don't like the clickbaity title. OOP != garbage, badly done and/or unnecessary OOP == garbage.
by Nr7 11y ago
I don't like the clickbaity title.
OOP != garbage, badly done and/or unnecessary OOP == garbage.
- sklogic 11y agoGiven that it is unnecessary in 99.99% of the cases, it is always safe to assume that it is just a garbage, period.
- charlesism 11y agoIt's more a question of degree. It's pretty rare to find code these days that is completely OOP free, aside from machine code, so I'd argue "99.99% unnecessary" is hyperbole.
- sklogic 11y agoBut still, it is completely, totally unnecessary everywhere it is used. I only know one problem domain where a form of an OOP is required (although it must be built on top of asynchronous messages, i.e., none of the existing popular OO implementations would fit) - agent-based simulations. It is well below the 0.01% threshold I set so generously.
- charlesism 11y agoForgive me, but "totally unnecessary everywhere" just sounds like religion to me. Are structs unnecessary? It's an awfully short walk (one pointer long) from a struct to an object.
- sklogic 11y agoOk. Mind naming a single problem domain besides one I've mentioned that should be modelled the OOD way? There are none. And please do not confuse the OOPish language features (which are just poor man modules support in most cases) with OOP-the-design-methodology. The latter is garbage, the former is just an innocent bunch of language features. Btw., it is funny when OO zealots are calling anything else a "religion". They should look in a mirror first. OO is a religion and nothing but a religion.
- charlesism 11y agoYou misunderstand me. I agree that OOP is also a religion. If the video had railed against functional programming, I'd be inclined to post similar comments, with the words "OOP" and "Functional" swapped. I don't know how to go about debating the merits of OOP, aside from saying it's convenient for things that... behave like objects. And of course there are multiple ways to skin a cat, so you can reply with alternate ways to code graphical widgets etc. And then I say you're putting the horse before the cart, and you say the same to me... The only thing I'd be dogmatic about is that programming is still a complicated mess, and it will likely remain so for decades. Nobody has any of this remotely figured out, so it's probably best to be pragmatic, rather than commit oneself to purported "magic bullets" (whether they be OOP, POP, Functional, Procedural, etc). My guess is that the real "magic bullet" will come from AI. I doubt human beings are smart enough to reason about what good programming practices look like. So until an AI comes along to tell programmers how best to design code, it's all just a matter of personal preference.
- sklogic 11y agoThis "magic bullet" mentality is exactly what is wrong with OOD/OOP. If it was not used to model the reality, I'd find it much more tolerable. > I doubt human beings are smart enough to reason about what good programming practices look like. You don't need to be smart to reason, after all, reasoning is a formal, mechanical thing. And there is always a mechanically derived best possible model for each and every problem domain. So it is in fact always very easy to prove that OOP is inadequate and another model is this many times closer to the formalism of the problem domain. For every problem domain out there. There is no place for personal preferences, it's all formal.
- charlesism 11y ago> There is no place for personal preferences, it's all formal. Well, I admire your optimism, at any rate.
- lunchTime42 11y agoGoto 42
- Nr7 11y agoI've worked in projects that use OOP and projects that use procedural style and personally my brain seems to understand the OOP styled code much better than the procedural stuff. Do I then go around calling other paradigms garbage just because my brain seems to function more in an Object Oriented way than other? Of course not. Do I think OOP is then automatically better than other because I understand it easier? Of course not. I stick to OOP because my dumb brain can't figure out other paradigms as well. Of course OOP is unnecessary since you don't need it to write good software. But one could argue that all paradigms are unnecessary since you could technically write any program using any paradigm. OOP, procedural, functional, whatever. My point is that people are different, use whatever you are most comfortable with. EDIT: Check Bob Burrough's comment to the youtube video. He worded it much better than me.
- sklogic 11y ago"Unnecessary" is the mildest of the OOP issues. A more common one is "damaging and destructive", and you cannot defend this one by simply saying that "my brain understands it better" - it won't magically become less damaging because of this. The truth is that OOP is in most cases the worst possible way to model the real world. There is always a much more adequate model (besides the single case I mentioned before). So, sticking to a paradigm that does not work at all is nothing but a religion and should be treated as such.
- bubuga 11y ago> A more common one is "damaging and destructive" That's a baseless assertion. Just because you developed a distaste for a particular programming paradigm it doesn't mean that your baseless assertions are suddenly sound. > So, sticking to a paradigm that does not work Somehow, the software world is founded on something that you somehow claim doesn't work. Perhaps you've taken your pet peeve a bit too far.
- sklogic 11y ago> That's a baseless assertion. That's a verifiable fact. Take any OO code-base and it's very obvious how destructive the choice to use OO was, because there is always a much better model than OO. But of course you zealots are not even competent enough to comprehend such simple things.