this post was submitted on 18 Apr 2026
408 points (89.8% liked)

Programmer Humor

31064 readers
686 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
 

made in gimp, with <3

Context for actual rust programmersI was having massive beef with the rust compiler yesterday, every cargo check takes 20 seconds.

And then look at the three functions below, only one of them are Send, if you know why, please let me know.

(Note: value that is not Send cannot be held across an await point, and Box is not Send)

async fn one() {
    let res: Result<(), Box<dyn Error>> = do_stuff();
    if let Err(err) = res {
        let content = err.to_string();
        let _ = do_stuff(content).await;
    }
}

async fn two() {
    let res: Result<(), Box<dyn Error>> = do_stuff();
    let content = if let Err(err) = res {
        Some(err.to_string())
    } else {
        None
    };
    drop(res);
    if let Some(content) = content {
        let _ = do_stuff(content).await;
    }
}

async fn three() {
    let content = {
        let res: Result<(), Box<dyn Error>> = do_stuff();
        if let Err(err) = res {
            Some(err.to_string())
        } else {
            None
        }
    };
    if let Some(content) = content {
        let _ = do_stuff(content).await;
    }
}

all 48 comments
sorted by: hot top controversial new old
[–] Object@sh.itjust.works 100 points 3 days ago* (last edited 3 days ago) (2 children)

Rust output is bad? I feel like it's one of the best in terms of telling you where you got things wrong. Nix output when you accidentally get infinite recursion is so bad.

Come to think of it, Nix fits all three better than Rust.

[–] tatterdemalion@programming.dev 37 points 3 days ago (1 children)

People who've never used Rust or only used it once and couldn't grok it like to meme that Rust is bad to cope.

[–] First_Thunder@lemmy.zip 15 points 2 days ago (1 children)

Ah yes, the good old random pile of unclear errors because you forgot to add the file in git thanks nix

[–] onlinepersona@programming.dev 2 points 2 days ago

Is this a comment I'm not flake enough to understand?

[–] anyhow2503@lemmy.world 76 points 3 days ago (2 children)

I get that it's supposed to be a meme, but aside from the first one these aren't even rust stereotypes. Is this a meme specifically for people who haven't used rust, know nothing about rust but have maybe heard that it's a programming language?

[–] nightlily@leminal.space 27 points 2 days ago (1 children)

Yeah, part of the point of Rust is that it does exactly what you tell it - sometimes to the point of absurdity. No implicit casting for instance.

[–] MoffKalast@lemmy.world 7 points 2 days ago* (last edited 2 days ago)

And here I was thinking most of our programming problems come from the thing doing exactly what we told it to, but didn't quite think the process through enough. Or at all.

[–] Fontasia@feddit.nl 15 points 2 days ago

This is for people who learnt C++ in 2008 and refuse to believe that they've never fucked up a malloc in their lives

[–] Grail@multiverse.soulism.net 10 points 2 days ago

I love the rust compiler, it makes debugging so easy

[–] BlueKey@fedia.io 54 points 3 days ago (3 children)

output makes no sense

C++ template errors enter the room

[–] SpaceNoodle@lemmy.world 13 points 3 days ago (1 children)

Template errors make sense as long as you carefully read the entire error, but nobody has ever actually done that.

[–] marcos@lemmy.world 19 points 2 days ago (1 children)

You are saying that the error messages terminate at some point?

[–] SpaceNoodle@lemmy.world 12 points 2 days ago

Well, yeah, templates won't recurse beyond 1,024 levels.

[–] Courantdair@jlai.lu 6 points 2 days ago

boost::msm errors enter the room

[–] Courantdair@jlai.lu 30 points 2 days ago
cargo() {
  cargo $@
  echo So how you doin\' today?
}

Fixed

[–] kibiz0r@midwest.social 35 points 3 days ago (1 children)
[–] leo85811nardo@lemmy.world 15 points 2 days ago

Deterministic when hit by that weird cosmic ray: ❌❌

/jk

[–] Ooops@feddit.org 37 points 3 days ago

So a narrow but clear win for the Rust compiler still...

[–] Noja@sopuli.xyz 3 points 1 day ago

First mistake was using async

[–] kubica@fedia.io 24 points 2 days ago

cargo delete this_post

[–] Prunebutt@slrpnk.net 29 points 3 days ago (3 children)

I thought the rust compiler was supposed to be polite and helpful (unlike gcc, or nix).

[–] Sibbo@sopuli.xyz 49 points 3 days ago

It is, this meme is just trash.

[–] kibiz0r@midwest.social 7 points 3 days ago (1 children)
[–] Prunebutt@slrpnk.net 6 points 3 days ago

You create a new file and don't check it into git yet.

Nix commands: "I've never met this file in my life!"

[–] SpaceNoodle@lemmy.world 6 points 3 days ago (1 children)

gcc was unhelpful a couple decades ago. I've found it to be rather helpful in recent years.

[–] verdare@piefed.blahaj.zone 7 points 3 days ago (1 children)

Yeah, recent versions of GCC have gotten a lot better. I suspect it’s actually because of languages like Rust raising the bar.

[–] SpaceNoodle@lemmy.world 0 points 3 days ago (1 children)
[–] WhyJiffie@sh.itjust.works 4 points 2 days ago (1 children)
[–] SpaceNoodle@lemmy.world 0 points 2 days ago (2 children)

They literally did. They theorized that Rust influenced GCC's improved error messaging. That could not have happened if GCC improved their error messaging prior to the existence of Rust.

[–] fruitcantfly@programming.dev 5 points 2 days ago (1 children)

But GCC did not improve their error messages (much) prior to Rust, despite Clang's error messages comparing favorably to GCC even before Rust 1.0 was released, as for example discussed in

https://gcc.gnu.org/wiki/ClangDiagnosticsComparison?action=recall&rev=1

Rust itself is 14 years old, slightly older than above wiki page, and even back then it had great error messages, though they've also improved since. Here's a fun site where you can see how error messages have evolved through Rust's life:

https://kobzol.github.io/rust/rustc/2025/05/16/evolution-of-rustc-errors.html

It's only very recently that GCC has started to catch up, for example with some nice improvements in GCC 15:

https://developers.redhat.com/articles/2025/04/10/6-usability-improvements-gcc-15

[–] SpaceNoodle@lemmy.world 2 points 2 days ago

Oh, guess my mental timeline is wrong!

[–] WhyJiffie@sh.itjust.works 0 points 2 days ago (1 children)

no they didn't, yes it could have happened:

  1. GCC: exists, not too good messages
  2. rust gets made
  3. rust gets popular
  4. gcc error messages get improved by good example of rust

gcc is not a dead project. it is continuously maintained. its improvements can be influenced by other projects like rust

[–] SpaceNoodle@lemmy.world 0 points 2 days ago

I know that gcc is still alive. That was implied from my original comment.

What you just outlined is the other commenter's theory I already outlined, and literally describes Rust not coming along after gcc improves its error messaging. Thus, it contradicts my theory that Rust came along later than gcc's improved error messaging.

[–] PlexSheep 7 points 2 days ago

This is an awful "meme"

[–] cadekat@pawb.social 5 points 2 days ago

Just a guess, but are you missing + Send on your error type?

[–] Cevilia@lemmy.blahaj.zone 4 points 3 days ago

sometimes?! Cargo never makes sense to me!

[–] REDACTED 2 points 2 days ago

It never asks me :(