I was lurking around for a few days, finally made account haha . So I just wanted to give my perspective to this discussion since I’m also following both languages closely.
For most of the people who say C++ comes with a baggage of old not-awesome things, just don’t use them. You don’t like macros? I don’t think I’ve used them in last 5 years. You don’t like templates? Man, you’re really missing some good stuff. Templates are turing complete by themselves and in fact I myself wasn’t good fan of them in early days, but as soon as I started practicing, they’re an excellent tool for generic programming and library stuff.
Still if you don’t like it, then just don’t use it. It’s not like your program will crash and burn because you aren’t using a certain feature. They’re language features for a reason .
Clang tooling is finally getting mature, code-completion works without delay, introduction of rtags have changed everything in area of refactoring, static analyzers prevent almost every noob mistakes, and btw have you seen GSL? And and constexpr is really golden feature. Why wait for runtime if you can do something at compile time only. Not all programs are meant to do things at runtime and its a boon for c++ developers. And I haven’t even talked about modules, concepts, ranges, contracts and stuff that’s already been implemented and coming soon in standards. And finally we have lots and lots of TS as the standard committee calls them, for File System, Concurrency, Networking and things like that. It will take hours to explain everything but a lot have changed and finally developers are writing in C++ and not some C-like language
I do not want to sound like a language lawyer or something, but at the end of day, these languages are just tools for you. Pick one that suits you. And c++ has that baggage because not everything is shiny new stuff and we just cannot convert all previous code into new shiny stuff. I really hope a brighter future for rust and maybe will use it in a few years when it becomes quite mature, but I can’t just throw away everything I’ve written in some other language, or then there will be a new rust someday. So my decision is to stick with c++ and wait for rust to get more experience and then who knows some other language pops up and I might jump onto that