Hacker News new | past | comments | ask | show | jobs | submit login

Because they're 70x less likely to create an executable?

[ducks for cover]




I mean, yes, literally.

As much as the "rust for everything" folks are annoying, wrong programs not compiling is the entire point of having a powerful type system correctly leveraged. This is the kind of task where rust truly shines.

ease of programming != ease of making undetected mistakes


“The safest program is the one that doesn't compile”


I think it is a separate study whether developers find it easier to actually use, things like environments being equal.

I remember another study which showed that actually, most computer programmjng languages today are objectively terrible in terms of legibility and usability, the alternative was some idealized language that allowed effective communication to occur.

A safe program is not necessarily one that won't compile, if the lack of functionality incurs some danger on its own.

I suspect that a majority of the peanut gallery is rather lazy, or unwilling, or economically unmotivated to put forth the proper effort (and it is the last category that deserves the harshest punishment, where a wasteful and harmful situation is actively encouraged).


> ease of programming != ease of making undetected mistakes

Disagree. GCed languages prevent the majority of errors the higher complexity of Rust unloads on the programmer to solve by wrestling with its syntax.

So this is only a plus for Rust, if the small performance advantage over, say, Go, actually matters in an application, which is rarely ever the case in most software written.


I'm actually a really big fan of affine types and adts with great pattern matching. The performance is nice too, but I stayed for all the other nice bits that are put together really well (except async, but eventually...).

Rust has been my favorite language by far to refactor in.


We aren't really disagreeing.

Forcing Rust into a domain where a GC'd language is more than enough offers absolutely zero advantages (yes, you'll have no memory safety issues, but neither you would have had you used Python or Java or Go or whatever), and it's the kind of obnoxious overzealousness that I'm denouncing.

If you're using Rust to write web services you're just wasting your time, I agree with that.

But if the alternative would be C or C++, Rust is at least worth consideration. Ironically, those are domains where you'll have to use a lot of unsafe and/or limit yourself to a subset of Rust, but it's still a nice incremental improvement.


I’d love to have thread safety (Send/Sync) even in GC languages.

There are lots of programs where Rust isn’t necessary, but it still has a bunch nice-to-haves besides memory management.


> Forcing Rust into a domain where a GC'd language is more than enough offers absolutely zero advantages (yes, you'll have no memory safety issues, but neither you would have had you used Python or Java or Go or whatever), and it's the kind of obnoxious overzealousness that I'm denouncing.

It is refreshing to see that other people share this point of view. I guess we are not disagreeing after all.


It’s sad that it’s refreshing to see engineers doing engineering instead of bikeshedding…


> GCed languages prevent the majority of errors the higher complexity of Rust unloads on the programmer to solve by wrestling with its syntax.

The other value that Rust adds, that you're ignoring, is control over mutable/immutable access. In Rust, to share data between threads of execution, you have to grab a lock or such. In many other languages, like Go, the lock is advisory not mandatory, and nothing prevents two threads from writing to the same struct field concurrently.

I personally think I'd really enjoy a "GC'ed Rust" for many uses. I wish GC was a Rust feature crates could opt in to, and then the embedded & high performance crowd could avoid that like no_std works today.


Yup, and if you actually meet a use-case where Rust has a major performance advantage above Go, typically you’re already too deep into the low-level details of optimization that you’ll constantly fight with the borrow checker or just scatter unsafe all over your code.


This is just not true. The experience is typical if you know how to solve your problem in a GCed language and the solution is to solve problems the Rust way, primarily by using handles (and/or arenas) instead of references.


It’s rather self defeating though isn’t it?


Nah, it's because they're 70x more likely to get their vulnerabilities via crate supply chain attacks!

[pulled off stage with a cain]


Because they're 70x less likely to get to the point where their program compiles successfully.

(only half-joking...)


Because they are still compiling?

[ducks for cover]




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: