The best language to learn and use right now for systems programming is C/C++. It is by far the most marketable skill with 99.999999% of all low level systems written in C or C++. Large scale systems used by companies that pay top salaries for developers (Google/Meta) are written in C++. There is more material out there for learning and mastering these languages than any other language save maybe Python or JavaScript.
If you are not an expert at C or C++ and being paid to learn Rust or Nim, you’re actively harming your career by not mastering the languages that people want today. If learning hot new fads brings you joy, then perhaps the intrinsic value outweighs the real world loss, but it’s the hard to swallow truth.
C++ codebases are not at all pleasant to maintain. I'm willing to accept a smaller job market in exchange for a much more enjoyable day to day existence.
Not everyone is interested in maximizing their income. A lot of us here got into programming because we really do just like to code.
For us, it's worth sacrificing $x thousand per year to write code in a fun language that makes us happy. Your condescension toward that decision says more about your priorities than it does about ours.
> Large scale systems used by companies that pay top salaries for developers (Google/Meta) are written in C++.
And you of course have some stats that prove C/C++ pays better at FAANG than more pleasant languages?
> There is more material out there for learning and mastering these languages
Really? C++? Maybe I’m looking at the wrong places, but outside of huge Stroustrup books, and a couple of gems like Effective C++, there’s not much high quality content out there.
> The Rust community is however, an excellent community to be part of.
I honestly haven't found this to be the case. There is a constant denial that some people might find Rust difficult (with a very strong implication that if they do, it's because of inferiority on their part), and extreme thin-skinnedness towards even the possibility that Rust might not be for everyone. Indeed, a bluff assertion that it is for everyone is part of its official tagline. The community keeps up a surface politeness, but it always looks to me that it achieves this by keeping a tight lid on dissent (or appearance thereof).
I've experienced this as well. Any disagreement always comes down to "you just haven't used it enough". I let myself take that gaslighting for years before I decided to just not go to the Rust servers any more.
And then when you question any of the classic Rust axioms (such as safety or speed being only desirable rather than an absolute commandment) a lot of them tend to get rather hostile. It's not a pleasant crowd if you don't think 100% like they do.
Sorry to hear that. I certainly don't think Rust is ideal for every use case. And it is definitely hard to learn. I think people get a bit too zealous promoting it, simply because it has solved a lot of painful problems that many of us have battled with for decades in C++/C land.
I have bad experience interacting with members of the rust community. Biggest issue is that they don't keep their opinions to themselves and frankly make everyone misserable with their "join us now, you must" mentality.
Yeah, the way I sometimes describe this is that Rust social media can be pretty toxic, but the actual Rust community is generally very friendly and supportive. The problem is that a lot of people confuse the two.
I don't know it's the future. I was writing C and C++ when everyone was yelling that Go would replace them. I am still writing a lot of C and C++ while people yell that Rust will replace it. Chances are when Zig/Nim/Pony becomes the new hotness, I will still be writing a lot of C and C++.
Beyond Rust, Apple has swift, Google is working on "Carbon," and there's a ton of active work on improving the safety of C++. The future is exciting, but there is a lot more than just Rust in it.
College students learning mostly Rust -- that would be a blessing. We would get rid of the typical "every noun is a class" type of thinking that students tend to have going through a Javaducation. We would get them to see the correspondence with structs, procedures and traits and we would get them more often to reach for the simpler solution that way.
If you are not an expert at C or C++ and being paid to learn Rust or Nim, you’re actively harming your career by not mastering the languages that people want today. If learning hot new fads brings you joy, then perhaps the intrinsic value outweighs the real world loss, but it’s the hard to swallow truth.