The language is fine, mostly, nowadays.

The ecosystem isn't fine - just to get a project going requires picking a non-trivial set of tools and approaches, none of which the C++ standard enforces or guides to.

For example, will you manage dependencies via packages? If so, with what? What will you use for building your project? The list goes on and on.

No it's not.

The language keeps growing, with

- new features overlapping old features from previous standards without replacing them or deprecating them (function::copyable_function vs std::function, std::less<> key for transparent lookup in maps)

- new features not usable by the layman (coroutines ...)

- Cryptic syntax (reflection...)

- Stuff you are told not to use because of performance reason and that cant be fixed because of ABI (regex)

- Compile errors that are 1km long (no, concepts are not helping here, the 'nicer' message is still buried into a hot pile of template instantiation callstack).

I wonder how many programming languages would be able to devoid of all or some of these problems when they are 40 years old.

It's easy to compare new and old languages, and saying older languages are wrinkly. Let's see how other shiny programming languages look like when they are 40 years old.

There are two kinds of programming languages: the kind everyone complains about and the kind nobody uses.

Python, Java, Lua, Ruby are ~30 years old, Ada being as old as C++.

Sure, none is perfect and they have cruft and warts, but they are not such a mess as C++ is.

So a bit like Python or any other language of similar age.

Working occasionally with modern Python helped me love and respect C++ even more.

Python3 is what, 15 years old?

I start counting from Python 1.

I personally find the lack of native package management in C++ as a blessing. Go, Python, Rust has it, and this always causes pulling in infinite number of packages for any trivial operation.

sudo-rs was pulling in 1M+ LOC as its dependency chain at one point. I believe they removed the biggest offenders, but I didn't check it recently.

That's one way to look at it, certainly. There are several OK options in that space, e.g. Conan (2) and vcpkg.