this post was submitted on 17 May 2025
501 points (97.9% liked)

Programmer Humor

23417 readers
1653 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
 
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 15 points 6 days ago (1 children)

I love the two lonely downvotes on this.

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

Merging the upvotes and downvotes is the best option

[–] [email protected] 8 points 6 days ago

nah, it's more fun this way.

[–] [email protected] 7 points 5 days ago

If you thought this was fun you might like https://jsisweird.com/ with similar questions

[–] [email protected] 5 points 6 days ago
[–] [email protected] 83 points 1 week ago (29 children)

I'm no expert and I know that javascript is full of wtf moments, but please.. Let it be B

It's not gong to be B, it's it.

[–] [email protected] 12 points 6 days ago

Narrator: "It wasn't B."

[–] [email protected] 97 points 1 week ago (9 children)

It is true. Math.min() returns positive Infinity when called with no arguments and Math.max() returns Negative Infinity when called with no arguments. Positive Infinity > Negative Infinity.

Math.min() works something like this

def min(numbers):
  r = Infinity
  for n in numbers:
    if n < r:
      r = n
  return r

I'm guessing there's a reason they wanted min() to be able to be called without any arguments but I'm sure it isn't a good one.

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

I’m guessing there’s a reason they wanted min() to be able to be called without any arguments but I’m sure it isn’t a good one.

It not a totally unreasonable definition. For example it preserves nice properties like min(a.concat(b)) == min([min(a), min(b)]).

Obviously the correct thing to do is to return an optional type, like Rust does. But ... yeah I mean considering the other footguns in Javascript (e.g. the insane implicit type coersion) I'd say they didn't do too badly here.

load more comments (8 replies)
load more comments (27 replies)
[–] [email protected] 72 points 1 week ago (3 children)
[–] [email protected] 11 points 6 days ago (1 children)
[–] [email protected] 19 points 6 days ago* (last edited 6 days ago) (1 children)

Math.min isn’t the minimum integer; it’s the minimum of a list (and max visa versa)… the min/max of an undefined list is the same… IDK what it is, but this probably the most reasonable of the “WTFs” they could have put there i think… other languages would throw an exception or not compile (which JS definitely SHOULD do instead of this, buuuuut lots of JS has aversions to errors)

*edit: okay the curiosity was killing me: Math.min() is Infinity and Math.max() is -Infinity

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

That explains it then. It could be mislead for -inf and +inf

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

No, it's Javascript, keep up

[–] [email protected] 9 points 6 days ago (3 children)

Javascript is basically just C with some syntactical sugar, right? RIGHT?!?

[–] [email protected] 7 points 6 days ago* (last edited 6 days ago)
[–] [email protected] 3 points 5 days ago

To the contrary, it's Lisp with a lot of syntactic sugar to make it look more like C, but underneath it's nothing like C. It's a weird hybrid.

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

I would say that your username doesn't check out, but being honest we're all coders, or at least script kiddie pirates, around here.

[–] [email protected] 62 points 1 week ago (2 children)
load more comments (2 replies)
load more comments
view more: next ›