this post was submitted on 07 Apr 2024
104 points (93.3% liked)

Programmer Humor

22505 readers
1062 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
 

all 37 comments
sorted by: hot top controversial new old
[–] [email protected] 26 points 1 year ago

Finally, pure functional rust.

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

Neat FP style. Pretty verbose though. Someone should invent a terser syntax so you don't need to write do_two_things everywhere. It's a common operation so maybe it could even be a single character.

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

Like a semicolon? No, too boring. What about >>=

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

If you know about rust you know it's a programmable programming language, meaning that you can make macros. There could be a macro that would do that but 1. Macros is rust code to write rust code so they have the complexity of rust squared 2. I said to myself the only macros I will allow myself to use in this challenge is println and allow

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

; is just a monad after all

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

Isn’t this basically how lisp works?

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

Yup! Also languages in the ML family and others I'm sure.

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

Now do it without using commas

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

Challenge accepted! If I won't procrastinate from this procrastinating, tomorrow will be a version 2 without commas!

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

Yeah, semicolons are ugly anyway and they'd ruin the beautiful expression of your code.

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

On a more serious note, does rust suffer some of the same issues as JavaScript when it comes to omitting semicolons?

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

Do not expect to find anything like Javascript craziness on other languages. Or you'll be severely disappointed.

[–] [email protected] 4 points 1 year ago (1 children)
for (const item in items) { }

!=

for (const item of items) { }
[–] [email protected] 2 points 1 year ago

Still better than

for _, item in ipairs(items)
[–] [email protected] 4 points 1 year ago (1 children)

There are plenty of languages with warts at least as bad as JavaScript's. Bash, PHP, C, even relatively sane languages like Python still have huge issues like implicit variable declaration.

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

JS and PHP are by themselves in a special ring of hell.

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

Bash is a bigger one. Luckily there's nushell

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

Nope. In Rust, a semicolon denotes a statement while a lack of semicolon is an expression so you can't just omit them at will. This does lead to cool things though like if/else blocks being able to produce values if they end in an expression. But the expression type is checked so you're less likely to make a mistake. You can see an example here: https://doc.rust-lang.org/rust-by-example/flow_control/if_else.html

In JavaScript I never skip semicolons because I've seen those subtle bugs.

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

POV: your project manager went in an "cleaned" it all up by removing them - your (sic) welcome! 😜

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

After programming in Go for nearly a decade, the idea of going back to needing semicolons brings me pain. Rust seems cool, but semicolons 🤢

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

As you can see, rust allows you to not put semicolons at the end of code blocks. The presence of semicolons is not a language killer. It's a very hard language, but its worth it.

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

I agree. Semicolons are a small "tradeoff" (personally not for me) for such a great language.

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

The presence of semicolons is not a language killer.

I'm not saying it is. But every time I have to work in a language that requires semicolons I'm constantly forgetting them and constantly reminded of how nice it is to not have to care in Go.

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

How did I not recognize the font I've been using for years, lol. Guess it just looks even better on a HiDPI display.

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

Would you rather have semicolons or significant newlines?

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

Semicolons. Statement's can be written in multiple lines such as rust io::stdin(&mut foo) .unwrap(). Idk if it would work if the newlines were significant. Also when I paste something, it could be ready hard for the formatter to format it.

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

Rust's semicolon means something like "There's nothing to see here! Move along! Move along!", so yeah, you don't actually need any.

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

Well you have a variable foo being mutated. Maybe that's what they're for?

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

~~You can replace return foo with just foo.~~

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

Not here, because it's being used as a function argument.

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

Oh wow. I hate this lol