> C++ has a large standard library.
Is it that large? i.e. is it larger than, say, Java's ?
> it's impossible to know them all, so you never really know C++
This is semantic quibbling. You know a language more if you know its commonly-used libraries better - whether they're in the standard or not.
> the various libraries don't play nicely with each other
They may not be in perfect synch, but they play ok-ish-ly with each other - as far as I can tell.
However, not playing nice is much much more of a problem with non-standard libraries - in various languages. I'm sure C programmers have that experience with a vengeance... say, everybody using different implementations of basic data structures like queues and lists and hash tables and so on.
> It's full of dark corners
Yes, yes it is. And they're pretty scary... however, that's not really because of the library size. Also, those dark corners exist, unexplored, for C libraries; it is arguably better that they be mapped once and for all, at least some of them which are somewhat-frequently stumbled upon.
...
More generally - the issue you're describing seems to be more with the combination of "iron-clad backwards compatibility" and a larger standard library:
- C has the former, not the latter
- Python has the latter, not the former
C++ has the former (upto minor points like the `auto` keyword), as well as the latter, but with warts.
The warts are there, that's true, but they're not so bad. And use of the standard library does pay off very nicely - often removing warts in your own code.