this post was submitted on 15 Aug 2023
742 points (97.1% liked)

Programmer Humor

33267 readers
910 users here now

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

Rules:

founded 5 years ago
MODERATORS
 
all 40 comments
sorted by: hot top controversial new old
[–] [email protected] 91 points 2 years ago* (last edited 2 years ago) (1 children)

Looks like it creates a few emoji printers in a vector, then prints them all. The output is all emoji, of course. The main function exits with a random return value just to be more quirky.

I'm not sure what the purpose of the 😎 function is. In main that first predicate is always true, so it prints the poop emoji. I don't know why it's behind an if.

Also, there's a copy-paste error on line 31. Wrong emoji is used.

[–] [email protected] 30 points 2 years ago

This guy emotes ᕦ(Γ²_Γ³Λ‡)α•€

[–] [email protected] 50 points 2 years ago (1 children)

Wow that's horrible. They're using c++.

[–] [email protected] 33 points 2 years ago (1 children)

If you really need some nightmare fuel, some of us use c++ every day and even enjoy it.

[–] [email protected] 2 points 2 years ago

it's hard to believe...

[–] [email protected] 37 points 2 years ago* (last edited 2 years ago) (4 children)

It would be great to use some emojis in coding.

Imagine how much more readable it would be if you could break a loop with πŸ’€ or return true with πŸ‘. Or use ❓for ifs, or ↔️ for switch (the emoji didn't work for that one). Or use an emoji to represent a custom object?

Maybe the ECMA should get on that!

Edit: I guess you can use emojis for custom objects in js.

Edit 2: ➑ for console.log

[–] [email protected] 8 points 2 years ago (1 children)

You'd still be left with the brackets and braces though. It might make more sense in a whitespace-based language pike Python

[–] [email protected] 5 points 2 years ago

I see your point. Personally, I like the brackets and braces, they help organize. Or maybe that's just what I'm used to.

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

emacs lisp already lets you use the full range of unicode.

[–] [email protected] 1 points 2 years ago
[–] [email protected] 2 points 2 years ago

Programming typefaces with ligatures are a step in this direction.

I would try this in something like Haskell, where some of the more exotic character sequences get tricky to recognise.

Unison might be the best language to test this in. Having identifiers separate from the actual definitions, you can call anything whatever you want.

[–] [email protected] 18 points 2 years ago* (last edited 2 years ago)

πŸ’©
🍊
πŸ‰
πŸ‰
🍍
🍎

[–] [email protected] 17 points 2 years ago

Surprisingly more readable than standard C++

[–] [email protected] 15 points 2 years ago (1 children)

I didn’t bother trying to see what an output would be, but this is a nightmare.

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

Oh no, now I’m going to notice you in, like, every thread!

[–] [email protected] 2 points 2 years ago

Hahaha, I’m inevitable! The nostalgia is too powerful!

[–] [email protected] 11 points 2 years ago (1 children)
[–] [email protected] 15 points 2 years ago (1 children)

Yes, line 28 defines 🍴which defines πŸ‘€ and all the structs inherit from 🍴

[–] [email protected] 10 points 2 years ago

Brand new sentence.

[–] [email protected] 11 points 2 years ago* (last edited 2 years ago)

This just prints:

πŸ’©
🍊
πŸ‰
πŸ‰
🍍
🍎

Line 38 and 39 just check if a function that always returns false is false and if so, prints "πŸ’©\n". (C++ uses the bit shift operator for file IO for some reason)

Line 41 creates a vector of shared pointers to an abstract class, or in other words, an array of functions. Each function prints the emoji, mostly the same as the name, but not always. ( πŸ’ is the exception, it prints "πŸ‰\n")

43 and 44 just loop over the array and call every function inside, printing a bunch of emoji.

Line 46 returns the result of std::rand(), but because the programer forgot to call srand, the result is always the same (1804289383 for me).

(There are also a few missing includes, but I doubt this is intentional)

[–] [email protected] 10 points 2 years ago

Genius honestly

[–] [email protected] 10 points 2 years ago

Now imagine the poor sod who gets this as an interview question

"Please extend the following code in the same code style to sort [πŸ˜€,πŸ˜ƒ,πŸ˜„,😁,πŸ˜†] using bubble sort"

[–] [email protected] 10 points 2 years ago
[–] [email protected] 7 points 2 years ago (1 children)
[–] [email protected] 6 points 2 years ago

Mojo prepared me for this with their filename extension .πŸ”₯

[–] [email protected] 4 points 2 years ago (1 children)
[–] [email protected] 4 points 2 years ago

Assembly but the commands are emojies🀯

[–] [email protected] 4 points 2 years ago

Ive written a transpiler for JS that allows emojis. I call it emojs: https://github.com/f-kirchhoff/emojs

[–] [email protected] 3 points 2 years ago

I think you could pull a similar breach of geneva conventions quite easily with Nim, probably even beyond what you can with C++

No, I'm not intelligent, nor crazy enough to try that

[–] [email protected] 3 points 2 years ago* (last edited 2 years ago) (1 children)

i'm not used to c++ but...
int main() ?

[–] [email protected] 13 points 2 years ago (1 children)

Yep, main returns an int in C++. It’s for the return code - if it returns 0, that indicates the program ran ok, if it returns anything else some sort of error occurred.

[–] [email protected] 3 points 2 years ago

that actually makes sense. thanks for that explanation.

[–] [email protected] 3 points 2 years ago

Haha did the same thing years ago to make the code look like free flowing text.

[–] [email protected] 3 points 2 years ago

This... this... this is... GENIUS.

Utter madness, sure. Genius nonetheless.

[–] [email protected] 2 points 2 years ago

Can you string match emojis