Remix.run Logo
nnevatie 7 hours ago

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.

Davidbrcz 6 hours ago | parent | next [-]

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).

bayindirh 5 hours ago | parent | next [-]

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.

bregma an hour ago | parent | next [-]

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

Davidbrcz 4 hours ago | parent | prev [-]

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.

pjmlp 5 hours ago | parent | prev [-]

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

whstl 4 hours ago | parent | next [-]

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

bregma an hour ago | parent | prev [-]

Python3 is what, 15 years old?

bayindirh 7 hours ago | parent | prev [-]

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.

nnevatie 6 hours ago | parent [-]

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