Has OOP failed?

Slothie

New Member
Messages
1,429
Reaction score
0
Points
0
There’s no evidence that the OOP approach is efficient for most programming jobs. Indeed Iknow of no serious study comparing traditional, procedure-oriented programming with OOP. Butthere’s plenty of anecdotal evidence that OOP retards programming efforts. Guaranteeconfidentiality and programmers will usually tell you that OOP often just makes their job harder.Excuses for OOP failures abound in the workplace: we are “still working on it”; “our databaseshaven’t yet been reorganized to conform to OOP structural requirements”; “our best OOP guy left acouple of years ago”; “you can’t just read about OOP in a book, you need to work with it for quite awhile before you can wrap your mind around it”; and so on and so on. If you question the wisdomof OOP, the response is some version of “you just don’t get it.” But what they’re really saying is:“You just don’t believe in it.”

All too often a company hires OOP consultants to solve IT problems, but then that company’sreal problems begin. OOP gurus frequently insist on rewriting a company’s existing softwareaccording to OOP principles. And once the OOP takeover starts, it can become difficult, sometimesimpossible, to replace those OOP people. The company’s programming and even its databases canbecome so distorted by OOP technology that switching to more efficient alternative programmingapproaches can be costly but necessary. Bringing in a new group of OOP experts isn’t a solution.They are likely to find it hard to understand what’s going on in the code written by the earlier OOPteam. OOP encapsulation (hiding code) and sloppy taxonomic naming practices result in lots ofincomprehensible source code. Does anyone benefit from this confusion and inefficiency?

When the Java language was first designed, a choice had to be made. Should they mimic thecomplicated, counter-intuitive punctuation, diction, and syntax used in C++, or should they createan understandable, clear language--as much as possible like English? A “natural language.” They apparently decided to deliberately avoid straightforward, clear syntax because manyprofessional programmers wouldn’t take such a language seriously. Why? Job protection. Mostprofessions have their jargon: One benefit is that it serves to separate the pros from outsiders.Academic theorists are the second primary reason that OOP is popular, and they are also majorcontributors to its complexity and inefficiency.

OOP originated in high-variable systems modeling (such as weather forecasting), and it can beuseful in some kinds of programming. One notable OOP success is the application of some of itsprinciples to graphic user interface (event-driven component) programming. However, universityprofessors have extended OOP principles toallprogramming, not merely those specialized areaswhere aspects of OOP theory work well and make sense. Professors, bless them, all too often preferto ignore facts that conflict with their favorite theories.

I’m not saying we don’t need professors. Society often benefits from--and some kinds ofprogress depend on--people who flit around testing every new intellectual craze, taking ideas toextremes. Indeed, Peter Pan would be much the poorer without Tinkerbelle. But if I’m faced with amission-critical project, I wouldn’t seek advice from a pixie.

Although the effectiveness of Object-Oriented Programming is debatable, curiously there isalmost no debate about it. It pervades contemporary computer programming. Each new generationof programmers marches out of the universities as committed OOP practitioners. Most are simplyunaware of any alternative.

If you raise questions about OOP’s effectiveness, a hue and cry goes up from the multitude thathave invested many years and much money developing their expertise in the art of OOP.
 
Top