syd wrote:
I'm really amazed how slow is the process.
first time I heard about c++ 0x was back in 2005, on stroustrup's blog. today we are still waiting for a vote. then we'll have to worry which compilers are standard-compliant, and which part of the new standard is portable.
Not exactly : the vote already happened.
For the validation of ISO, it's the ISO administration that is very long.
For the compiler adoption, in fact it's one of the fastest adoption of new C++ features. Last standard took years. At least we have chances to have a feature-complete C++0x compiler in some years.
Some of the features are said to be trivial to implement because the compiler makers proposed them or already used systems to do it or simple already have everything ready for the implementation. That's what is implemented first in the compilers you know.
Some other features are said to be hard to implement. Those one are said to be complex because they require "massive" changes in the compiler. So don't hold your breadth, it will take years. I think we'll get a good idea of the implementation speed by the beginning of 2011.
There is one issue that the standard comity doesn't seem to worry about: interoperability.
The ABI hasn't been standardized, which introduce an inconvenient dependency on compilers. If C++ had standard specifications on calling conventions, symbol mangling, _export/_import keywords, and a standard .lib format; C++ binaries would be compatible between compilers, and consumable from other languages.
An application using some cross-platform library like QT wouldn't need to be compiled for each platform, it would only need to be re-linked (which could be done automatically at runtime).
These are the reasons that makes C++ slowly declining. The only reason it's still here today is that there is a huge amount of code locked in this language, which doesn't gives any space to alternatives.
I've read a lot about the ABI and there is some problems with platform/compiler optimization etc. Not all platforms are suited to the same ABI.
That said, they plan seem to work on a standardised ABI, at least in part. For C++0x they added specification about threading and there are plans for the following standard (that would be due in 2015 if all goes well--or at least better than C++0x).
What bother me is the lack of experimental implementation of the Concepts (type system for templates).
You might be interested in following the dev of CLang that is a C-based languages compiler that you can read about there:
http://clang.llvm.org/
gcc will have C++0x features certainly quicker than CLang but I'm really interested by some features of this compiler, like the fact that it's easier than gcc to hack in, that it's module based, and the more important feature for a user dev. : it compiles FASTER.
Can't wait for a stable version.