I find the comparison about being good for newcomers rather interesting. I would say none of them are easy for beginners. I don't see where C(++) can shine here. For a beginner into systems programming Go would be much easier as example. And if it's about programming in general then there are many, many more languages to choose from that are all easier to learn than C(++) and Rust.
Rochus|3 months ago
There is a world of difference between the complexity of C and C++. C is in principle quite easy to understand (besides some syntactic quirks), similar to Turbo Pascal back in the day. Go, on the other hand, has various features that are not so easy for beginners to understand (e.g., interfaces with all their rules, or value vs. pointer receivers with all their complex consequences). Since the introduction of generics, the complexity of Go has taken a leap forward, moving even further away from C and closer to C++ in terms of complexity.
queenkjuul|3 months ago
You're probably right that for trivial examples C is, in principle, the simplest to learn and understand. But in reality, non-trivial C projects come with complex build systems, makefiles, macros, endless compiler flags... I've found it pretty hard to, for example, fork a moderately-sized C project and modify it. Hell sometimes even building it is a challenge when you don't understand make/build system errors and how to set up and configure C projects.
Go, however, i could just get up and running. Simple to use modules, simple to import dependencies, simple to build projects, great centralized documentation. Now granted do i fully understand all the nuances of things like pointer receivers and generics? No, but i don't really understand memory allocation in C either to be quite honest, and I've spent more time trying to understand C in my life than i have Go (please understand: extremely little in both cases)
Rust does seem similarly impenetrable honestly, except that it seems much easier to build and manage Rust projects. But I definitely can't even just read Rust code and get it the way i can Go (or even C)
timeon|3 months ago
C was easy to learn, hard to use. C++ was hard to learn, hard to use. Rust was hard to learn, easy to use. Rust was only one of those I was able actually learn and use.