I very strongly disagree. It’s practically a superset for backwards compatibility reasons but modern C++ coding patterns are vastly different to C. Modern English is kind of a superset of Shakespearean English, but you don’t need to know it for most daily tasks. C++ is much more elegant and safe when avoiding C patterns. C has its place and I use it sometimes, but the two should absolutely not get confused because of the name and compatibility.
Well, I mentioned safe in the comparative degree. Modern C++ could be actually safe if you restrict yourself to a subset of it, that’s sometimes not really practical. I do think that things are improving and with C++26 it’s becoming way easier to write perfectly (memory-)safe code that’s also (subjectively) elegant.
The C++ spec is absolutely massive. Nothing says elegant like a million different ways to do something.
Python works pretty well and doesn’t have to much overhead. Sure it doesn’t have the same performance as C/C++ or Rust but most of the time you don’t need millisecond level code.
You are supposed to use shared_ptr (automatic reference counted pointer) and unique_ptr(statically checked unique pointer) and not create raw C-style pointers anymore.
It still has a lot of weird niche cases that need to be avoided, but memory management is definitely much easier, so in many ways it’s safer at runtime than C, while being still much more obscure than C.
I still agree with you that a more modern language would be even better, especially for learning!
I very strongly disagree. It’s practically a superset for backwards compatibility reasons but modern C++ coding patterns are vastly different to C. Modern English is kind of a superset of Shakespearean English, but you don’t need to know it for most daily tasks. C++ is much more elegant and safe when avoiding C patterns. C has its place and I use it sometimes, but the two should absolutely not get confused because of the name and compatibility.
C++ is a lot of things but elegant and safe are not words that come to mind. C++ has far more issues than regular C.
Best option would be to use something with memory safety
Well, I mentioned safe in the comparative degree. Modern C++ could be actually safe if you restrict yourself to a subset of it, that’s sometimes not really practical. I do think that things are improving and with C++26 it’s becoming way easier to write perfectly (memory-)safe code that’s also (subjectively) elegant.
The C++ spec is absolutely massive. Nothing says elegant like a million different ways to do something.
Python works pretty well and doesn’t have to much overhead. Sure it doesn’t have the same performance as C/C++ or Rust but most of the time you don’t need millisecond level code.
I do agree and I think it’s wise to narrow C++ down by a lot, and that is a choice you can make when working on a new project.
Modern C++ changed a lot!
You are supposed to use shared_ptr (automatic reference counted pointer) and unique_ptr(statically checked unique pointer) and not create raw C-style pointers anymore. It still has a lot of weird niche cases that need to be avoided, but memory management is definitely much easier, so in many ways it’s safer at runtime than C, while being still much more obscure than C.
I still agree with you that a more modern language would be even better, especially for learning!
It is still massively bloated