

OOP was developed because of limitations discovered in earlier approaches to programming. To appreciate what OOP offers, let's understand the limitations of the earlier functional/procedural approach.
Does not model real-world problems well
Requires modifying all functions when new data is added to access that data
Global data accessibility - All functions can access global data without restriction
No clear boundaries and well-defined code structure
No modularity - Functional programs can become monolithic and difficult to maintain as they grow in complexity