this post was submitted on 03 Aug 2025
344 points (94.8% liked)

Programmer Humor

26109 readers
631 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 

"Rust's compiler prevents common bugs" So does skill. No offense to you, but, this trope is getting so tiresome. If you like the language then go ahead and use it. What is it with the rust crowd that they have to come acrosslike people trying to convert your religion at your front door?

you are viewing a single comment's thread
view the rest of the comments
[–] smiletolerantly@awful.systems 128 points 1 month ago (4 children)
  • if your skill is so great that you would never cause the kinds of bugs the rust compiler is designed to prevent, then it will never keep you from compiling, and therefore your complaint is unnecessary and you can happily use rust
  • if you do encounter these error messages, then you are apparently not skilled enough to not use rust, and should use rust

In summary: use rust.

[–] F04118F@feddit.nl 37 points 1 month ago (3 children)

I don't agree with /u/red-crayon-scribbles ' approach to memory safety, but what you're saying isn't entirely true either.

It is possible to manipulate memory in ways that do not conform to Rust's lifecycle/ownership model. In theory, this can even be done correctly.

The problem is that in practice, this leads to the following, many of which were committed by some of the most highly skilled C developers alive, including major kernel contributors:

https://xeiaso.net/blog/series/no-way-to-prevent-this/

[–] Midnitte@beehaw.org 21 points 1 month ago

...echoing statements expressed by hundreds of thousands of programmers who use the only language where 90% of the world's memory safety vulnerabilities have occurred in the last 50 years, and whose projects are 20 times more likely to have security vulnerabilities.

ooof.

[–] kurwa@lemmy.world 2 points 1 month ago (1 children)

You can do that in Rust with the unsafe keyword

[–] Maddier1993@programming.dev 20 points 1 month ago

but that's just a choice whereas in C you have no choice but write flawless code.

[–] tatterdemalion@programming.dev 25 points 1 month ago (1 children)

Your first point is not true. There are valid uses of memory sharing that rust will reject.

[–] smiletolerantly@awful.systems 7 points 1 month ago (2 children)

Curious what you are talking about. Multi-threaded sharing of memory for example is also easy with rust, it just doesn't let you wrote and read at the same time, and so on.

[–] sukhmel@programming.dev 8 points 1 month ago

Off the top of my head, single-threaded writing to the same memory from different fields of a struct. Not to mention self-referencing like if you want to hold a buffer and have different views into it in the same structure.

[–] qaz@lemmy.world 2 points 4 weeks ago (1 children)

Classic example: A linked list

[–] smiletolerantly@awful.systems 1 points 4 weeks ago (1 children)
[–] qaz@lemmy.world 2 points 4 weeks ago* (last edited 4 weeks ago)

With unsafe, but how can you write a double linked list in safe rust? (without indices)

[–] Decq@lemmy.world 15 points 1 month ago* (last edited 1 month ago) (1 children)

This so true, every one complaining that the borrow checker is annoying isn't apparently aware what they used to do was inherently flawed. Sure there a some, though rare, false positives. But they are easily mitigated. These people are exactly that what they themselves are complaining about, elitist.

[–] smiletolerantly@awful.systems 14 points 1 month ago (1 children)

Yeah. Once you get used to the (verbose, but by no means unergonomic!) syntax, you'll probably never be happy with another language again. Job-wise, I am currently mostly using Go, and while also a nice language, I miss the confidence and security I took for granted with rust.

Not to mention just how goddamn expressive rust can be. Let bindings like if ok/err, else return? Assign from a match on Some(Ok(x))? Filter, map, and friends on any iterator? Oh my GOD the error handling with the question mark iterator? 100% confidence that if it compiles, no error, possible null value, or case is unhandled.

And all this WHILE giving you the amazing security benefits!

Ah, damn, caught me proselytizing again.

[–] mvirts@lemmy.world 3 points 1 month ago (1 children)

Lol build something with serde and you'll be hooked for life

[–] smiletolerantly@awful.systems 4 points 1 month ago

Or a CLI with clap.