Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Pointer33725yYou'll learn, as you make your way through, that each problem has its own way to be solved.
Some like to be solved by OOP, others only allow Functional, some are restricted to declarative, but in the end, all that matters is that you can perceive what approach you should take to tackle it.
So much this
OO == funky action at a distance.
Yeah right tool for the right job, only having small composable and testable functions that produce consistent outputs for the same inputs, so much win. Further not having state or mutation is just useful.
arekxv9935yI dont see how a large project can exist nowadays and it was created using procedures purely (legacy code excluded). Procedural programming is simpler and works... up to a point. Then it just starts becoming more and more of a mess, especially in a team environment. So.. yes, you would do well without oop in a smaller one-person project, and no, you will just make a mess with globals and function names in a team on a large scale project. OOP is complicated until you figure out one important thing...OOP was never all about reuse, it was about separation of responsibility.
spl021125y@arekxv I remember the OOP camp touting 'reuse' pretty heavily when it first appeared.
I think the things you are talking about as being useful for large projects are the principles of information hiding, and I totally agree.
Information hiding existed (and was implemented) long before OOP to solve 'the software crisis'.
eg Languages like Modula-2, Ada83.
spl021125yI should add that I appreciate OO and I actually like it in the right situation. But I'm noticing new developers are feeling the need to use it for EVERYTHING!
Pointer33725y@spl0 I guess that's because:
1. If you search how to code online, first results are based on OOP
2. Even if they learn and get really good, sadly, they learnt how to think in that language, they didn't learn how to think algorithmically.
3. The developer is comfortable and doesn't bother to learn another programming paradigms.
I used to be like that, thinking OOP was "the 42" 😂