a third way of programing, what I would call mixed OO programming, lots of programers use it. they build a huge procedure that deals with little classes, and they get very interesting results.
In the software world we usually call "interesting results" incorrect, unpredictable, or buggy.
I've heard it said that if you have a procedure longer than about 10 lines you need to rethink it: it's probably better if you refactor it out to several procedures that are easier to modify independent of the whole.
Okay, so take that a tiny bit further and attach the global data to each piece of code that deals with it. What have you got now? That's right. An object.
So that "huge procedure" that is undoubtedly unmanageable by anyone other than the guy who wrote it, has become smaller more manageable objects. Anyone can come in and work on one of those objects / pieces of code and adjust it. As long as the interface to the object remains the same, it will not affect the rest of the system.