K.I.L.E.R said:
So not to pollute the other thread with OT stuff, like a few posters have done, I have decided to continue the discussion.
Why is it technology advances so fast and programmers are stuck with only rubbish?
All programming languages that I've seen are rubbish at best.
Making a good programming langauge is rahter hard. On one hand, you would want to design the language so that people can be as productive as possible in it while still producing programs of acceptable performance; on the other hand, you want to make the langauge simple enough that people can learn to program in it without being an Einstein/Hawking-class supergenius. I tend to get a rather distinct feeling that these goals conflict with each other; in particular, functional languages tend to split programmers into one camp that claims huge productivity increases and another camp that finds them incomprehensible to the point of utter uselessness (one prominent language in this category would be Haskell.)
Also, even if the Ultimate Langauge was unveiled tomorrow, there is still an enormous inertia to overcome, with tremendous amounts of retraining needed, and the Not-Invented-Here syndrome, and the enormous amounts of code written in lesser languages that still needs to be maintained.
If you were running a Java shop and was presented with a language that would make your programmers twice as productive for the rest of their lifetime, at the cost of 1/2 year of retraining, during which your programmers wouldn't be duing very much useful work at all, would you stick with Java or retrain your programmers? (this problem is similar to that of retraining your people from QWERTY to Dvorak keyboard layout; while Dvorak has a widespread reputation for being superior wrt typing speed and RSIs, actually getting people to change over is difficult, expensive and time-consuming enogh that few organizations ever actually try such a stunt.)
They can't read your mind, they are either too low level or too high level without control(I want control over this so I can code the way I want), they have too many features, not enough features, etc...
In the absence of mind-reading capabilities, I prefer to have languages with strong static error-checking capabilities - it is much quicker to fix compile-time errors than runtime errors. As such, I find e.g. the rich-but-strict-as-hell type system of OCaml substantially more attractive than the much looser type system of C++. (That does NOT however mean that I find a language like Pascal very enjoyable; it is strict in a remarkably useless manner, to the point where is it just painful rather than helpful.)
Personally I wish I could just hook my bloody PC up to my head and program that way.
I've read something on Slashdot a few months ago about computers linked to people's heads, how is that going?
When is the next update to C++ and what will it include?
What do future programming languages offer us that current languages do not?
Hopefully, future languages will offer facilities that make concurrent/multithreaded programming at least somewhat less painful than death by a thousand papercuts. Langauges like Fortress, as well as the recent Tim Sweeney
presentation, are interesting steps in this direction; Java and C# are NOT. This is getting rapidly more important; the difference may not be dramatic with today's dual-core processors, but Intel has 100-core processors on its roadmap and programming THOSE in C-family langauges (C/C++/C#/Java/D) is not going to be pretty.