OOP is 50+ years old. Classes, objects, inheritance — it works, everyone knows it, almost every popular language supports it. So why are people talking about functional programming like it’s some revelation? Because OOP is great at modelling things. FP is great at modelling transformations. Most real software has both, and conflating the two is where the confusion starts.
What Is Functional Programming, Actually? Not “functions inside a class.” That’s just OOP with functions.
OOP has been around for fifty years. Everyone in software has taken a course on it. Most have read about SOLID, inheritance, encapsulation, polymorphism. And yet — I keep seeing the same design mistakes in codebase after codebase, from startups to enterprise projects.
Knowing the theory is not the same as writing good OOP. Here’s where it actually goes wrong.
The God Object Start a project, create a UserService class. Someone adds payment logic to it. Then notification handling. Then authentication checks. Six months later: a 2000-line file that does everything, depends on everything, and breaks every time anyone touches it.