C++ tadinya memang dikembangkan sebagai C yang berkemampuan OOP. Tadinya. Tapi kemudian C++ dikembangkan sebagai bahasa multiparadigma, dan OOP hanya salah satu feature yang barangkali bukan dianggap feature terpenting. Waktu bahasa lain menstandarkan pengembangan ke arah component-based programming, C++ tidak larut terbawa. Component-based is OK, tapi bukan bagian dari bahasa. Itu yang masih membedakan C++ dengan Java dan C#.
Scott Meyers, dalam wawancara tanggal 16 Desember, menjelaskan aspek lainnya:
«I’m going to speculate now, because I haven’t been watching Java and I’ve just got my feet a little bit wet in .NET. But I would say that while the C++ community was focusing on templates, the STL, and exceptions?oddly enough the three are wrapped up together pretty closely?what they were not doing was component-based development. For example, there is no huge collection of class libraries for C++. The standard library for C++ is pretty impoverished. In the meantime, the rest of the world was busy creating huge class libraries that let you write all kinds of really neat applications without having to write very much code. Certainly Java is famous for its libraries. .NET has a huge number of libraries.
— I think a schism existed between the C++ community, which was still focused on language issues, and the other prominent development communities, which pretty much left the language alone. Java already had exceptions, but didn’t have templates and had nothing like the STL. Yet the Java community focused on writing a whole bunch of libraries that everybody can assume will exist everywhere, libraries that will let you write applications really quickly. The end result is, we have templates in C++, but there’s no way to write user interfaces or talk to databases. Java has no templates, but you can write user interfaces up the wazoo and you can talk to databases with no trouble at all.»