Software Development

Poll: Is object-oriented programming too complicated?

Let us know whether you think object-oriented programming is a good way for most developers to write software.

I was recently looking into the details of some formal object-oriented programming best practices, and the thought struck me (and not for the first time), "this is way too complicated for the real world."

It isn't that I could not understand the best practices, or that I think the average developer cannot understand them, the issue is that there are so many of these "practices and patterns" (and it feels like they are growing constantly) that I have a hard time imagining that many developers have the patience and the time to not just learn them, but internalize them. The more I look at stuff like this, the more I come to the conclusion that object-oriented programming is not a good way to write software for most developers.

J.Ja

Keep your engineering skills up to date by signing up for TechRepublic's free Software Engineer newsletter, delivered each Tuesday.

About

Justin James is the Lead Architect for Conigent.

6 comments
bullardog
bullardog

OOP is inherent in good programming. I have 26 year of programming experience and have seen theory come and go. The basic concept of breaking code into manageable pieces is a solid fundamental practice and the thought of reusing code that has been proven is also sound. Where OOP supporters get off base is when the theory overshadows common sense and experience in evaluating programmers. The theory is never more valuable than either of these assets. Design Patter = Simpleton... lol

Charles Bundy
Charles Bundy

I wished for the option [i]Yes - but if your project scope is large coupled with longevity it's an important paradigm to use. [/i] There are other paradigms such as Logic, Functional, OO Based and Modular that have their niche. E.G. I wouldn't suggest OOP for an embedded project as it would be like swatting a fly with a nuclear powered sledgehammer. :)

Tony Hopkinson
Tony Hopkinson

OO after all came out of the complexities of attempting to describe over-complicated designs in procedural code. Is OO too complex? No. Is applying it in environments where everything but the existing code is allowed to change, complicated? Most definitely....

nate.irvin
nate.irvin

Many instructors teach OOP is a way that's too complicated, and a lot of new programmers design systems are way too complicated. OOP can be very simple, and understanding even its most basic concepts goes a long way to making code more discrete and decoupled. The more advanced concepts (e.g., the more complex kinds of polymorphism) are rarely useful anyway. Some languages also make it way too complicated. C++ is a great language, but the way it composes classes and inheritance has always confused me. It's been years since I've worked with PHP, but (at least its early) class/object structures were hard to read. C# and Java on the other hand are very clear in their OOP implementations.

dogknees
dogknees

... is that programming is an inherently difficult process and cannot be simplified beyond a certain point. Are we at that point with OOP? Possibly not, but I don't think we're too far from it. Maybe what's "broken" is not OOP, but the "patterns" meme. Sometimes I think we try too hard to force things into a standard pattern rather than building an appropriate one for the problem at hand from first principles. Trouble is that needs a more pure computer science approach than most programmers are familiar or comfortable with. Personally I think to be a good programmer, you need to have an inherent love of the esoteric and the formal (read mathematical) approach to computing.

auogoke
auogoke

I got the OOP concept from the beginning but the way languages like C++ implemented OOP made it difficult. Ruby is currently one of the best implementations of OOP. Ruby that I have seen. Ruby makes it easier to understand [and appreciate] some things that Java is trying to do.

Editor's Picks