Programming in a Mad Max Wasteland
devblog.avdi.org
devblog.avdi.org
https://www.youtube.com/watch?v=NftT6HWFgq0
Some technologies are radical new developments designed to give people some new capability they never had before. Other technologies are refinements of some previous capability technology, restricting the capabilities but more suitable for some particular problem-space or setting. It's not necessarily "nobody has big ideas anymore", it's just a natural cycle.
On the other hand, if you want a less-charitable view, consider this: programming in the 1980s was dominated by ideas from C, a language developed in the 1970s. Programming in the 1990s brought the influence of Smalltalk, a language developed in the 1970s. The 2000s saw the introduction of functional programming ideas from Lisp, a language developed in the 1970s. These days, the hot new programming language features are being taken from Standard ML, a language developed in the 1970s. Someday the 1970s will be mined out, and then we can start coming up with new ideas again.
You don't see many new revolutionary cars around either - or at least they all conform to the same idea having four equally sized wheels, 5 seats and a round steering wheel. I'm guessing 100 years ago you saw many alternative "paradigms" in the car making domain too, before our society settled on something that worked for the majority of us.
This touches pretty close on PG's idea of the 100 year language [1], which is worth re-reading so thought I'd mention.
Likewise, some more self driving in PL would be nice, it is way too hard and tedious today then it probably needs to be, suggesting there is still a lot of room for improvement.
Any sci fi author since the 50-s?
This is not as bad as it seems. There is something to be said with engineering with time-tested and well-established components. Even imperfect components with well-understood imperfections may be preferable to things that aren't well-understood, but some guy somewhere says may be theoretically perfect. But the flip side of the landscape being well-explored is that there is little new stuff to discover.
Two major places where you can see legitimately new stuff come to mind. First, Haskell. By being seriously, no foolin' concerned about purity and immutability, there's been a lot of work done in Haskell that in any other language, even those that sort of came close, was done by simply doing something impure and calling it a day.
Second, Rust. At the moment my perception of the community is that it is very young, the language is still changing significantly, and the concern right now is more about making new things work at all in the new paradigm than about the best way to do them. There's a big influx right now of the very new programmers who will later be doing new experiments, but they're still learning. Such exploration is absolutely necessary. But in the next year or two I bet we start to see a transition to more genuinely new things as the capabilities start to sink in, and the feedback loop between the real programs people are writing and what features the language grows develops.
(Personally, if you're really interested in new things, I'd stay here rather than go to the really academic languages. It is my perception that the academic languages often have serious problems because they've cut themselves off from the practical world and severed themselves from an incredibly valuable feedback loop, the one that Haskell has used to propel itself to what success it has by actually letting real programmers into the sandbox to try to do real work. Academia is, in its own way, stuck in a rut right now at the limit, IMHO, where it all sort of looks very same-y to me.)
> the language is still changing significantly
Rust itself isn't changing these days (except for once-in-a-while adding new features backwards-compatibly), we're on to the next stage of maturity where only the libraries are rapidly changing and the prevailing idioms are still shaking out. :PFor programming languages I know the google term "conlangs" and I know that there is a scientific lang development place called "lambda the ultimate". If you want to see and use the cool stuff, look for that.
Its pretty dumb, but then again, programmers are pretty dumb since they're people.
But if you're looking for technology that's just making the transition from academic to practical, check out Idris, as one of the comments suggests.
Radically new, exciting languages exist, but they're not yet practical.