Churn and the Tech of the Day
There is a lesson to be learned watching the continual churn of the tech landscape: a sucker is born every day. If you look at what technologies are popular, fad of the day tech, you'll notice the same repeating patterns of behavior.
1.) Company X sponsors technology Y to differentiate itself in the market place
2.) Technology Y is based on technology Z with some minor difference, technology Z is itself based Q which is the root tech of all popular tech.
3.) A community of early adopters use Y to build the same old apps A but with minor variations in style due to (Y - Z) called A'.
4.) Limitations in A' are not discovered until large scale production use, and a sufficient number of developers are writing A' apps by writing Z in Y.
5.) The pressure exerted by the weight of A' apps lends political weight to "solving the problem", and so a research project prototype is given a green light to be used in production.
6.) goto 1.
This occurs not because tech Q wasn't sufficient, nor because tech Z wasn't adequate. It doesn't occur because X needed Y to solve it's problems, or because A couldn't have been implemented in Q. It has absolutely nothing to do with the technology. It is all about politics.
The primary source of cheap developers is a system of universities. These universities generate a steady stream of trainable apprentices who require another 5 - 10 years before they reach a journeyman level in their craft. Once they reach that level, only half as many remain in the industry, and half of those move into the management track. By the time they reach the 15-20 years necessary for mastery of the art, only about 1/16 are still in the industry, and only a small portion of those are still practicing. After that, ageism in tech results in a wall of unemployment, preventing the general existence of grand masters in the art. After all, novelty seems like a young man's game.
Politically, the most expedient way to stay relevant in a cut throat churn based labor market is to use the new tech every chance you get. It is better to be a novice surrounded by novices than an expert surrounded by novices. By changing the core technology every few years, you can minimize the risk of having someone actually attain mastery over the subject matter. This allows for justifying ageism (old dogs can't learn new tricks) and for suppressing wages by exploiting a steady stream of neophytes. Managers who adopt this strategy are rewarded with bigger teams and more responsibility. The churn also helps justify continued redevelopment as no one knows how any of the tech works anyways. This coincides nicely with the need to rewrite everything every few years.
Tech of the day is the "make work" of the entire industry. We create this environment to justify our industry's continued growth. There are approximately 20 million software developers in the world, most of whom are reinventing wheels day after day. As software has nearly 0 marginal cost to reproduce, any given piece of software need only be implemented once for all to share. But politically, supporting that level of sharing is untenable. You could never justify managing 20 million people doing redundant work if it weren't for the churn. The churn justifies those jobs. The churn justifies the redundant implementations as "competition", even though nearly all of those competing systems are functionally equivalent by design.
The absence of grand masters in the art and the premature promotion of apprentices to journeymen produces an ignorant workforce who is largely unaware of the prior art. It is as if playwrights and painters had never read Shakespeare or seen a Vemeer. Tired old ideas seem fresh and new only because the audience has never seen it before. The industry as a result remains in a state of perpetual infancy, as it fails to mature. Churn kills maturity.