No.8390
It doesn't really matter. It's not "amazing" nor is it the devil. It's nothing more than a convention. Sometimes that convention is applied to an entire language (Java, C#, Smalltalk, JavaScript), sometimes that convention is applied to most if not all of a software project, sometimes that convention is applied partially, to various components, of a software project (common in C++ software projects). Personally I think it makes sense to use OOP when designing the GUI component of a program, especially when you start implementing callback functions when continuously checking onclick, onmouseup or onhover events in a program loop.
There are a few hazards to look out for in OOP though, such as inheritance hell, design patterns, CPU cache unfriendliness and dynamic/virtual dispatch performance overhead. Inheritance hell can be mitigated by preferring composition over inheritance. Rust for example doesn't support inheritance for this reason. Design patterns are thankfully out of fashion and largely made obsolete by functional programming features added to all the major languages so no one wastes their time memorizing that stuff. The last two hazards only really matter in low-latency programs like video games and high-frequency trading, but the way you'd deal with them is by writing structure-of-arrays instead of array-of-structures and banning virtual dispatch (no virtual function/method calls allowed).