409
submitted 2 months ago by sirico@feddit.uk to c/programmerhumor@lemmy.ml
top 50 comments
sorted by: hot top controversial new old
[-] myotheraccount@lemmy.world 112 points 2 months ago

ftfy

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

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

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)
[-] vk6flab@lemmy.radio 104 points 2 months ago

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

[-] Sibbo@sopuli.xyz 87 points 2 months ago* (last edited 2 months ago)
else print("number not supported");
[-] sirico@feddit.uk 8 points 2 months ago* (last edited 2 months ago)

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 10 points 2 months ago* (last edited 2 months ago)

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 49 points 2 months ago

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

[-] ImplyingImplications@lemmy.ca 17 points 2 months ago

YanDev is a literal pedophile. It's honestly mind boggling people care more about a guy who won't sign a petition on preserving video games than pedophiles and bigots. I don't get the hate.

[-] shea 15 points 2 months ago

it's not that he "wont sign it". lmao. its that he comoketely unprovoked started a hate campaign against it, literally on the spot hearing about it on stream, directed his viewers not to engage with the petition and started making up a bunch of reasons while talking in that confident-but-clulesss voice about how its destructive and awful and short sighted, making up a bunch of atuff about it that was immediately disproven, just spewing all this vitriol for no reason. Not engaging with it is one thing but actively fighting against a wonderul consumer rights campaign like this, not to mention how important iy is to gaming history to be able to preserve games, is so anti-gamer i dont understand how he ever got a following. Hes a dipsh who talks out of his butthole and he appeals to the kind of lobenly nerd that thinks being an asshole is cool

[-] RageAgainstTheRich@lemmy.world 9 points 2 months ago

Don't forget he threw all his LGBT fans under the bus so he could have a nice buddy buddy with asmongold. Resulting in his community being invested with asmongold's hateful degen followers, calling his LGBT fans horrific slurs.

But hey! Atleast he was able to defend the game Ashes of Creation or whatever its called against asmonshit...

Then when fans called him out, he went "Just cancel me, i guess..." fucking manchild...

Random website but just for a article that gives a summary of what happened: https://www.sportskeeda.com/us/streamers/news-i-again-pirate-software-defends-collaboration-asmongold-amid-backlash-fans

load more comments (1 replies)
[-] ZILtoid1991@lemmy.world 7 points 2 months ago

Pirate Software is also a big liar, and a bad dev, who couldn't finish his game in 8 years.

[-] pivot_root@lemmy.world 48 points 2 months ago* (last edited 2 months ago)

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 2 months ago

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

My code was goddamn unreadable.

[-] pivot_root@lemmy.world 10 points 2 months ago* (last edited 2 months ago)

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)
load more comments (5 replies)
[-] JackbyDev@programming.dev 45 points 2 months ago

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

[-] benjaminb@discuss.tchncs.de 7 points 2 months ago

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

load more comments (1 replies)
[-] QuazarOmega@lemy.lol 44 points 2 months 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 2 months ago
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 (3 replies)
[-] Aedis@lemmy.world 34 points 2 months ago

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 2 months ago* (last edited 2 months ago)

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
}
[-] balsoft@lemmy.ml 7 points 2 months ago* (last edited 2 months ago)

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 22 points 2 months ago

A decent compiler will optimize this into return maybe;

[-] Clbull@lemmy.world 21 points 2 months ago

This is YandereDev levels of bad.

load more comments (3 replies)
[-] Euphoma@lemmy.ml 21 points 2 months ago
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

[-] xthexder@l.sw0.com 6 points 2 months ago

Not even else if? Damn, I guess we're checking all the numbers every time then. This is what peak performance looks like

[-] lime@feddit.nu 7 points 2 months ago

O(1) means worst and best case performance are the same.

[-] kryptonianCodeMonkey@lemmy.world 20 points 2 months ago* (last edited 2 months ago)
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.')
load more comments (2 replies)
[-] kamen@lemmy.world 19 points 2 months ago

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

[-] XPost3000@lemmy.ml 15 points 2 months ago

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

[-] Patches@ttrpg.network 15 points 2 months ago

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

[-] olafurp@lemmy.world 14 points 2 months ago* (last edited 2 months ago)

I'll join in

const isEven = (n) 
  => !["1","3","5","7","9"]
    .includes(Math.round(n).toString().slice(-1)) 
load more comments (1 replies)
[-] Gladaed@feddit.org 13 points 2 months ago

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

[-] FishFace@lemmy.world 11 points 2 months ago

This is what Test Driven Development looks like

[-] normalexit@lemmy.world 13 points 2 months ago

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)
[-] sik0fewl@lemmy.ca 11 points 2 months ago

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

load more comments (2 replies)
[-] thatradomguy@lemmy.world 9 points 2 months ago

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

[-] elvith@feddit.org 9 points 2 months ago* (last edited 2 months ago)
assert IsEven(-2);
[-] kreskin@lemmy.world 9 points 2 months ago

no unit tests huh.

/s

[-] Kuma@lemmy.world 7 points 2 months ago

I am more amazed that he didn't stop at 10 and think "damn this is tiresome isn't there a one liner i could do?". I want to know how far he went. His stubbornness is amazing but also scary. I haven't seen this kind of code since back in school lol lol lol

[-] voodooattack@lemmy.world 7 points 2 months ago* (last edited 2 months ago)
bool isEven(int value) {
  return (int)(((double)value / 2.0) % 1.0) * 100) != 50;
} 
[-] thann@lemmy.dbzer0.com 6 points 2 months ago

You could use a loop to subtract 2 from the number until it equals one or zero

[-] TimeSquirrel@kbin.melroy.org 9 points 2 months ago

Or literally just look at its binary representation. If the least significant digit is a "1", it's odd, if "0", it's even. Or you can divide by 2 and check for a remainder.

Your method is just spending time grinding away CPU cycles for no reason.

[-] webadict@lemmy.world 17 points 2 months ago

Sorry we're not all fucking math nerds like you who knows words like "significant" or "binary" or "divide", Poindexter. Some of us make do with whatever solution is available!

load more comments (2 replies)
load more comments (1 replies)
load more comments
view more: next ›
this post was submitted on 15 Jul 2025
409 points (100.0% liked)

Programmer Humor

38642 readers
40 users here now

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

Rules:

founded 6 years ago
MODERATORS