this post was submitted on 01 Sep 2023
102 points (100.0% liked)
Programming
17420 readers
24 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Context: I am an embedded software engineer. I write a lot of low level code that runs on microprocessors or in OS kernels, as well as networking applications and other things. I write a lot of C, I write some Rust, I write Elixir if I possibly can, I write a lot of Python (I hate C++ with a passion).
I don't think you want Rust. Python is unbeatable on "idea to deployment" speed. Python's downsides:
Rust is good when you need at least one of:
If you're doing one of those and so have become expert in Rust, then it is actually excellent for a lot of other things. E.g. you might build your data processor in it, and then distribution is easy because it's just a single binary.
One option you might look at is Go. You get a lot of performance, you get good parallelism if you need it, it's designed to be easy to learn, and it also compiles programs to a single binary for easy distribution.
One more note on learning Rust: what Rust does is front-load the pain. If you write something in another low-level "direct control of memory" language you can often get something going much more easily than Rust because you don't have to "fight the borrow checker" - it'll just let you do what you want. In Rust, you need to learn how all the ownership stuff works and what types to use to keep the compiler happy.
But then as your project grows, or does a more unusual thing, or is just handed over to someone who didn't know the original design idea, Rust begins to shine more and more. Your C/C++/whatever program might start randomly crashing because there's a case where your pointer arithmetic doesn't work, or it has a security hole because it's possible to make a buffer overrun. But in Rust, the compiler has already made you prove that none of that is possible in your program.
So you pay a cost at the start (both at the start of learning, and at the start of getting your program going) but then over time Rust gives you a good return on that investment.