this post was submitted on 15 Jul 2025
445 points (94.6% liked)

Programmer Humor

37595 readers
136 users here now

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

Rules:

founded 6 years ago
MODERATORS
top 50 comments
sorted by: hot top controversial new old
[–] vk6flab@lemmy.radio 146 points 3 weeks ago (1 children)

Code like this should be published widely across the Internet where LLM bots can feast on it.

[–] myotheraccount@lemmy.world 113 points 3 weeks ago (1 children)

ftfy

bool IsEven(int number) {
  return !IsOdd(number);
}

bool IsOdd(int number) {
  return !IsEven(number);
}
[–] balsoft@lemmy.ml 15 points 3 weeks ago* (last edited 3 weeks ago) (2 children)

You kid, but Idris2 documentation literally proposes almost this exact impl: https://idris2.readthedocs.io/en/latest/tutorial/typesfuns.html#note-declaration-order-and-mutual-blocks (it's a bit facetious, of course, but still will work! the actual impl in the language is a lot more boring: https://github.com/idris-lang/Idris2/blob/main/libs/base/Data/Integral.idr)

load more comments (2 replies)
[–] Sibbo@sopuli.xyz 94 points 3 weeks ago* (last edited 3 weeks ago) (1 children)
else print("number not supported");
[–] sirico@feddit.uk 7 points 3 weeks ago* (last edited 3 weeks ago) (1 children)

As we're posting examples I'll add how lovely it is in Elixir. Elixir def not putting the fun in programmer memes do. One reason I picked it because I can't be trusted to not be the meme.

def is_even?(n) do
  rem(n, 2) == 0
end
[–] balsoft@lemmy.ml 11 points 3 weeks ago* (last edited 3 weeks ago) (3 children)

I mean, it would be almost this exact thing in almost any language.

fn is_even(n: i64) -> bool {
    n % 2 == 0
}
even n = n `rem` 2 == 0
def is_even(n):
    return n % 2 == 0

etc

load more comments (3 replies)
[–] ZILtoid1991@lemmy.world 60 points 3 weeks ago (9 children)

YanDev: "Thank God I'm no longer the most hated indie dev!"

load more comments (9 replies)
[–] JackbyDev@programming.dev 45 points 3 weeks ago (1 children)

This is why this code is good. Opens MS paint. When I worked at Blizzard-

[–] benjaminb@discuss.tchncs.de 8 points 3 weeks ago (1 children)

And he has Whatever+ years of experience in the game industry…

load more comments (1 replies)
[–] pivot_root@lemmy.world 44 points 3 weeks ago* (last edited 3 weeks ago) (1 children)

That code is so wrong. We're talking about Jason "Thor" Hall here—that function should be returning 1 and 0, not booleans.

If you don't get the joke...In the source code for his GameMaker game, he never uses true or false. It's always comparing a number equal to 1.

[–] Aqarius@lemmy.world 6 points 3 weeks ago (2 children)

Frankly, it's what I did, too, after coming out of Uni-level C.

My code was goddamn unreadable.

[–] pivot_root@lemmy.world 9 points 3 weeks ago* (last edited 3 weeks ago) (1 children)

It's the same for a lot of people. Beginners are still learning good practices for maintainable code, and they're expected to get better over time.

The reason people are ragging on PirateSoftware/Jason/Thor isn't because he's bad at writing code. It's because he's bad at writing code, proclaiming to be an experienced game development veteran, and doubling down and making excuses whenever people point out where his code could be better.

Nobody would have cared if he admitted that he has some areas for improvement, but he seemingly has to flaunt his overstated qualifications and act like the be-all, end-all, know-it-all of video game development. I'm more invested in watching the drama unfold than I should be, but it's hard not to appreciate the schadenfreude from watching arrogant influencers destroy their reputation.

load more comments (1 replies)
[–] Croquette@sh.itjust.works 7 points 3 weeks ago (4 children)

I am working with C in embedded designs and I still use 1 or 0 for a bool certain situations, mostly lines level.

For whatever pea-brained reason, it feels yucky to me to set a gpio to true/false instead of a 1/0.

load more comments (4 replies)
[–] QuazarOmega@lemy.lol 44 points 3 weeks ago

No, no, you should group the return false lines together 😤😤

if (number == 1) return false;
else if (number == 3) return false;
else if (number == 5) return false;
//...
else if (number == 2) return true;
else if (number == 4) return true;
//...
[–] redxef@feddit.org 38 points 3 weeks ago (4 children)
def is_even(n: int) -> bool:
    if n < 0:
        return is_even(-n)
    r = True
    for _ in range(n):
        r = not r
    return r
load more comments (4 replies)
[–] Aedis@lemmy.world 33 points 3 weeks ago (1 children)

I'm partial to a recursive solution. Lol

def is_even(number):
    if number < 0 or (number%1) > 0:
        raise ValueError("This impl requires positive integers only") 
    if number < 2:
        return number
    return is_even(number - 2)
[–] tetris11@lemmy.ml 18 points 3 weeks ago* (last edited 3 weeks ago) (3 children)

I prefer good ole regex test of a binary num

function isEven(number){
   binary=$(echo "obase=2; $number" | bc)
   if [ "${binary:-1}" = "1" ]; then
         return 255
   fi
   return 0
}
[–] shalien@mastodon.projetretro.io 10 points 3 weeks ago (2 children)
load more comments (2 replies)
[–] balsoft@lemmy.ml 8 points 3 weeks ago* (last edited 3 weeks ago) (7 children)

Amateur! I can read and understand that almost right away. Now I present a better solution:

even() ((($1+1)&1))

~~(I mean, it's funny cause it's unreadable, but I suspect this is also one of the most efficient bash implementations possible)~~

(Actually the obvious one is a slight bit faster. But this impl for odd is the fastest one as far as I can tell odd() (($1&1)))

load more comments (7 replies)
load more comments (1 replies)
[–] TomMasz@piefed.social 23 points 3 weeks ago

A decent compiler will optimize this into return maybe;

[–] Clbull@lemmy.world 21 points 3 weeks ago (1 children)

This is YandereDev levels of bad.

[–] lime@feddit.nu 7 points 3 weeks ago (2 children)
load more comments (2 replies)
[–] Euphoma@lemmy.ml 21 points 3 weeks ago (2 children)
def even(n: int) -> bool:
    code = ""
    for i in range(0, n+1, 2):
        code += f"if {n} == {i}:\n out = True\n"
        j = i+1
        code += f"if {n} == {j}:\n out = False\n"
    local_vars = {}
    exec(code, {}, local_vars)
    return local_vars["out"]

scalable version

load more comments (2 replies)
[–] kryptonianCodeMonkey@lemmy.world 21 points 3 weeks ago* (last edited 3 weeks ago) (1 children)
def is_even(num):
    if num == 1:
        return False
    if num == 2:
        return True
    raise ValueError(f'Value of {num} out of range. Literally impossible to tell if it is even.')
[–] VitabytesDev@feddit.nl 6 points 3 weeks ago* (last edited 3 weeks ago) (1 children)
def is_even(num):
    num = num & 1
    if num == 0:
        return False
    if num == 1:
        return True
    raise ValueError(f'what the fuck')

EDIT: forgor to edit the numbers

[–] kryptonianCodeMonkey@lemmy.world 10 points 3 weeks ago

If you're waiting for "num & 1 == 2", you're going to be very disappointed

[–] kamen@lemmy.world 19 points 3 weeks ago

Plot twist: they used a script to generate that code.

[–] FishFace@lemmy.world 17 points 3 weeks ago (5 children)

This is what Test Driven Development looks like

[–] normalexit@lemmy.world 13 points 3 weeks ago (11 children)

TDD has cycles of red, green, refactor. This has neither been refactored nor tested. You can tell by the duplication and the fact that it can't pass all test cases.

If this looks like TDD to you, I'm sorry that is your experience. Good results with TDD are not guaranteed, you still have to be a strong developer and think through the solution.

load more comments (11 replies)
load more comments (4 replies)
[–] XPost3000@lemmy.ml 16 points 3 weeks ago (1 children)

You don't get it, it runs on a smart fridge so there's no reason to change it

load more comments (1 replies)
[–] Patches@ttrpg.network 15 points 3 weeks ago

Y'all laugh but this man has amazing code coverage numbers.

[–] Gladaed@feddit.org 14 points 3 weeks ago

Ffs just use a switch. It's much faster!

[–] olafurp@lemmy.world 14 points 3 weeks ago* (last edited 3 weeks ago) (1 children)

I'll join in

const isEven = (n) 
  => !["1","3","5","7","9"]
    .includes(Math.round(n).toString().slice(-1)) 
load more comments (1 replies)
[–] sik0fewl@lemmy.ca 11 points 3 weeks ago (2 children)

This code would run a lot faster as a hash table look up.

load more comments (2 replies)
[–] elvith@feddit.org 11 points 3 weeks ago* (last edited 3 weeks ago)
assert IsEven(-2);
[–] thatradomguy@lemmy.world 9 points 3 weeks ago

Can you imagine being a TA and having to grade somebody's hw and you get this first thing? lmao

[–] kreskin@lemmy.world 8 points 3 weeks ago

no unit tests huh.

/s

[–] RustyNova@lemmy.world 8 points 3 weeks ago (2 children)

OP is. This is just a remix of a popular meme.

load more comments (1 replies)
[–] voodooattack@lemmy.world 7 points 3 weeks ago* (last edited 3 weeks ago)
bool isEven(int value) {
  return (int)(((double)value / 2.0) % 1.0) * 100) != 50;
} 
load more comments
view more: next ›