this post was submitted on 26 Jan 2024
87 points (92.2% liked)
Programming
17666 readers
422 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 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Id suggest rust, gets you a step closer to the hardware and a bit of a different paradigm than Java while still feeling high level.
Rust is definitely something I've been keeping an eye on. The syntax looks a bit scary, to be honest, but looks very versatile.
I'll second Rust, it's so fresh and versatile! You can go from super low level stuff all the way to things like web frameworks with WebAssembly and whatnot.
The memory model is definitely a unique beast but I've found it gave me some insight on how it all actually works behind the scenes and I appreciate the strictly enforced correctness too.
I'm a Rust noob. At first it's daunting and nothing will compile. But it's getting easier and I feel like getting over that initial difficulty is mainly a matter of internalizing a few basic rules, after which it feels more natural. So from what I've seen so far, I wouldn't rate Rust as especially difficult. It certainly feels easier than C++.
For a really challenging language I'd suggest Haskell. That one nearly broke my brain because thinking functionally is really very different if you're used to more procedural languages. Rust, it seems, teaches you new discipline, but Haskell teaches you a different way of thinking.
Anyway, that's how it feels as a relative noob in both.
Definitely rust, and definitely use rustrover from jetbrains for an IDE. It's amazing
Except that actually doing anything with hardware is "unsafe."
Well, yeah, because doing things with hardware is just always unsafe in that sense, no matter if you're implementing it in Rust or C or Assembly. As long as you know what you're doing (and the hardware manufacturer did, too), it's not actually unsafe.
Rust just decided to isolate the code parts where you need to be extra smart like that, whereas in C or Assembly, you might need to be extra smart throughout the entire code base.
Obviously, no sane C programmer would just randomly start scrubbing memory addresses in UI code, but it's still just helpful to have the naughty code clearly indicated.
Hardware is inherently unsafe.