this post was submitted on 21 Nov 2023
189 points (89.9% liked)

Programmer Humor

32588 readers
935 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
top 25 comments
sorted by: hot top controversial new old
[–] [email protected] 64 points 1 year ago (2 children)

This is why I stick to Rust. The gender affirming surgery takes some getting used to, but at least I have both legs.

[–] [email protected] 20 points 1 year ago (1 children)

Don't waste money on HRT, use Rust and your private parts will rust away in no time.

[–] [email protected] 6 points 1 year ago

Mine disappeared already, but I just used C all the time. Maybe the femboy clothes and tailplug helped?

[–] [email protected] 19 points 1 year ago

Enjoy your government mandated Blahaj shark

[–] [email protected] 36 points 1 year ago (1 children)

He forgot to allocate his leg.

Also, it looks like he pointed to foot correctly. I'm surprised he didn't shoot his hand, the pointer to a pointer to a foot.

[–] [email protected] 10 points 1 year ago

This joke has layers, is quite funny, and kind of hurt. Just like my pointer handling code!

[–] [email protected] 29 points 1 year ago (5 children)

I've heard this trope before but I'm skeptic. I'm not a C expert but I can't believe memory bugs in that language are so much more benign than in C++.

[–] [email protected] 34 points 1 year ago* (last edited 1 year ago)

With C, you need to carefully craft your own gun with just iron ingots and a hammer. You will shoot yourself in the foot, but at least you'll have the knowledge that it was your craftsmanship that led to it.

With C++, there are already prebuilt guns and tons of modifications that you can combine at will. If you shove it in the right way, you can make a flintlock shoot a 50 cal, but don't complain when your whole leg gets obliterated.

[–] [email protected] 17 points 1 year ago

It is indeed a trope and a mostly false one - C++ introduces more dramatic ways to footgun yourself but a plethora of tools to make it easier to avoid them - in particular the built in library functions actually encourage good C++ programming practices...

Well, let's just ignore gets().

[–] aport 7 points 1 year ago

Memory bugs are only a tiny share of the foot guns in C++

[–] stifle867 1 points 1 year ago

It's not just that but C is also a much simpler language overall. I've always referred to these two blog posts for some interesting points:

Why should I have written ZeroMQ in C, not C++ (part I)

Why should I have written ZeroMQ in C, not C++ (part II)

[–] [email protected] 9 points 1 year ago (2 children)
[–] [email protected] 7 points 1 year ago (2 children)

The Apache 404 page doesn't really seem that interesting.

[–] [email protected] 5 points 1 year ago

Your browser is trying to load the https version. Try with http.

[–] [email protected] 3 points 1 year ago

The URL is http://toodarkpark.org/computers/humor/shoot-self-in-foot.html and it loads / reloads fine. I don't know what else to tell you.

[–] [email protected] 5 points 1 year ago (1 children)

We need an updated version

[–] [email protected] 1 points 1 year ago* (last edited 11 months ago)

Rust:

  • You find a predefined foot shooting function, but it's marked as unsafe and someone forgot to document what the safety contract was. You write up an unsafe block anyway and pass that function ownership of a bullet and a mutable reference to your foot, and get a segfault.
  • You search crates.io for "gun" and find a crate called pewpew. It looks incredibly spiffy. It supports semi or automatic fire, being used with or without a turret (or on a user-supplied turret) and with any number of middlewares for storing the bullets and transforming them on their way to the firing chamber. Unfortunately you can't shoot yourself with it because your foot doesn't implement the relevant autotraits.

Systemd:

  • You create a service file for shooting yourself in the foot and set it to run at system startup. It seems to work, but after a cold boot, sometimes your foot has a hole in it and sometimes it doesn't. After hours of debugging, you discover that this is because sometimes the gun service starts up and fires its bullet at nothing before the foot service finishes initializing and puts itself in the way. To resolve this you will likely need to edit the source code of your foot to make it support systemd-notify.
[–] [email protected] 3 points 1 year ago

use after free error (trying to walk with one leg missing)

[–] [email protected] 2 points 1 year ago (1 children)

I don't want to give the impression of being elitist, nor am I trying to make myself look super skilled, but whenever I hear people criticizing C for being unsafe, or for lacking some library, I can't help but think that's a skill issue, not an actual problem with the language.

[–] [email protected] 1 points 1 year ago

i think its more a critism of using C where it shouldnt, or by people who shouldnt use it. certainly a skill issue, but a lot of people simply will make mistakes, and better to be safe. C of course has its uses though

[–] [email protected] 1 points 1 year ago

no foot to shoot, no problem! 👍