TWiR quote of the week

Rust is a Fast Programming Language. Rust programs are therefore “fast,” especially so if you write them with the correct observations to the arcane ley lines of birth and death known as “lifetimes,” and also remember to pass cargo the --release flag.

– Adam Perry in lolbench: automagically and empirically discovering Rust performance regressions

10 Likes

<...> low-level memory-mongling is what C was designed for, and it is good at it. This is a great way to build low-level systems, but a shitty way to engineer software as a whole.

-- Porting C to Rust

5 Likes

There actually are NOT very many places where the C code’s behavior conflicts with Rust’s borrowing rules. This is both somewhat surprising, because there’s no way this code was written with Rust’s borrowing semantics in mind, and also entirely sensible, since Rust’s borrowing semantics are often quite close to how you actually want your code to behave anyway.

Porting C To Rust

2 Likes

Not a rusty quote, but still nice:

There's two hard problems in computer engineering: cache invalidation, type naming and off-by-one errors

-- Arno Lepisk “Avoiding Disasters with Strongly Typed C++”

3 Likes

Sorry, that's very much not from this week :wink: See TwoHardThings for some history

6 Likes

Panic is "pulling over to the side of the road" whereas crash is "running into a telephone pole".

/u/zzzzYUPYUPphlumph on reddit.

15 Likes

I'd like to also nominate the full quote from the same source:

Panic is the car automatically pulling over to the side of the road, shutting down the engine, and refusing to restart when the blood-alchohol monitor detects that the driver is intoxicated and undefined behavior is letting things continue until the driver "crashes" into a bunch of school children in a cross-walk.

5 Likes

To be fair to @KillTheMule, that was added in an edit. (It wasn't there 8 hours ago when I went to bed.)

2 Likes

None of [Rust's] "safe" behaviors can lead to truly undefined behavior. ... If an attacker can only crash or deadlock your program, that's still bad, but it usually can't escalate into Front Page of the New York Times levels of bad.

Another one from the same thread, qualifying Rust's safety

1 Like

@withoutboats on internals

[It is] not only the systems programming problems that Rust tackles and makes accessible, but also the particular intersection of different expertises and goals - the systems problems, the type theoretical approach, the commitment to an accessible user experience - that [makes] Rust a fulcrum of learning for me. Even as my knowledge grows, there [is] always a more informed person - often a world class expert - available to answer my questions.

(continued)

I’ve been very fortunate over these past 4 years to have had the opportunity to become more and more involved in Rust, to the point that now it is my full time employment. It makes me so glad to hear that my work has had for others the impact that the work of others before had on me.

5 Likes

From this blog post:

In Rust there are entire classes of bugs that are simply impossible to create because of the compile time guarantees. Because it’s software, there will be bugs. Oh yes, there will be bugs. However, we can create all new bugs and not trip over these other ones that we’ve been creating for the last four-plus decades.

(continued)

This is the payoff, and despite the strictness of the compiler, Rust’s bet is that if you learn the way you can be as productive (or more) than with another language. In Programming Rust, Jim Blandy and Jason Orendorff refer to this as “Rust’s radical wager.”

3 Likes

I personally think this is kinda killer feature.

13 Likes

Undefined behaviour never was so nice! (Yes, I know that it's well defined by implementation, but doesn't this sound like it?)

Everything about Rust is ironic.

5 Likes

Who doesn't like building abstractions like LEGO :smile:

1 Like

This needs some more context. "It" here refers to "nested generic types". So:

[Using a nested generic types is] like building stuff with LEGO....

Not sure if you want to reference r/rustjerk in the quote but I post this anyways:

I've found that people who hate the borrow checker are usually ones that can't figure out why they always have so many weird bugs

by Inityx

9 Likes

Title of this reddit post:

"The Bug I did not have"

by u/pacman82

4 Likes

I'm batch-processing thousands of high-resolution TIFF images so these are processes that I start at the end of the day and let run overnight. I have multiple Java implementations that can do this; none of them perform at the same level as my novice Rust implementations.

From Reddit - Dive into anything

5 Likes

The security barrier must be earlier. It will make everything easier to secure. By analogy, it’s like securing your own house. You can lock points of entry to your house, and it’ll work fine for the entire house. But if you move the security barrier to wrong place because you assume burglars may freely roam inside your house, you’ll end up with locks on your bathroom, padlocks on your drawers, gates on your bed, TV stored in a safe, and kitchen utensils chained to walls.
Here, your OS is your house. If you work with assumption that you let malware in, and running viruses is normal part of Rust development, you’ll need extraordinary level of sandboxing paranoia similar to having things in your house chained to walls. It’s going to be incredibly hard to secure everything, and it’s going to be incredibly inconvenient to use the language that has to act at all times as if all your code was infected and dangerous.

original comment

2 Likes