HACKER Q&A
📣 greener_grass

Is Object Orientated Programming Over?


It seems like OOP has lost the zeitgeist. Imperative Programming, Data Orientated Programming and even Functional Programing are where the hype is now. OOP is still used in large corporates and taught in some undergrad courses (usually Java), but does it have a future?

Some links:

- https://caseymuratori.com/blog_0016

- http://blog.cleancoder.com/uncle-bob/2023/01/18/functional-classes.html

- https://www.youtube.com/watch?v=uZgbKrDEzAs

- https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell


  👤 Rochus Accepted Answer ✓
Well, if you just look at the numbers, this claim is obviously not supported. E.g. it is estimated that there are billions of lines of Java code still in development and operation worldwide; Java forces the programmer to use classes and objects. Even C# is more prevalent in industry projects than e.g. the more jounger Rust or Go languages. It will take many decades before Java or C# are going to be replaced, if at all. That said, OOP is just one of the tools available to software engineers, and every engineer will choose their tools with care and (hopefully) select the most appropriate tools for the job. As with any technology hype, a lot of nonsense was talked about OOP in the nineties and expectations were raised that could not be met. This has of course damaged the reputation of OOP. But this happens with practically all popular technologies. At the moment, we can also see it with Rust, for example.

👤 trh0awayman
Not at all. There's an extremely loud online contingent that has developed a distaste for it. Mostly game developers who were badly bitten by some of the nastier parts of it in the late 90s. There's good reasoning behind some of the anger, but there's a lot of emotions, too.

I do feel like functional programming reached peak hype over 10 years ago. LtU barely seems to work at all anymore.


👤 GianFabien
Lavishly using OOP, FP, etc is a bad idea if the tools are a mismatch for the solution's implementation.

OOP is widely used for business applications (notwithstanding legacy COBOL systems) because object-oriented design generally is a good abstraction for business concepts. Perhaps Java is over-applied due to IBM for a long time thinking that they could replace COBOL with Java. Then along comes object-oriented COBOL.


👤 stop50
I would say its alive. Have you seen go and rust?