this post was submitted on 06 Jul 2023
256 points (100.0% liked)

Programmer Humor

19606 readers
687 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 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] traches@sh.itjust.works 1 points 1 year ago (1 children)

Rust is neat because it doesn't have the bottom 2

[–] deegeese@sopuli.xyz 2 points 1 year ago (3 children)

Lack of support for nulls sounds like a huge pain in the ass.

[–] labsin@sh.itjust.works 5 points 1 year ago* (last edited 1 year ago) (1 children)

It has std:option

So every object that can be None or Some, needs to be checked when used. And only options can be set to None

[–] CanadaPlus@lemmy.sdf.org 5 points 1 year ago* (last edited 1 year ago) (1 children)

Yeah it's a bit inaccurate to say it's not supported. It just has edge case handling written explicitly into whatever thing you're building (I assume it's required to do so in order to be well-typed). It took this idea from Haskell, which might have gotten it from Miranda or something.

[–] labsin@sh.itjust.works 2 points 1 year ago (1 children)

I like the pattern a lot more. It makes you just initialize the value and only keep it 'nullable' for where it's needed and then you need to check. Even .net implemented it (but a bit more awkward)

[–] CanadaPlus@lemmy.sdf.org 1 points 1 year ago

Yup. Programmers are really stupid, if the compiler forces us to explicitly handle weird situations that's a feature.

[–] lavafroth@programming.dev 3 points 1 year ago

*Laughs in Option*

[–] traches@sh.itjust.works 3 points 1 year ago

It also doesn't have throw/try/catch. If a function can fail, it returns a Result and you have to deal with the failure case explicitly.