Why object oriented?


I just read an article from ‘Communications of the ACM’ Magazine. The article discusses the relationship between symmetry in geometry and that of the object oriented paradigm. The articles main point was that when symmetry breaks patterns emerge. It put forward that object oriented design patterns are the breaking of symmetry in object “class based” code. I could go on and on discussing this but it was not what I thought about after I finished reading it.

What caught my attention in the article was it made the statement that object oriented programming is a paradigm of organization not just computation.

According to Stroustrup [in his book, The Design and Evolution of C++], the importance of classes lies in there organizational power, rather than their computational power. He says: “C with classes was explicitly designed to allow better organization of programs; ‘computation’ was considered a problems solved by C.”

I know this is fairly obvious once you think about it, but I had never heard it put that way. When considering this fact it opens up the dialog to answer ‘Why object oriented?’. It is also a good perspective for a developers of object oriented systems to always keep in mind. Most design principals and patterns address organizational concerns. A lot of bad object oriented code I have seen and worked with could have been avoided if the organizational properties of the code was deliberately thought out.

Share on Facebook Share on Facebook


Write a Comment

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

Reader Comments

I haven’t been in the industry that long to be an expert, but one thing I do know is that creating crap code and a crap system is possible in any platform or language. My personal opinion is that XML, for example, is WAY overused and abused. Sometimes XML makes something simple something difficult and obfuscated. So what’s this have to do with OOP? My point is that sometimes procedural code is the perfect solution for a problem…and objects either get in the way or are totally unnecessary to solve the problem in a smart, efficient way. Having said that, I think that the procedural approach is only best in an extremely limited number of situations.