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