Is it so mysterious, though? isn't it "simply" the thesis - antithesis - synthesis cycle? and this cycle needs time, years, decades sometimes.
OO starts in the 1970s. C++ comes 1985, Java 1995 (while smalltalk was born 1972)
Hoare talks about CSP in 1978. golang mainlined it 2009.
SQL started in 1970s and reached first consensus in the 1980s.
or take the evolution from sgml->xml->json w/ json-schema...
concepts need time to mature.
and merging concepts (like duck typing and static type analysis in python) in addition needs both base concepts to be mature enough first.
and likewise, at a personal level, brains need time to absorb the concepts. So of course "younglings" only know part of the world.
And on the other hand mature technologies often have evolved their idiosyncracies, their "warts", and they sometimes paint themselves into some corner. C++ with ABI stability; perl with sigils; Java with "Java only" and a poor JNI and "xml xml xml"; UML with "graphical language"; many languages with no syntax baseline marker "this is a C++-95 file" or "this is a python 2 file", freezing syntax...
So imho it's not simply a mysterious urge for the shiny, new stuff, but a mixed bag of overwhelm (I'll rather start something new before I dig through all that's here) and deliberate decisions (I do know what I'm talking about and X, and Y can't be "simply evolved" into Z, so I start Z).
I feel the main reason this cycle still needs those decades to loop back again is that the world underwent its digital revolution during current iteration. We can't do synthesis without breaking everything, so we instead spawn sub-cycles on top - and then most of those end up frozen mid-way for the same reason, and we spawn sub-cycles on top of them, and so on. That's why our systems look like geological layers - XML at the bottom, JSON in the middle, and at the top JSON w/ schemas, plus a little Cambrian explosion of alternatives forming its anthitesis... and looking at it, SGML starts looking sexy again. And sure enough, you can actually use it today - but guess how? That's right, via an npm packge[0].
Wonder if we ever get a chance to actually pull all the accumulated layers of cruft back - to go through synthesis, complete the cycle and create a more reasonable base layer for the future.
There's rarely if ever a time that its cheaper to pull so much back, some people do it but they are overwhelmed by the power of the accumulated cruft's inertia.
OO starts in the 1970s. C++ comes 1985, Java 1995 (while smalltalk was born 1972)
Hoare talks about CSP in 1978. golang mainlined it 2009.
SQL started in 1970s and reached first consensus in the 1980s.
or take the evolution from sgml->xml->json w/ json-schema...
concepts need time to mature.
and merging concepts (like duck typing and static type analysis in python) in addition needs both base concepts to be mature enough first.
and likewise, at a personal level, brains need time to absorb the concepts. So of course "younglings" only know part of the world.
And on the other hand mature technologies often have evolved their idiosyncracies, their "warts", and they sometimes paint themselves into some corner. C++ with ABI stability; perl with sigils; Java with "Java only" and a poor JNI and "xml xml xml"; UML with "graphical language"; many languages with no syntax baseline marker "this is a C++-95 file" or "this is a python 2 file", freezing syntax...
So imho it's not simply a mysterious urge for the shiny, new stuff, but a mixed bag of overwhelm (I'll rather start something new before I dig through all that's here) and deliberate decisions (I do know what I'm talking about and X, and Y can't be "simply evolved" into Z, so I start Z).