Good code. Maybe worth mentioning that expect/unwrap is viable only for fast prototyping, but in production you should avoid panic. Even if the error is not recoverable. This is important because beginners may think that this is like an exception, but it is not. Panic actually crashes your program right away, Rust has no exceptions. Also minor tip: you can use inbuilt lines() instead of split(' '). As a bonus it also accounts different line endings (LF/CRLF).
`expect()` should be avoided by libraries and apps that should never crash, like web servers, but it's fine in other applications; for example, games. Let's say you have a function that applies a force to objects that go off-screen to bring them back on-screen. It requests the window resource, which holds the screen dimensions. Theoretically, there could be no window-an app can be run without it-so the request returns an option, but your game requires a window, so if it returns `None` at that point, something has gone _very_ wrong. So, it's fine to use `expect()` here.
Fantastic video - great idea to use AOC to show a small concrete example that you solve with a second part that the viewer can solve too. Using Typescript as a reference point of comparison to Rust works really well. Would definitely watch more videos like this.
As a casual rust learner with a bit of knowledge, these videos are nice to see because I know enough to follow along without getting lost. Also good to see someone go through the same learning path. Good luck!
I'm also new to Rust and I'm absolutely loving the language. I made it about halfway in Advent of Code before I ran out of time (I got started late). But then I decided to jump into a rather large project with multiple interoperable components and I have learned an absolute ton. Futures with the Tokio runtime, procedural attribute macros, MPSC channels across thread boundaries... It's been a blast learning so much so fast. Rust is quickly becoming a contender for my favorite language.
I recommend configuring your language server (most likely rust-analyzer) to run cargo clippy instead of just cargo check. You'll get a ton of good hints regarding correctness, performance, and best-practices.
This is exactly what I've been waiting for, been trying to learn Rust and there are definitely some hurdles as a primarily TS and Java dev. Please keep these coming, I'll be watching for sure!
I am a typescript guy -- did quite enjoy this, great explanations. Not sure how its 'for typescript developers' -- but it did get you on my feed, and a +1 to the subscriber count!
Keep these videos coming, Andrew! I haven't touched Rust before so it's interesting to look at someone solving problems in it. I'm still surprised you don't have more subscribers because your videos are top-notch: Straight to the point, packed with information, good explanations, code is the focal point, etc.
A good start to the channel. I would say since you lured the TypeScript people here you could do a more comprehensive explanation on how typescript would have done it. You did say in few places but also missed one or two. I will be following, and cheering for you. Good Luck
Great stuff! I spend my work day in typescript and I've been learning rust over the past month or so. I wish a video like this was out there when I started!
Very good presentation style! I like that you leave your personal camera on (buttom right round). As a watcher you have the feeling that you speak to me (while you just watch into your camera) and that is motivating. Rust is a functional language and strong typing. Syntax feels a bit "rusty"!
offtopic but cheezus krist that vim setup is so neat. Been using vscode my whole life and never considered vim as a primary editor. i think i'll try one soon.
Hello Mr.Burgess, can you share your awesome LSP setup? Wondering if your dotfiles are already out there. Everything looks so stable and my rust config feels a bit janky
Thanks for the video. I really liked your pace and the way you explained. A Small piece of feedback thought, it seems like we can hear some noise whenever you type (beyond the key presses) maybe you have your mic sitting at the table? It is a bit more noticeable with headphones. I'm saying this because I had that issue with the Blue Yeti, moving it to an arm with a shock mount sovled the issue.
That is specific to the editor (there are tons of them) and has little to do with the theme of the video. There are other videos about Neovim out there.
Please do a series: Rust for Tyepscript devs, where you allow viewers to transfert or at least use as much as possible of their Typescript knowledge to Rust
For your `map` method that parses the str to usize you could use `filter_map` instead of unwrapping and have something like: `filter_map(|row| row.parse().ok())`
I would love more things like this as I do not have a lot of time for Rust, at the moment and I feel like this is done in small enough bits and good enough expansions that I can absorb the information reasonably well.
usize as a type is more for things like array/vector indices rather than just as a regular numeric type. It's 32 or 64 bits based on the system because that's how long memory addresses would be so it's meant to line up with that.
@@andrew-burgess in this example usize fine, tbh. It's only when you need to think about performance, or are dealing with numbers bigger than 2 or 4 billion, or are developing for much more limited hardware (i.e. 16 or 8 bit) that you really need to think about it. And of course if you expect negative numbers, there's always isize.
@@andrew-burgess u32 and i32 are the “default” int types, there's also 8, 16, and 64bit versions for when you need different sizes for optimization or whatever
Рік тому+1
Can you share your vim config, extensions, and terminal?
Looks great as long as you do not fall into the lisp macro hell and avoid them total your good to go i would advice you to play around with deno and v8 so you can run your rust code in a more modular fashion
@@andrew-burgess deno is only a Rust Binding and Minimum runtime written in Rust for v8 so you can use IT Like lua to Connect your Rust modules to v8 and use Them with typescript
Some people are wizards… other are just superhero… and then we have people like Andrew Burgess who looks like they are working as a journalist for the Daily Planet.
Good code. Maybe worth mentioning that expect/unwrap is viable only for fast prototyping, but in production you should avoid panic. Even if the error is not recoverable. This is important because beginners may think that this is like an exception, but it is not. Panic actually crashes your program right away, Rust has no exceptions.
Also minor tip: you can use inbuilt lines() instead of split('
'). As a bonus it also accounts different line endings (LF/CRLF).
That’s great to know, thanks!
Didn't knew about lines() thanks for sharing!
`expect()` should be avoided by libraries and apps that should never crash, like web servers, but it's fine in other applications; for example, games.
Let's say you have a function that applies a force to objects that go off-screen to bring them back on-screen. It requests the window resource, which holds the screen dimensions. Theoretically, there could be no window-an app can be run without it-so the request returns an option, but your game requires a window, so if it returns `None` at that point, something has gone _very_ wrong. So, it's fine to use `expect()` here.
@@verified_tinker1818 how much wrong is necessary to use expect?
@@climatechangedoesntbargain9140 there's no single answer to that, it really depends on the application and how important it is for it to not crash.
Fantastic video - great idea to use AOC to show a small concrete example that you solve with a second part that the viewer can solve too. Using Typescript as a reference point of comparison to Rust works really well. Would definitely watch more videos like this.
Agreed!
Yes. I would love to see more of these!
Is there any video wher you show how to setup rust and make it look that amazing like that?
Please do more of this. Your explanation is very intuitive.
This is exactly what I'm looking for. Rust for Typescript devs
As a casual rust learner with a bit of knowledge, these videos are nice to see because I know enough to follow along without getting lost. Also good to see someone go through the same learning path. Good luck!
I'm also new to Rust and I'm absolutely loving the language. I made it about halfway in Advent of Code before I ran out of time (I got started late). But then I decided to jump into a rather large project with multiple interoperable components and I have learned an absolute ton. Futures with the Tokio runtime, procedural attribute macros, MPSC channels across thread boundaries... It's been a blast learning so much so fast. Rust is quickly becoming a contender for my favorite language.
I recommend configuring your language server (most likely rust-analyzer) to run cargo clippy instead of just cargo check. You'll get a ton of good hints regarding correctness, performance, and best-practices.
This is exactly what I've been waiting for, been trying to learn Rust and there are definitely some hurdles as a primarily TS and Java dev. Please keep these coming, I'll be watching for sure!
i was trying to learn Rust two months ago and i didn't find any single video that helped me more than this one
thank you 🙌
I liked the explanation of your Rust video. I wish I could get a full tutorial on how to get started with the language. Its a thumbs up!
As a TS developer, I like ths format, short and concise.
Great video, I'd love to see more of these types of videos. I'm also looking to learn Rust this year.
ABSOLUTELY FANTASTIC of you to start doing this. keep it going!!
I am a typescript guy -- did quite enjoy this, great explanations. Not sure how its 'for typescript developers' -- but it did get you on my feed, and a +1 to the subscriber count!
Keep these videos coming, Andrew! I haven't touched Rust before so it's interesting to look at someone solving problems in it.
I'm still surprised you don't have more subscribers because your videos are top-notch: Straight to the point, packed with information, good explanations, code is the focal point, etc.
Great video for me as a Dev who uses Typescript and wants to learn Rust.
Holy snap Andrew Burgess!! I didn't know you had a UA-cam channel. Blast from the past from the Envato days
You're an excellent teacher, I'd love to see more Rust content on your channel!
A good start to the channel. I would say since you lured the TypeScript people here you could do a more comprehensive explanation on how typescript would have done it. You did say in few places but also missed one or two.
I will be following, and cheering for you.
Good Luck
Great video. I've been playing about with rust, but didn't grasp some of the concepts you've covered here until watching this. Very useful
What editor are you using? Interested to know how you setup it
shaky.sh/tools/
@@andrew-burgess thank you!
Amazing video!! Love your neovim setup! Do you have a repo with your neovim/vim co fig?
Thanks! It’s pretty close to stock lunarvim. More details at shaky.sh/tools/
Great stuff! I spend my work day in typescript and I've been learning rust over the past month or so. I wish a video like this was out there when I started!
Could you please do more rust videos? Your rust videos are fantastic, especially the traits explanation 🔥
Yes please. Keep it up. I like everything related to Rust and TypeScript, so feel free to record any videos on these topics. Good luck! ❤
I study currently Rust and your video give a understandable lesson. Thanks man. I wait for more videos. ☺
This is exactly the title I’ve been searching for
Really liked this video! Currently one day in learning rust, pretty excited for the next 😁
I love the video format. Also the way you explain things. Will subscribe hoping to see more like this one. Thanks!
PLEASE keep going with this series!!! x 10000000
I totally agree
This is so crazy I just typed in "Rust for Typescript developers" and Andrew has a video posted today.
I'm excited for your rust journey. you're really smart
Very good presentation style! I like that you leave your personal camera on (buttom right round). As a watcher you have the feeling that you speak to me (while you just watch into your camera) and that is motivating.
Rust is a functional language and strong typing. Syntax feels a bit "rusty"!
offtopic but cheezus krist that vim setup is so neat.
Been using vscode my whole life and never considered vim as a primary editor. i think i'll try one soon.
I like to see more of this kind of rust videos. It's very interesting.
Thanks for this great video, I'm learning TypeScript and also Rust is the next in my long list. Please do more video like this.
One unexplained jump was how the `parse` function works. Does it infer the type to parse from context?
Great question! I’ve got a video all about this coming out in about an hour!
Great explanation. I’ve spent time on my own learning Rust and you filled in a bunch of details. Thanks!
It would be great to have a dedicated playlist of "Rust for TypeScript Developers"
Hello Mr.Burgess, can you share your awesome LSP setup? Wondering if your dotfiles are already out there. Everything looks so stable and my rust config feels a bit janky
Yeah, they’re all out there! See the link in the video description.
Which editor? Vim?emacs?
Looks nice....
Neovim! Details here: shaky.sh/tools/
Would be a cool series to explore rust. Something I would follow along with
Hi guys,
What is this IDE it looks awesome.
Can you make a video about configuring it like this?
It’s neovim with lunarvim configs! Check the description for a link to the setup!
Thanks for the video.
I really liked your pace and the way you explained.
A Small piece of feedback thought, it seems like we can hear some noise whenever you type (beyond the key presses) maybe you have your mic sitting at the table? It is a bit more noticeable with headphones. I'm saying this because I had that issue with the Blue Yeti, moving it to an arm with a shock mount sovled the issue.
Thanks for the feedback! I do have the yeti on an arm, but I should try adding the shock mount. Appreciate it!
Really great content here! Been eyeing Rust for a while, guess it's time to start learning it :)
love that youre doing this series!! I definitely want more Rust!
enjoyed it and subbed. Definitely learned a thing or two from this short video, keem em coming! cheers
Great content! To help others following along, please include the keys currently being pressed while using Neovim.
That is specific to the editor (there are tons of them) and has little to do with the theme of the video. There are other videos about Neovim out there.
If you will teach rust like this, I am subscribed already. Wonderful explanation man.
I loved it, very good content your ability to organize thoughts is amazing
This video was so good. Please do more!
Please do a series: Rust for Tyepscript devs, where you allow viewers to transfert or at least use as much as possible of their Typescript knowledge to Rust
Really nice content, Andrew!
Can you please also share your editor/IDE configs? I've found those quick suggestions/docs really helpful!
That’s part of the lunarvim configs! shaky.sh/tools/
But it should be part of any rust plugin for your editor.
Hi. How was this video recorded? (camera, microphone, etc)
iPhone 14 and blue yeti, using QuickTime and OBS.
@@andrew-burgess Thanks! and great video btw! This video quality with just an iPhone?
I loved the content. Please more Rust videos like this!
I had been waiting for this!
I enjoyed your video a lot. Looking forward to the next one.
I find that copilot really helps when learning a new language...
Almost like training wheels...
What editor are you using?
Neovim! More details at the link in the description.
You just intimidated me with your vim motions 😮
Do I need to read the book first? I'm not comprehending well.
Which editor are you using
Neovim. Link in the description for the details.
For your `map` method that parses the str to usize you could use `filter_map` instead of unwrapping and have something like: `filter_map(|row| row.parse().ok())`
I would love more things like this as I do not have a lot of time for Rust, at the moment and I feel like this is done in small enough bits and good enough expansions that I can absorb the information reasonably well.
Rust really is a beauty
thx, great practical intro to Rust.
This is amazing. Please do a series
usize as a type is more for things like array/vector indices rather than just as a regular numeric type. It's 32 or 64 bits based on the system because that's how long memory addresses would be so it's meant to line up with that.
Ah, interesting! So what would you use as a numeric type?
@@andrew-burgess in this example usize fine, tbh. It's only when you need to think about performance, or are dealing with numbers bigger than 2 or 4 billion, or are developing for much more limited hardware (i.e. 16 or 8 bit) that you really need to think about it. And of course if you expect negative numbers, there's always isize.
@@andrew-burgess u32 and i32 are the “default” int types, there's also 8, 16, and 64bit versions for when you need different sizes for optimization or whatever
Can you share your vim config, extensions, and terminal?
Check out my video from last week, and this: shaky.sh/tools/
Very interesting. Go on like this! Your little mistakes will feed our knowledge ... 😉😉😉 So nothing is lost for everyone! 😁😁😁
thanks for your video. looking forward to more.
Wow this language looks so good, I'll have to try this once after exams lol
Which code editor are you using?
Neovim! More info at the link in the description.
Please do more of this!
Extremely helpful. Thank you.
thanks for the video!!! the format is great
Where I click to set up one thousand of likes?! Amazing video!!!
which extension are you using?
shaky.sh/tools/
Good work, please keep going 💯
Great video to motivate looking at Rust. Thanks
Looks great as long as you do not fall into the lisp macro hell and avoid them total your good to go i would advice you to play around with deno and v8 so you can run your rust code in a more modular fashion
Wait, I’m not sure I follow. What’s the connection between deno/v8 and rust?
@@andrew-burgess deno is only a Rust Binding and Minimum runtime written in Rust for v8 so you can use IT Like lua to Connect your Rust modules to v8 and use Them with typescript
There is no problem with macros in Rust at all, they can make the code writting easy and succint
This is great stuff, subbed
What editor is that? is that helix?
Neovim with the lunarvim configs. See the link in the video description for more details.
@@andrew-burgess thanks!
good stuff, I'm definitely interested! keep going
Some people are wizards… other are just superhero… and then we have people like Andrew Burgess who looks like they are working as a journalist for the Daily Planet.
I am not a TypeScript superhero, just someone who is also kind’a learning Rust!!!
What theme is this?
Tokyo Night!
is that nvim or emacs?
Neovim with lunarvim configs!
great great great great great explanation!
this is great, please keep this up!
I like it s lot! Super easy to fallow ❤
Good insight. Thanks.
EMacs text editor?
(Neo)Vim 4 lyfe!
I absolutely love this type of content
Yes please keep them coming
As someone that just started learning Python, with the goal of then trying to learn Rust, this is Chinese to me.
can you do this for C++
good explanation!
How tf do you get that con setup?
See the link in the description for all the details!
Defo want more
awesome, more rust code please
Or you can just do max call on iterator
Ooh, good tip!