This is one thing I've been musing over. Would a beginner see the benefits of rust without first understanding the drawbacks of C?
In my opinion they'd just see it as "this annoying borrow checker thing" and find it frustrating.
This is one thing I've been musing over. Would a beginner see the benefits of rust without first understanding the drawbacks of C?
In my opinion they'd just see it as "this annoying borrow checker thing" and find it frustrating.
Unless you learn everything, you can't know.
But we are passed this stage of the computing era where we can master everything.
You have now excellent bankers, geographers, designers, sysadmin that need programming and will just need to learn Python and nothing else.
And what about the coders of custom OS for very low powered embeded board ? They can't learn NodeJS + Webpack. They don't have time for that.
You don't have a lot of concurrency ? Don't learn Go or Erlang.
You need a few automation. SQL is not for you.
It's VERY GOOD to go outside of bubble and learn new things. If you have time, learn some functional languages, read about how to build your own interpreter, have fun with the amazing possibilities of deep learning.
But you don't have infinite time, you must make a choice.
And I believe strongly Rust is a good replacement for C/C++ and will be in the future.
Should we stop learning C ? Well you'll need C dev for the next 30 years so as a market skill, it's worth it.
But in 5 years, you will be able to get away with just Rust skills. And you may be happier.
Better, it would make him aware of C's shortcomings when the time comes to learn C, instead of getting the wrong idea C is the only path to systems programming.
I learned systems programming back in the 80's via Assembly, Turbo Basic, quickly followed by Turbo Pascal.
When the time came to learn C, I was already on Turbo Pascal 6.0, and the frustrating part was being aware that there was already a better way of talking to the machine.
Also another point, was that C pointers were never confusing to me, because I learned the best practices in those languages.
I started with QBASIC :-(