By defining itself against OOP as the “bad guy”, the functional paradigm (FP) has continued to thrive. “Structured programming” (with no “go to” statement) was to save us from “spaghetti code” (again, hard to reason about) and OO, in its day (I still remember), was promising code re-use among other “end of the rainbow” gold. On the contrary, complex inheritance trees may yield no such tasty fruits.
A layer in the landfill will show the publishing industry road the wave of hype and helped with the overselling. Every shelf in the bookstore (remember those?) was paved with UML and XML as the twin pillars of a vast industry.
The use case of a coder or company proceeding blithely down the primrose path only to hit a snarly heat death terminus, as the OO code base melts down (unmaintainable), is indeed frustrating and angering. Why always such an extreme use case though? Why fire and brimstone?
How about: company A gradually started coding more containerized microservices using FP rather than OOP languages, and felt this to be a positive experience.
Not a train wreck. Still pro FP.
Java by itself can’t stop meltdown from happening, it’s true. Or like I say about Python: “it gives you more than enough rope to hang yourself”.
OO took the coding world by storm, and since then we’ve seen many a meltdown story. Now FP comes along and is ready to shoulder the burden. The programs are provably correct. Bugs will be a thing of the past.
I’d say the overworked OO engineers are largely glad for their salvation and will eagerly hand off the baton. Others started shifting over a long time ago, if only by making their OO language of choice more respectful of FP’s core principles. Lots of titles in that genre.
What I recommend to Java coders is they not wait for any big meltdown scenario to goad them into working out in some more functional JVM language. Clojure is fun. Immutability rocks. Enjoy this alternative playground.
But then why endure the “I told you so” sermons of someone so deeply disillusioned, in the foreground, on top of tackling something new? Find a storyteller with no ax to grind instead, why not? You could easily become that friend, wanting to give us a better ride.
Autobio: I’m mostly a Python programmer these days, going back to an overview course at Princeton, loved both APL and J (Iverson). My focus was computer graphics and what drew me to Python was the simplified API to OpenGL offered by a 3rd party VPython. By then I’d already done thick client GUIs in the medical research space, using Microsoft’s answer to Borland’s dBase V: Visual FoxPro. Obscure, I know. I’ve dabbled in Clojure (redoing quadrays) per one of my Github repos.