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

Programmer Humor

32048 readers
1611 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 1 year ago* (last edited 1 year 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 1 year ago

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

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

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

[–] [email protected] 33 points 1 year 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 1 year ago

it's hard to believe...

[–] [email protected] 37 points 1 year ago* (last edited 1 year 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 1 year 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 1 year 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 1 year ago (1 children)

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

[–] [email protected] 1 points 1 year ago
[–] jimmux 2 points 1 year 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 1 year ago* (last edited 1 year ago)

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

[–] [email protected] 17 points 1 year ago

Surprisingly more readable than standard C++

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

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

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

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

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

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

[–] [email protected] 11 points 1 year ago* (last edited 1 year 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] 11 points 1 year ago (1 children)
[–] [email protected] 15 points 1 year ago (1 children)

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

[–] [email protected] 10 points 1 year ago

Brand new sentence.

[–] [email protected] 10 points 1 year ago
[–] [email protected] 10 points 1 year ago

Genius honestly

[–] [email protected] 9 points 1 year 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] 7 points 1 year ago (1 children)
[–] [email protected] 6 points 1 year ago

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

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

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

[–] [email protected] 4 points 1 year ago

Assembly but the commands are emojies🀯

[–] [email protected] 3 points 1 year ago

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

Utter madness, sure. Genius nonetheless.

[–] [email protected] 3 points 1 year ago

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

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

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

[–] [email protected] 13 points 1 year 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 1 year ago

that actually makes sense. thanks for that explanation.

[–] ICastFist 3 points 1 year 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] 2 points 1 year ago

Can you string match emojis