Paul Graham talks about an interesting idea in his essay “The Hundred-Year Language”. He imagines what programming languages might be in a hundred years from now, and what current languages will disappear because of their ineffective essential axioms. He, in fact, uses an analogy to get his point across: “It's like the rule that in buying a house you should consider location first of all.” Where the house is the language, and the location is the foundation. Because you can improve the house all you want but not change its location.
We can also bring other languages to the table: human languages. Those not man-made. Their growth depends on context. English has become a business type language while Italian, to name one, has been confined to a more ‘artistic’ language. Human languages’ development has evolved in the same way a programming language, I think, will evolve. That is, programming languages will become more efficient by reducing their axioms. Although, other programming languages will not have this same evolution because they will evolve to be efficient and not convenient. But the author remains hopeful: “In language design, we should be consciously seeking out situations where we can trade efficiency for even the smallest increase in convenience.”
“Inefficient software isn't gross. What's gross is a language that makes programmers do needless work. Wasting programmer time is the true inefficiency, not wasting machine time. This will become ever more clear as computers get faster.” This is also a true statement. I believe the world thinks computers can do things by themselves, thus designing inefficient software where programmer’s time is wasted to give way to a faster implementation. And, this type of thinking brings more trouble than solution because it resolves an issue on the surface, but the foundation is ignored, which at the end brings more problems to be corrected. Which would not happen if the essential code were structured properly.
At last, we must rethink our way of designing programming language because what we use today will not be relevant tomorrow. But I can also see the difficulty in doing so because “[…] our ideas about what's possible tend to be so limited by whatever language we think in that easier formulations of programs seem very surprising.” So, it is hard to reduce anything to its core value because we tend to think in a much more superficial level.
All in all, I remain as hopeful as Paul Graham in that technology will not overcome us wholly. There will be programming languages that become irrelevant immediately, but we just need one to work properly so it can evolve at the same pace as future technology.