this post was submitted on 14 Jan 2025
273 points (89.8% liked)

Programmer Humor

20006 readers
1057 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
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 28 points 4 days ago (3 children)

Even booleans take up 8 bits. And that's a lot of wasted space.

[–] [email protected] 10 points 4 days ago

That's only due to technical reasons on weird platforms like x86, 64bit x86 or ARM.

[–] [email protected] 11 points 4 days ago (1 children)

That's why you use bitarrays and bitflags instead when you need more than just one or two arguments for a function.

[–] [email protected] 8 points 3 days ago (1 children)

Only if it's performance sensitive. Otherwise you're wasting programmer time both writing and reading the code, and you've made it less maintainable with more complexities where bugs can creep in.

The vast majority of the time you can afford a few wasted bits.

Honestly though I don't quite understand why a compiler couldn't optimise this process. Like it knows what a boolean is, surely it could reduce them down to bits.

[–] [email protected] 3 points 3 days ago

Well, to get a boolean out of a bit array you have to do some operations. So at first it doesn't make it more performant. Compilers probably don't automatically make them bitarrays because of that.

However, the memory savings means less cache used. And a cache miss is way more expensive than those bit operations. So they should be more performant. I'm sure someone out there has done the actual research and there's a good reason why compilers don't make all booleans bitarrays.

[–] [email protected] 4 points 4 days ago

Solution: 1 bit computer