Will Future Generations Recognize Object Oriented Programming as an Evil?steemCreated with Sketch.

in #programming6 years ago

To start the post I must admit to the world that I am old. I started programming in the 1970s.

I was an early advocate of Object Orient Design and sold a few companies on adopting OOD frameworks for their organizations.

An object is just a way to group programs and data. People had a variety of ways of grouping objects and data before intellectuals adopted the term "object."

I liked Smalltalk. I disliked Bjarne Stroustrup's implementation of object-oriented ideas in C with Classes (aka C++). I figured it would get better with age.

It didn't.

Please note: I don't dislike OOP because it is harder than procedural programming. I dislike OOP because the OOP languages on the market never accomplished what the proselytizers claimed OOP would accomplish.

OOP does not simplify program design. What OOPS does is to take the complexities that might exist within a procedure and spreads the complexities across the interface of numerous objects.

OOP did not stop software bloat. The Windows operating system was created with OOPS. With each release Windows and the programs depending on Windows become more bloated. In many ways the become more buggy.

BTW: it is really fun to turn an procedural program into an OOP program. One creates an object by grouping functions and data. You can take the procedures from a legacy program, group them into objects. If the legacy program was well designed; you will have a well designed object program.

After rolling up a group of procedures into objects, one can discover new paths through the program. With little work, one adds new functionality to existing code.

The next generation who has to extend the first generation OOP design is stuck with a mess. Programmers have to support every path through the newly created object.

I disliked Stroustrup's C with Classes because it forces one to adopt a hierarchical structure on to one's code. Computer code written in a hierarchy becomes rigid. The same thing happens in human societies. Societies based on a hierarchical structures tend to become rigid as well.

There is an interesting remedy for OOP code that has become too rigid.

It turns out that, just as one can roll up procedures into an object, one can encapsulate paths through an object with a procedure.

Anyway, while I loved the original discussion about Object Oriented Design, I've yet to encounter any program written in object oriented programming language that I actually liked.

Anyway, I was really delighted when I logged into Youtube and found a video by a programmer who appears to be respected (I am not respected) who is saying what I've thought was the case for the last few decades:

Coin Marketplace

STEEM 0.19
TRX 0.18
JST 0.031
BTC 89741.18
ETH 3181.15
USDT 1.00
SBD 2.88