Was object-oriented programming a failure? – Quora

From the discussions in my Quora digest recently, a brilliantly simple and cheeky question:

 “Was object-oriented programming a failure?”
( free signup required to see the whole thread)

Note the use of the past tense. You gotta love trolling for Java apologists.

To be fair, you gotta love trolling for Python believers too. The difference, of course, is that the Python believers are usually right. 🙂

If you read the Answers, there are some very thoughtful critiques . The best of them seem (my favorite is by Joe Wezorek) to conclude that Object Orientation is a useful way of thinking about certain things – but maybe is a relic of the past, developed as a good response to the specific kinds of software problems that were prevalent in the 1980s, and probably gets used too abstractly and too blindly to be called good practice.

Another good response (by John Colagioia) appreciates the fact that Object Orientation provides some useful scaffolding: “You might not end with a great design, but you can have a passable design if you ‘implement every noun as an object, every verb as a method, every adjective and adverb as a condition.'” I can get behind that.

But the over-abstraction that we see in some languages–and really, this may just be because it’s being poorly understood and taught–is a real stumbling block to having more people become coders, and having our existing coders be expressive with their work.

My own opinion is that the over-abstraction may just be a natural interaction that happens when engineering meets the corporate business world. You end up with people who think a certain way about process and content and how they should work in the world, and before you know it, you’ve got a gospel that turns an otherwise creative, dynamic act (programming) into an exercise in over-architecture and bloat.

But my favorite bits are still the ones where the Java folks get teased.

Learn To Code, Learn To Think : 13.7: Cosmos And Culture : NPR

It may be that learning to code is the best way to develop those very thinking skills.

Programming languages come and go. And it doesn’t much matter whether most people master the subtleties of semicolon use in Python versus C. But the basic abilities to think a problem through carefully, clearly and thoroughly are essential for just about all people in just about all fields.

The analogy to cursive handwriting turns out to be an instructive one, though perhaps not for the reasons intended. New research, summarized in a June 2nd article by Maria Konnikova at The New York Times, suggests that the process of learning to write cursive may itself be important for learning to read, to write and, perhaps, even to generate ideas — no matter that the resulting ability is often replaced by a keyboard and decent typing proficiency.

Similarly, it may be that programming is a skill that makes us the kinds of thinkers that we need to be, even if we ultimately have the option of outsourcing our coding to clever machines.

via Learn To Code, Learn To Think : 13.7: Cosmos And Culture : NPR.