140
you are viewing a single comment's thread
view the rest of the comments
[-] ZILtoid1991@lemmy.world 66 points 18 hours ago

PirateSoftware doesn't use enums for whatever reason, instead he uses raw integer values with hand comments (and allegedly an Excel doc) on what is what, which is one of the reasons behind his awful code, which in turn lead to him not being able to ship his game.

[-] rtxn@lemmy.world 121 points 18 hours ago

Actually they're only enums if they're made in the Enümmär region of Germany, otherwise they're just sparkling integers.

[-] ZILtoid1991@lemmy.world 11 points 18 hours ago

Another comment on this post have declared enums outside of Rust being bad for not having tagged union capabilities.

[-] calcopiritus@lemmy.world 1 points 12 minutes ago

That's just someone that doesn't know why people say things, so just made it up.

Enums outside of rust are indeed bad (I would correct it to enums in every language I know that is not rust, since maybe some other do the same thing as rust). But it's not because the tagged union thing.

The problem of enums in other languages is that they do not make for a distinct type. They are just integers in a name. Or at least that is the case for C and Java enums. Python and JavaScript do not even have enums, which is even worse.

When enums are just integers, you don't know if a variable of the type of the enum is actually one of the variants of the enum. If you assume that, you can easily get into undefined behavior/crash territory quite fast.

When making a library in C, for example, if one of your functions has an enum as a parameter, one of the first things you have to do is check if that parameter is actually in the range of the enum. Since you don't control the caller to your function. These checks don't belong in code at runtime, they belong to compile time, as you're just validating the type of a variable.

In rust, switch/match statements need to cover every single enum variant (of course, you can also have default paths to not cover every case) your code just won't compile if you don't. Which means that when you add a new variant to an old enum, you don't have to go hunting every match statement to see if it affects your new change. That is a tedious and error-prone task if done manually, while it is pretty simple for the compiler.

Of course, now that these differences are established, the tagged union thing comes in and makes rust ones better. The reason other language enums are bad is because they're named integers, the reason rust's are good is because they are tagged unions, completing the algebraic type system.

[-] RaphaelSchmitz@feddit.org 13 points 17 hours ago

Yeah but that's just edgelord behaviour.

You get those a lot with all kinds of programming languages, and Rust is certainly not know for having less of them.

[-] ZILtoid1991@lemmy.world 6 points 17 hours ago

It just it involves way more programmer socks and HRT jokes when it comes to Rust...

[-] gianni@lemmy.ca 18 points 13 hours ago
[-] echodot@feddit.uk 15 points 13 hours ago* (last edited 13 hours ago)

He's some apparently famous YouTuber who reckons that he's a programming genius even though I'm the better programmer than him.

Occasionally he does something stupid and pops up on everyone's radar for a while and then the rest of the internet goes back to forgetting about him.

I guess he's kicked off again.

[-] SkyezOpen@lemmy.world 9 points 10 hours ago

He's actually been doing stupid shit for ages, it just didn't get widespread attention until the SKG thing blew up. Actually the wow roach might've been before that, but either way SKG is what basically ended him.

[-] cheat700000007@lemmy.world 8 points 12 hours ago

I heard he worked for Blizzard. But it definitely wasn't nepotism

[-] Kolanaki@pawb.social 6 points 10 hours ago* (last edited 10 hours ago)

The most notable thing about Thor I know is that his dad is the literal World of Warcraft guy from that one episode of South Park. Like, not that he looks similar; he was the actual inspiration for the character after Trey and Matt met him while touring Blizzard's offices.

[-] SkyezOpen@lemmy.world 5 points 10 hours ago

Really? He never mentioned it.

[-] programmerlexi@sh.itjust.works 3 points 10 hours ago

He also did some hacking work.

[-] lobut@lemmy.ca 3 points 10 hours ago

famous YouTuber who reckons that he’s a programming genius

Is that true? I've seen a lot of his shorts and he's always been like: "just make games" -- "stop worrying about code quality, some amazing games have shit code"

[-] echodot@feddit.uk 1 points 25 minutes ago

He also threw a massive tantrum when somebody reviewed his code and said it wasn't the quality of somebody who works in the industry, which he claims to have done.

[-] VibeSurgeon@piefed.social 7 points 12 hours ago

What's his motivation for something so deranged?

[-] SkyezOpen@lemmy.world 4 points 10 hours ago* (last edited 3 hours ago)

It was for an ARG. Or it doesn't matter because it runs on a smart fridge (no it doesn't). Or he was OOM.

[-] vrek@programming.dev 30 points 18 hours ago* (last edited 18 hours ago)

Reminds me of a codebase I used to work on which we had 899 variable limit and we couldn't name them, only number them. These were limitations of the language.

Each variable had to be assigned a 3 digit number but 1-100 were taken by internal stuff so only 101- 999 was allowed. So let's say you wanted to check if power was between 50 and 60 you would end up with like

#301 = 50;

#302 = 60;

#303 = powerSignal;

If #303 < #301 || #303 > #302: Display error

Continue process

[-] girlnamedzero@piefed.zeromedia.vip 11 points 16 hours ago

That’s… that’s so awful…

[-] vrek@programming.dev 12 points 16 hours ago

If I told you what the purpose of this system was you would be really horrified...

[-] girlnamedzero@piefed.zeromedia.vip 10 points 16 hours ago
[-] vrek@programming.dev 14 points 16 hours ago

Basically we made devices which were surgically implanted into your body to send specific electrical signals to your spine and brain for certain medical issues. The electronics were in a metal case so your icky blood and bodily fluids didn't cause shorts. This system was to weld the metal case closed.

[-] MajorasMaskForever@lemmy.world 6 points 15 hours ago

Sounds like someone wanted to avoid needing to recompile for the target, but was either hardware constrained on what they wanted to do or as they thought that implementing their own language was going to be easy, learned it's very much so not, and then took some stupid shortcuts

I totally haven't done that myself, nope....

[-] vrek@programming.dev 5 points 15 hours ago

It's fanuc cnc... Incredibly useful and precise but OLD! They literally still support programs from bubble tape if you need. It was basically hardware constrained initially but fixing it would break backwards compatibility which is a super selling point for them to government and long term industries.

Their controllers are mad expensive (budget version is like 30k last I checked), their support is top notch(tech typically on site within 24 hours with every possible board which may be bad so they can get you running and charge you later), they are incredibly precise and can do things other systems legally can not(a trainer I knew said "if you can move in 5 dimensions at once you can do some interesting things with nuclear energy so those require special clearance to sell"). Basically if you need them you NEED them, if you don't then you don't.

[-] JoeBigelow@lemmy.ca 1 points 11 hours ago

Custom machined fissible material!?

[-] vrek@programming.dev 1 points 10 hours ago* (last edited 10 hours ago)
[-] JoeBigelow@lemmy.ca 1 points 5 hours ago

Aww, the stupid clanker got me excited.

[-] vrek@programming.dev 1 points 4 hours ago

It was exciting sometimes as titanium dust generated by welding titanium is explosive when exposed to oxygen.

[-] TonyOstrich@lemmy.zip 6 points 16 hours ago

So a FANUC controller?

Did yours spin sideways or vertically?

[-] vrek@programming.dev 5 points 16 hours ago

Lol, yup. Actually it was 4 axis. And connected to a laser instead of a milling bit. The system was also in a controlled gas environment which added extra complications.

[-] TonyOstrich@lemmy.zip 2 points 12 hours ago

Ooh, sounds spicy.

The hard set limit of #500-#999 is really frustrating when you also have to be careful not to overwrite certain kinds of "standard" program variables that your shop or company has decided on. I'm generally pretty OK with the limitations of these controllers and G-Code in general, but I would fucking kill to be able to use an array or to be able to declare a variable 😭.

[-] vrek@programming.dev 1 points 10 hours ago

It was mostly just the naming that caused my frustration. I tried to declare all variables at start, had that section printed out and hung on my cubicle wall.

[-] WesternInfidels@feddit.online 4 points 15 hours ago

Did this cursed language have a name?

[-] vrek@programming.dev 8 points 15 hours ago

It was g-code which as another commentator correctly pointed out was used to control a fanuc cnc system.

[-] echodot@feddit.uk 2 points 13 hours ago

Ok at this point I'm okay with magic numbers, they make the code more readable

[-] vrek@programming.dev 1 points 10 hours ago

It was a lot of magic numbers, why was that set that thing set to 3 minimum? It worked good enough at 3 to be acceptable

[-] drcobaltjedi@programming.dev 3 points 14 hours ago

I mean thats not uncommon in game dev from what I have seen. Remember VVVVVV? The creator open sourced the code years ago, and they didn't use enums either, just switch statements with integers. I imagine a lot of indie games suffer from this as they're made by a passionate person/group that are learning on the fly.

[-] ZILtoid1991@lemmy.world 4 points 9 hours ago

TBH sometimes I'm also guilty of this, if I forget about them. In one library on mine, I'll have to put all error codes under a single enumerator, so I don't need to make new ones every time I add functionality.

this post was submitted on 09 Sep 2026
140 points (84.7% liked)

Programmer Humor

33155 readers
498 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 3 years ago
MODERATORS