Disclaimer: Poke, poke, it was supposed to be humorous. I code as much C++ as I do Java and like both languages. I was just pointing out some of my pet peves about C++ development. > > Are they all thread safe? > > What? _Any_ code can be not thread safe, even a java package you get > from somewhere... Yes, but I've found that a given C++ library is much less likely to be thread safe than a given Java library. Many C++ developers don't want to take the performance hit of making everything thread safe. Plus, you often have to turn on/off compiler flags to produce thread safe code. For example, HP's cfront compiler's exception implementation is not compatible with threads. Plus there's no de-facto standard C++ threads implementation. There are 4 different implementations that I can think of off the top of my head: fake POSIX, real POSIX, Win32, Sun LWP. This leads to mucho compatibility problems. Java has simplified this mess by providing threads as part of the language, albeit with some costs. > > Which thread API do > > they use? How ANSI compliant are the headers? Oh no, they named their > > widget with the same name as our giget. Why or why didn't they use > > namespaces? Oops another Microsoft non-standard extension. > > Namespaces is a very _STANDARD_ thing. Not Microsoft, not extension. Yes, but not all C++ compilers implement namespaces and hardly anyone uses them on the compilers that do. For example, Microsoft still uses name prefixing scheme (IDirectX8This, IDirectX8That) when its being nice and the rest of the time it polutes the global namespace with all sorts of goop (TRUE, FALSE, DWORD, LPDWORD, WORD, ...). > > Do > they use the > > same name mangling scheme? > > If not compiled with the same compiler (/version) no, for obvious reasons: > because vendors do not want to agree on a common ABI, so they can lock > you in their "standard". Vendor lock is something Java hopes to fix. > > Which version of GCC were they compiled with. > > Which version of the GNU runtime libraries work with this > compiler? Oh you > > mean I have to download this patch from Oogle's site in order > to make GCC > > 4.5 work with Kobop's libraries? > > What have this to do with C++ specifically? Just ranting about a typical C++ development project. Mike