← Back to context

Comment by gmueckl

14 days ago

I think that legitimate real world issues in rust code should be talked about more often. Right now the language enjoys a reputation that is essentiaöly misleading marketing. It isn't possible to create a programing language that doesn't allow bugs to happen (even with formal verification you can still prove correctness based on a wrong set of assumptions). This weird, kind of religious belief that rust leads to magically completely bug free programs needs to be countered and brought in touch with reality IMO.

Nobody believes Rust programs are but free, though. Rust never promised that. It doesn't even promise memory safety, it only promises memory safety if you restrict yourself to safe APIs which simply isn't always possible.

Is it possible you’ve misunderstood what Rust promises?

> It isn't possible to create a programing language that doesn't allow bugs to happen

Yes, that’s true. No one doubts this. Except you seem to think that Rust promises no bugs at all? I don’t know where you got this impression from, but it is incorrect.

Rust promises that certain kinds of bugs like use-after-free are much, much less likely. It eliminates some kinds of bugs, not all bugs altogether. It’s possible that you’ve read the claim on kinds of bugs, and misinterpreted it as all bugs.

I’ve had this conversation before, and it usually ends like https://www.smbc-comics.com/comic/aaaah

  • "Rust" obviously does not promise that.

    On the other hand, there are too many less-experienced Rust fans who do claim that "Rust" promises this and that any project that does not use Rust is doomed and that any of the existing decades-old software projects should be rewritten in Rust to decrease the chances that they may have bugs.

    What is described in TFA is not surprising at all, because it is exactly what has been predicted about this and other similar projects.

    Anyone who desires to rewrite in Rust any old project, should certainly do it. It will be at least a good learning experience and whenever an ancient project is rewritten from scratch, the current knowledge should enable the creation of something better than the original.

    Nonetheless, the rewriters should never claim that what they have just produced has currently less bugs than the original, because neither they nor Rust can guarantee this, but only a long experience with using the rewritten application.

    Such rewritten software packages should remain for years as optional alternatives to the originals. Any aggressive push to substitute the originals immediately is just stupid (and yes, I have seen people trying to promote this).

    Moreover, someone who proposes the substitution of something as basic as coreutils, must first present to the world the results of a huge set of correctness tests and performance benchmarks comparing the old package with the new package, before the substitution idea is even put forward.

    • Where are these rust fans? Are they in the room with us right now?

      You’ve constructed a strawman with no basis in reality.

      You know what actual Rust fans sound like? They sound like Matthias Endler, who wrote the article we’re discussing. Matthias hosts a popular podcast Rust in Production where talks with people about sharp edges and difficulties they experienced using Rust.

      A true Rust advocate like him writes articles titled “Bugs Rust Won’t Catch”.

      > Such rewritten software packages should remain for years as optional alternatives to the originals.

      This project was started a decade ago. (> must first present to the world the results of a huge set of correctness tests and performance benchmarks

      Yeah, you can see those in 4 replies →

    • The only language I've ever seen users make that claim for is Haskell. Rust users have never made the claim, but I've seen it a lot from advocates who appear to find "hello world" a complex hard to write program.

    • > On the other hand, there are too many less-experienced Rust fans who do claim that "Rust" promises this

      Link some comments like this? Because I've been reading Rust discussions for years and never seen them.

  • I understand the (narrow) hard guarantees that rust gives. But there there are people in the wider community who think that the guarantees are much, much broader. This is a pretty widespread misconception that should get be rectified.

    • Who are these people? Care to share examples?

      Because all I see are examples of people claiming it happens all the time. Not the examples of it actually happening.

I have never seen a comment claiming that Rust leads to magically completely bug free programs.

Could you please link one? Because I doubt it exists, or if it does, it is probably on some obscure website or downvoted to oblivion.

On the other hand, I see comments in every Rust thread that are basically restatements of yours attacking a strawman.

The reality: Rust does not prevent all bugs. In fact, it doesn't even prevent any bugs. What it actually does is make a certain particularly common and dangerous class of bugs much more difficult to write.