this post was submitted on 25 Sep 2023
93 points (97.0% liked)

Programming

17503 readers
9 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

cross-posted from: https://sh.itjust.works/post/5850736

This is the resource I've been looking for. I'm working my way through the book but it gets in the weeds really early. It's all fun and games and then chapter 4 just hits like a brick wall. Amos does a tremendous job explaining the why behind things, in a more wheels to the pavement way.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 1 year ago (2 children)

Oh man ... I haven't learnt rust myself, but this fits with my sterotyped impression of it ... wanna read a file ... well, let's just wrestle with the type system and compiler for half an hour first!

Not a criticism ... I get the value of the type system and all that, but as an introduction to the language, diving into all that straight away before you do any actual computation is probably not the best way to go.

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

Static types aside, the file system has a lot of failure cases, which every language is affected by, and Rust makes them very visible. This can indeed feel like a lot, but it's an intentional feature and makes more sense in larger projects. I guess the feeling may get amplified by the author's style of long form posts with a lot of details.

Error handling in practice contains a lot of "let the caller deal with it", using the ? operator to pass errors up the call stack. The more verbose options are for when you need to actually handle it.

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

the file system has a lot of failure cases

Oh for sure, like I said this makes a lot of sense. All I was saying was that as a pitch for learning the language, the part after the file read had been sorted was much more compelling and interesting.

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

Absolutely, I didn't mean to suggest otherwise. :) I'm just giving a bit of context and perspective from someone who has used it for a while.

[–] MonkCanatella 5 points 1 year ago (1 children)

Yes, not to knock the book because it is really well done, but it gets theory deep before you're able to apply that theory in a way that makes it make sense. It's like someone describing the theory of gravity to you to teach you how to play basketball

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

Yea I can imagine.

I'm a pretty big believer in understanding the problem that needs solving before understanding the solution. I'd imagine that gets a bit tricky with rust because the compiler is just not gonna let you run the "problematic" program.

Now that I'm thinking this out loud ... maybe a good way to learn rust would be by using and contrasting it with another language to see what rust is giving you that the other language doesn't. Most are probably coming to rust from knowing a few languages already too.

[–] MonkCanatella 2 points 1 year ago

To be fair, Rust is far from the hardest language I've learned. That honor would go to C++. I'm actually really enjoying it. But I'd maybe compare to learning english. You can learn all the funky grammar rules, the funky spelling, the history that went behind all that funkiness. But it's filled with so many idioms that are just kinda baked in and not written down that it can get confusing fairly easily.