Things have not stayed stale for the past 20~30 years, in fact, state of programming have not stayed stale even in the recent 10 years.
We've been progressively solving problems we face, inventing tools, languages, frameworks to make our lives easier. Which further allows us to solve more complicated problems, or similar problems faster.
Problems we face now, like concurrency, big data, lack of cheap programmers to solve business problems were not even problems before, they are now, because they are possible now.
Once we solve those problems of today, we will face new problems, I don't know what they would be, but I am certain many of them would be problems we consider impractical or even impossible today.
Yeah it's interesting, every time I hear "software has been stagnant for decades!", I think to myself that my god, it's hard enough to keep up with the stagnant state of things, I can't imagine trying to keep up with actual progress!
Keeping up with actual progress should be easier. The current "stagnant" state could be called that because your attention is wasted on miracle cures that promise the moon, but mostly deliver a minor improvement or make things worse.
I don't see a bunch of miracle cures that promise the moon, I see a bunch of things that promise, and sometimes deliver, hard-won incremental improvement. The OP seems a lot more like a moon-promising miracle-cure than all the stagnant stuff I'm wasting my attention on.
To clarify my moon examples would be NodeJS, MongoDB is web scale, HTML5/WebGL/VMs/Flash on mobiles, fast JIT/VMs for languages that aren't designed to be fast from the beginning etc.
Things that are technically hard and get a lot of hype. And maybe MVC/OOP/DI/TDD design patterns and agile.
The OP is promising something that's more of an architecture design issue like those of MVC libs. If he fails it will be because of a product design that doesn't catch on. It has no guarantee of catching on even if it's good. LISP and Haskell didn't. But their ideas trickle into other languages.
Yeah I had a fairly good sense of what you meant by promise-the-moon technologies, and I believe many of those you mentioned to be exactly the sort of hard-won incremental improvements that I was talking about. Good ideas trickling down is also the exact sort of hard-won incremental improvement I'm talking about.
I suppose my general point is that things aren't stagnant, they are merely at a point where real progress tends to be hard-won and incremental. This may be frustrating to visionaries, but it seems both inevitable and perfectly fine to me.
Except MongoDB's and Node.js's incremental improvements in their marketed use case of easy scalability weren't worth your time if you really were concerned with scalability. You would have been better served by existing systems.
So the marketing pivoted to being simple for MongoDB and being SSJS for Node. In Mongo's case scalability was severely hampered by the fundamental design, but many developers fell for the marketing and it cost them. Node.js can perform on some hello world benchmarks, but writing large scalable systems was a minefield of instability, callback hell bugs, lack of JS support for CPU intensive tasks, etc. It's still catching up to systems that existed in 2007.
The incremental improvement on scalability is nowhere to be seen. They do improve some other metric like programmer enthusiasm. Other newcomers did improve on easy scalability after more careful thought and years of effort but the hype machine largely left the topic.
A similar case can be made for HTML5/Flash promises for mobiles. You can use it but it often makes the process more difficult than writing two native apps in many cases. Good luck guessing which.
This is sort of my point about incremental improvement being hard-won, though. It's really difficult to make something that is actually better than other things, even for pretty narrow criteria. That's why I'm always suspicious of things (like the OP) that claim they will bring a major sea-change of betterness across broad criteria.
I'm optimistic about our field and hope the machine/deep learning crowd don't crack AI so quickly (allowing computers to program themselves obviously puts us out of business).
Things have not stayed stale for the past 20~30 years, in fact, state of programming have not stayed stale even in the recent 10 years.
We've been progressively solving problems we face, inventing tools, languages, frameworks to make our lives easier. Which further allows us to solve more complicated problems, or similar problems faster.
Problems we face now, like concurrency, big data, lack of cheap programmers to solve business problems were not even problems before, they are now, because they are possible now.
Once we solve those problems of today, we will face new problems, I don't know what they would be, but I am certain many of them would be problems we consider impractical or even impossible today.