C++ Compilers Then and Now
Dean Michael Berris lays out some great talking points on C++ Soup about the state of C++ compilers today, and in years past. On many older platforms (Sun, HP, IBM) C++ compilers have lagged behind the standard, done things in very non-standard ways, and have had major issues in template support over the years. Mr. Berris makes great points, that PHP, Python, Ruby and Java have not suffered this issue - in that there was never any standard reference implementation, like there is for those other languages. Whether Mr. Berris realizes it or not, I believe that GCC is slated to become this reference implementation. GCC has implemented a large segment of the C++0x standard, and is continuing to work on implementing the rest of the standard language features. Many vendors are now packaging GCC by default on their platforms.
GCC tries to maintain many of the binary interfaces between versions that the largest systems vendors desire, and tend to make incompatible changes in minor version releases. In some ways this is similar to the way that Microsoft has supported development through Visual C++ 6.0, Visual Studio 2005/2008, etc. Come the next revision of the C++ standard, I fully expect GCC will be the reference implementation.