It seems as though text-based computer languages have hit a brick wall of sorts.
Two of the bigger productivity gains that high-level languages have conferred on us are abstraction, and the related ability to say more with less. These two things allow us to get unnecessary clutter away from our eyes, and to be able to implement software at a level closer to the real-world. Thanks to today's languages, I haven't had to implement a basic data structure from scratch in over a decade. But each of these benefits comes with a price, and the farther we stretch these capabilities, the greater that price. Are we nearly at the point of diminishing returns? Here's why I ask this:
* Abstraction--by definition--means hiding details that don't seem relevant at the moment. Yet the specifications we are given can call for functionality at any level of detail, and the one we hide today is the one we need to change next month. We have to exhume these details in order to tune our code for performance, and it gets circumvented as systems undergo maintenance.
* As languages have gotten more powerful (expressive), our need to manipulate bits, bytes, characters and numbers has not changed. We interface with a messy world. To compete successfully as a general-purpose language, every new entrant has to be born with a majority of the features of the best extant languages. As further proof of the continued need to access low-level details, note that most graphical programming environments have a scripting language, to make them capable enough for the real world. And for debugging, the metal itself is the only limit on how far down we may have to go to find a problem.
Textual languages must grow in complexity in order to grow in power. You can't say more with less typing unless the underlying language features get more complex to compensate. But human beings have cognitive limits. OO has been around a while now, but few developers use more than 1/3 of the known OO technology. Same for templates/generics. Aspect-oriented programming might be too abstract for some developers. One also has to consider that developers come in a range of capabilities, and the least capable person may end up maintaining the top dog's code.
In summary, I'm seeing a dearth of major new language features that make a _big_ impact for a _majority_ of developers. Languages like C# have new features, but nothing that I find earth-shattering; they are mostly rounding off the rough edges from previous languages and renaming the keywords. So I repeat my question: Are we at a point where all the major, usable innovations in textual languages are here, and any improvements are going to come slowly, and be incremental?