... and functional programming too.It so happened that, despite my familiarity with the many paradigms and programming techniques, I do not strictly adhere to any of them. However, I do not consider any of them to be sucky. Why?
Because programming is the art of operating with abstract information. This is a very complex art, because the human brain is not generally adapted to operate on abstractions.
')
Why I love OOP and apply it in my projects? Because the concept of classes and objects makes it easier for me to operate with abstract entities that I keep in my head. Many of them (these entities) are really similar to stamped products coming from the conveyor, consisting of n levers, performing m functions and having some kind of internal, hidden from the user state.
Why do I like functional programming? Because it allows me to keep in mind the workflow of my objects in the form of a pipeline, where at each step a new operation is applied.
Why do I like the MVC approach or prototypes, for example? Yes, for the same reason. Each paradigm, technique, pattern, and technology is ultimately necessary in order to make the model of the application in my head clearer and more convenient - and therefore, so that I can write more elegant code with fewer errors. And in order for the person who will support this code, it would also be easy to make a picture of how it all works in his head.
Therefore, I do not limit myself to any one approach, and at each particular moment I choose the one that seems more convenient to me to describe the subject area. Here there is only one rule: such problems should be solved in a similar way.
Bringing any approach to the extreme - i.e. before applying it where it does not facilitate anything and only complicates everything - sucks. The solution is simple: always proceed from what convenience this or that approach provides, and nothing more.