I think the answer to the question comes from teaching a generation of programmers/software engineers that OOP was the *only* way to code. The philosophy was that using non-OOP was "previous generation", was inefficient (ie dumped too much low level work that could be handled more efficiently by the system) and was the reason why there are mounds of bad code in existing applications.
Unfortunately, the all OOP approach meant that understanding a lot of basics (ie pointers, array handling and memory management) was never properly taught resulting in programmers falling back to OOP in situations where they know it's not the appropriate choice but not having the knowledge base to provide the best approach to solving the problem.
I'm not saying that OOP is wrong, for the vast majority of today's applications, it is a more than acceptable, but there is a sizable fraction where only having OOP in your toolbox results in more work, bloat, overhead than is necessary which is why people curse it.
One of the problems with OOP is that it has been treated as the One True Faith, at least by some people. I write quite a lot of C++ code which uses plain old C style functions, without them being member functions of an object. I am not actually sure that you can do that in Java.
Talking of Java, it is fairly clear that many programmers brought up on Java do not not understand certain fundamental concepts, such as the difference between pass-by-value and pass-by-reference. These are pointer concepts, and ever
If I set here and stare at nothing long enough, people might think
I'm an engineer working on something.
-- S.R. McElroy
Only approach taught in '90 and later (Score:5, Insightful)
I think the answer to the question comes from teaching a generation of programmers/software engineers that OOP was the *only* way to code. The philosophy was that using non-OOP was "previous generation", was inefficient (ie dumped too much low level work that could be handled more efficiently by the system) and was the reason why there are mounds of bad code in existing applications.
Unfortunately, the all OOP approach meant that understanding a lot of basics (ie pointers, array handling and memory management) was never properly taught resulting in programmers falling back to OOP in situations where they know it's not the appropriate choice but not having the knowledge base to provide the best approach to solving the problem.
I'm not saying that OOP is wrong, for the vast majority of today's applications, it is a more than acceptable, but there is a sizable fraction where only having OOP in your toolbox results in more work, bloat, overhead than is necessary which is why people curse it.
Re: (Score:1)
One of the problems with OOP is that it has been treated as the One True Faith, at least by some people. I write quite a lot of C++ code which uses plain old C style functions, without them being member functions of an object. I am not actually sure that you can do that in Java.
Talking of Java, it is fairly clear that many programmers brought up on Java do not not understand certain fundamental concepts, such as the difference between pass-by-value and pass-by-reference. These are pointer concepts, and ever