"Many programmers have no real substance in their work – the job is trivial – so they have too much time on their hands, which they use to dwell on "API design" and thus monstrosities are born"
It also explains proliferation of "cool" MVC and web frameworks, like Node.js, Angular, React, Backbone, Ember, etc.
I agree except (to be pedantic) I think Node is misplaced—it's just a runtime with a tiny standard library, nothing to do with MVC. I've actually found Node to able to be simple and nice by mostly using streams and a couple of small libraries—something most Node programmers ignore.
I actually think another problem is that programmers spend too much time following what the "big players" do and mistakenly apply that stuff to their so-called trivial work. I've wasted hours trying to sift through code from companies who thought they needed Facebook/Google-tier infrastructure with stuff like Relay/GraphQL. A simple CRUD Rails/Django/Phoenix/Node app would've been fine.
Or enterprise environments like JavaEE? Or would complexity in that area, be explained by attempted vendor lock-in?
Node using Javascript at least has first-class functions, which makes the code more expressive and readable than a lot of Java + Spring XML.
And React + flux eliminates a huge class of bugs due to state side-effects by getting rid of stateful object graphs altogether. The motivation is more profound than bored programmers tinkering with the API because they have too much time on their hands.
Still, I think that these frameworks are important, if not for their successes, then for their failures.
The thing that's more disturbing is that we (as a profession) can't seem to learn from our failures. There is too few structured research on best practices.
Our profession is younger than most of our grandparents. I want to see what programming practices will be like in 200 years (assuming we're still programming in some way by then).
"Many programmers have no real substance in their work – the job is trivial – so they have too much time on their hands, which they use to dwell on "API design" and thus monstrosities are born"
It also explains proliferation of "cool" MVC and web frameworks, like Node.js, Angular, React, Backbone, Ember, etc.