I’m not a fan of Object Oriented Programming. (O.O. or Oop) I make no bones about it. I’ve learned it just enough to do it and know I don’t want to do it. I’ve managed major projects written in it. So it isn’t like I’m rabid about it or like I’m inexperienced with it, or have not been proselytized to about it.
It is just that I find it hard to do for no good reason (no real gain) and obscures the fundamental actions being done by any bit of code. Ideology is NOT a good reason to make your code more obscure, more fractured, written with variables names a sentence long, or take a simple procedure and squash it into a dozen different conceptual boxes just because you like boxes.
Over the years I’ve felt a bit more alienated as ever more of the programming work done moved to OO and especially the rise of Java and web site programming being largely all that way didn’t help. At times I’d wondered if I was just too set in my procedural and functional ways to “make the leap”. Yet I’d written some test programs in Oop. I had the concepts. I just didn’t see where applying them made sense.
Then this video comes along. Done by a guy with far more Oop chops than I have. Laying out in fine grain detail just where and why OO fails to deliver on the promise. About 1/2 of it is the stuff I’d intuited. Where I just didn’t see where it was delivering what he says in fact it doesn’t deliver. The other 1/2 is more of a technical & theoretical examination of where it falls flat. Beyond anywhere I’d gotten to. Yet having it said, I see it.
The forced data types. The need for “refactoring”. The way Oop causes problems in intermodule communications. Things I’d seen “at a distance” but was unsure why. He makes clear.
For anyone who is a programmer, this video will be important for you. For those of you who have no idea what programming is about, it will likely be a bewildering string of sentences that don’t mean much full of programmer jargon about something you don’t know exists; but it might give some sort of feel for what programmers argue about at the Java Hut ;-)
A bit long at 44 minutes, but it takes that long to cover the turf. He moves fast and there isn’t a lot of “fluff”; it is information dense and doesn’t waste the time:
That we’re down to (his claim) only 5% of programmers will talk dirt about Oop shows how pervasive it has become in the programmer culture. It now dominates the Academic world. In fact, I’d assert the profession of programming did not embrace Oop so much as the Academics did, and after a decade or two, that was what most graduating programmers believed often without experience on which to base that belief.