I'm not sure what business model you're referring to in which it's easier to just ingest data and run analyses... but in customer-facing systems or logistics programs or online reservations software, where lots of users are passing around discreet collections of data pulled from some initial query and expected to parse back into the database after modifications, having strongly typed objects that you expect to be passed around is absolutely critical. E.g. I never worked for Lyft or Uber, but it's hard to imagine any sane way their front ends could be written without objects for routes, vehicles, waypoints, customers, payment sums, etc.
Re:Ask HN: Any Tips for Understanding OOP?
by vanilla-almond on Wednesday June 09, 2021 @06:52AM
(#27446458)
I agree with what you say. However, OOP continues to dominate the programming field and the most widely-used languages are all OOP languages e.g. Python, JavaScript, Java, PHP, Ruby, C++, C#.
The stranglehood that OOP has over developers has loosened a bit in recent years. In particular, a whole class of newer programming languages (pun intended), e.g. Rust, Go, Nim, Julia, do not pitch themselves as OOP languages, although they all have object-like features.
There was a time when OOP so completely dominated the profession that any programmer who disliked or struggled with OOP was cast as a programming pariah. Thankfully those days have passed.
But this simulation concept is not particularly well adapted to the world of business and information technology. Business is highly data driven and most business objects are defined as data. The objective of business software is typically to process input data (lots of it) and produce output data. There is little real world evidence to show that this can be done easier, faster or more efficiently using OOP.
In my opinion, unless you're creating a real world simulation of some sort that will exist entirely within computer memory, binding data and code together offers little practical, real advantage. When it comes time to communicate or store business data, the OOP code/data binding actually becomes more of a hinderance.
This is not to say that OOP is not useful. It's no surprise that one of the most popular applications of OOP is building graphical user interfaces --- an on-screen simulation of a paper data form that is built and exists entirely within computer memory.
Applying OOP to problem spaces where it is not well suited often results in slower, more complex, harder to maintain applications. Instead of spaghetti code, OOP programmers all too often tend to create spaghetti objects that obfuscate more than enlighten.