Rust for TypeScript Developers

Поделиться
HTML-код
  • Опубликовано: 9 фев 2025
  • Let me know in the comments if you want more "rust beginner" videos!
    shaky.sh

Комментарии • 174

  • @mk72v2oq
    @mk72v2oq 2 года назад +184

    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).

    • @andrew-burgess
      @andrew-burgess  2 года назад +23

      That’s great to know, thanks!

    • @hc1770
      @hc1770 2 года назад +5

      Didn't knew about lines() thanks for sharing!

    • @verified_tinker1818
      @verified_tinker1818 2 года назад +12

      `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.

    • @climatechangedoesntbargain9140
      @climatechangedoesntbargain9140 2 года назад

      @@verified_tinker1818 how much wrong is necessary to use expect?

    • @caerphoto
      @caerphoto 2 года назад

      @@climatechangedoesntbargain9140 there's no single answer to that, it really depends on the application and how important it is for it to not crash.

  • @adicandra9940
    @adicandra9940 2 года назад +13

    Please do more of this. Your explanation is very intuitive.
    This is exactly what I'm looking for. Rust for Typescript devs

  • @shashydass4114
    @shashydass4114 2 года назад +48

    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.

    • @fallingseasy
      @fallingseasy 2 года назад

      Agreed!

    • @tmangner
      @tmangner 2 года назад

      Yes. I would love to see more of these!

    • @somerandomchannel382
      @somerandomchannel382 Год назад

      Is there any video wher you show how to setup rust and make it look that amazing like that?

  • @adamdrake39
    @adamdrake39 2 года назад +10

    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!

  • @Matt23488
    @Matt23488 2 года назад +12

    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.

  • @ViliamVadocz
    @ViliamVadocz 2 года назад +16

    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.

  • @MaybeBL1TZ
    @MaybeBL1TZ 2 года назад

    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 🙌

  • @sneakytowelsuit
    @sneakytowelsuit 2 года назад +6

    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!

  • @mluevanos
    @mluevanos 2 года назад

    As a TS developer, I like ths format, short and concise.

  • @otisrancko
    @otisrancko 2 года назад

    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!

  • @dimitrimitropoulos
    @dimitrimitropoulos 2 года назад +1

    ABSOLUTELY FANTASTIC of you to start doing this. keep it going!!

  • @TheEuphoricism
    @TheEuphoricism 2 года назад

    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!

  • @webhedz
    @webhedz 2 года назад +1

    Great video, I'd love to see more of these types of videos. I'm also looking to learn Rust this year.

  • @cg219
    @cg219 2 года назад +1

    Holy snap Andrew Burgess!! I didn't know you had a RUclips channel. Blast from the past from the Envato days

  • @dubble_cuppachino
    @dubble_cuppachino 2 года назад

    This is exactly the title I’ve been searching for

  • @dandcodes
    @dandcodes Год назад

    You're an excellent teacher, I'd love to see more Rust content on your channel!

  • @viridianite
    @viridianite 2 года назад +8

    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.

  • @DanelonNicolas
    @DanelonNicolas 2 года назад

    I love the video format. Also the way you explain things. Will subscribe hoping to see more like this one. Thanks!

  • @g_dfe1
    @g_dfe1 2 года назад +6

    PLEASE keep going with this series!!! x 10000000

  • @irlshrek
    @irlshrek 2 года назад

    love that youre doing this series!! I definitely want more Rust!

  • @introvertsgo
    @introvertsgo 2 года назад

    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

  • @EldorJ10
    @EldorJ10 2 года назад

    Great video for me as a Dev who uses Typescript and wants to learn Rust.

  • @ryan_t_brown
    @ryan_t_brown 2 года назад

    This is so crazy I just typed in "Rust for Typescript developers" and Andrew has a video posted today.

  • @marcelarmada-castellon1863
    @marcelarmada-castellon1863 2 года назад

    I study currently Rust and your video give a understandable lesson. Thanks man. I wait for more videos. ☺

  • @hello-AZIZUR
    @hello-AZIZUR 2 года назад +1

    It would be great to have a dedicated playlist of "Rust for TypeScript Developers"

  • @dvlden
    @dvlden 2 года назад

    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! ❤

  • @Nonsense116
    @Nonsense116 2 года назад

    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!

  • @NoName-1337
    @NoName-1337 2 года назад

    I like to see more of this kind of rust videos. It's very interesting.

  • @keent
    @keent 2 года назад +1

    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.

  • @juanditoro8901
    @juanditoro8901 2 года назад

    Really liked this video! Currently one day in learning rust, pretty excited for the next 😁

  • @apidas
    @apidas 2 года назад

    I'm excited for your rust journey. you're really smart

  • @hansschenker
    @hansschenker 2 года назад

    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"!

  • @FauzulChowdhury
    @FauzulChowdhury 2 года назад

    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

  • @returncode0000
    @returncode0000 8 месяцев назад

    Could you please do more rust videos? Your rust videos are fantastic, especially the traits explanation 🔥

  • @mikeriv9229
    @mikeriv9229 2 года назад

    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
      @andrew-burgess  2 года назад

      Ah, interesting! So what would you use as a numeric type?

    • @caerphoto
      @caerphoto 2 года назад

      @@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.

    • @mikeriv9229
      @mikeriv9229 2 года назад

      @@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

  • @ynokenty
    @ynokenty 2 года назад

    Really great content here! Been eyeing Rust for a while, guess it's time to start learning it :)

  • @mumk
    @mumk 2 года назад

    enjoyed it and subbed. Definitely learned a thing or two from this short video, keem em coming! cheers

  • @lucasa8710
    @lucasa8710 2 года назад +1

    I loved it, very good content your ability to organize thoughts is amazing

  • @SilvestreVivo
    @SilvestreVivo 2 года назад

    I loved the content. Please more Rust videos like this!

  • @csells99
    @csells99 2 года назад

    Great explanation. I’ve spent time on my own learning Rust and you filled in a bunch of details. Thanks!

  • @chrisjames278
    @chrisjames278 2 года назад

    Would be a cool series to explore rust. Something I would follow along with

  • @wiseskeshom4673
    @wiseskeshom4673 2 года назад

    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.

  • @josephizang6187
    @josephizang6187 2 года назад

    If you will teach rust like this, I am subscribed already. Wonderful explanation man.

  • @SuperQuwertz
    @SuperQuwertz Год назад

    This video was so good. Please do more!

  • @pedro.balbino
    @pedro.balbino 2 года назад +1

    Great content! To help others following along, please include the keys currently being pressed while using Neovim.

    • @estranhokonsta
      @estranhokonsta 2 года назад

      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.

  • @SuperQuwertz
    @SuperQuwertz Год назад

    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

  • @loodinek
    @loodinek 2 года назад

    I enjoyed your video a lot. Looking forward to the next one.

  • @MaxProgramming
    @MaxProgramming 2 года назад

    I had been waiting for this!

  • @khairulhaaziq2332
    @khairulhaaziq2332 2 года назад +1

    What editor are you using? Interested to know how you setup it

  • @orlandofury
    @orlandofury 2 года назад

    thanks for the video!!! the format is great

  • @joaquimley
    @joaquimley 2 года назад

    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.

    • @andrew-burgess
      @andrew-burgess  2 года назад

      Thanks for the feedback! I do have the yeti on an arm, but I should try adding the shock mount. Appreciate it!

  • @AmitErandole
    @AmitErandole 2 года назад

    This is amazing. Please do a series

  • @limitlesskode
    @limitlesskode Год назад

    You just intimidated me with your vim motions 😮

  • @diogoanjos3160
    @diogoanjos3160 2 года назад

    Really nice content, Andrew!
    Can you please also share your editor/IDE configs? I've found those quick suggestions/docs really helpful!

    • @andrew-burgess
      @andrew-burgess  2 года назад

      That’s part of the lunarvim configs! shaky.sh/tools/
      But it should be part of any rust plugin for your editor.

  • @killymxi
    @killymxi 2 года назад

    One unexplained jump was how the `parse` function works. Does it infer the type to parse from context?

    • @andrew-burgess
      @andrew-burgess  2 года назад

      Great question! I’ve got a video all about this coming out in about an hour!

  • @AiSaac-q8k
    @AiSaac-q8k Год назад

    I find that copilot really helps when learning a new language...
    Almost like training wheels...

  • @anandmt7459
    @anandmt7459 2 года назад

    Extremely helpful. Thank you.

  • @LielAlmog
    @LielAlmog 2 года назад +1

    Hi guys,
    What is this IDE it looks awesome.
    Can you make a video about configuring it like this?

    • @andrew-burgess
      @andrew-burgess  2 года назад +1

      It’s neovim with lunarvim configs! Check the description for a link to the setup!

  • @ExpDev69
    @ExpDev69 2 года назад

    Rust really is a beauty

  • @itznukeey
    @itznukeey 2 года назад

    Wow this language looks so good, I'll have to try this once after exams lol

  • @indylawi5021
    @indylawi5021 2 года назад

    thx, great practical intro to Rust.

  • @franklemanschik_de
    @franklemanschik_de 2 года назад

    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
      @andrew-burgess  2 года назад +1

      Wait, I’m not sure I follow. What’s the connection between deno/v8 and rust?

    • @franklemanschik_de
      @franklemanschik_de 2 года назад +1

      @@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

    • @diadetediotedio6918
      @diadetediotedio6918 Год назад

      There is no problem with macros in Rust at all, they can make the code writting easy and succint

  • @jgttech
    @jgttech 2 года назад

    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.

  • @JavierHarford
    @JavierHarford 2 года назад

    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

    • @andrew-burgess
      @andrew-burgess  2 года назад +1

      Yeah, they’re all out there! See the link in the video description.

  • @fardeenpanjwani-si7yv
    @fardeenpanjwani-si7yv Год назад

    Amazing video!! Love your neovim setup! Do you have a repo with your neovim/vim co fig?

    • @andrew-burgess
      @andrew-burgess  Год назад +1

      Thanks! It’s pretty close to stock lunarvim. More details at shaky.sh/tools/

  •  2 года назад +1

    Can you share your vim config, extensions, and terminal?

    • @andrew-burgess
      @andrew-burgess  2 года назад

      Check out my video from last week, and this: shaky.sh/tools/

  • @Muaahaa
    @Muaahaa 2 года назад +2

    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())`

  • @NoonKnite
    @NoonKnite 2 года назад

    thanks for your video. looking forward to more.

  • @LinuxForLife
    @LinuxForLife Год назад

    Very interesting. Go on like this! Your little mistakes will feed our knowledge ... 😉😉😉 So nothing is lost for everyone! 😁😁😁

  • @jeanchindeko5477
    @jeanchindeko5477 2 года назад

    Great video to motivate looking at Rust. Thanks

  • @andrefilipefonsecaborba4989
    @andrefilipefonsecaborba4989 2 года назад

    Where I click to set up one thousand of likes?! Amazing video!!!

  • @matej2714
    @matej2714 2 года назад

    great great great great great explanation!

  • @mayassalman
    @mayassalman Год назад

    Good work, please keep going 💯

  • @SeanLazer
    @SeanLazer 2 года назад

    This is great stuff, subbed

  • @ndanzzid566
    @ndanzzid566 2 года назад

    Do I need to read the book first? I'm not comprehending well.

  • @antonpegov2745
    @antonpegov2745 2 года назад

    I like it s lot! Super easy to fallow ❤

  • @nirajkhatiwada6696
    @nirajkhatiwada6696 2 года назад

    Good insight. Thanks.

  • @Luxcium
    @Luxcium Год назад

    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.

    • @Luxcium
      @Luxcium Год назад

      I am not a TypeScript superhero, just someone who is also kind’a learning Rust!!!

  • @souravdhar47
    @souravdhar47 2 года назад

    I absolutely love this type of content

  • @muhrizqiardi
    @muhrizqiardi 2 года назад

    Please do more of this!

  • @officemax3977
    @officemax3977 2 года назад

    good stuff, I'm definitely interested! keep going

  • @RyanWaite28
    @RyanWaite28 2 года назад

    Hi. How was this video recorded? (camera, microphone, etc)

    • @andrew-burgess
      @andrew-burgess  2 года назад +1

      iPhone 14 and blue yeti, using QuickTime and OBS.

    • @RyanWaite28
      @RyanWaite28 2 года назад

      @@andrew-burgess Thanks! and great video btw! This video quality with just an iPhone?

  • @ivanhale8114
    @ivanhale8114 2 года назад

    can you do this for C++

  • @dolevgo8535
    @dolevgo8535 2 года назад

    this is great, please keep this up!

  • @eyesight2073
    @eyesight2073 2 года назад

    Which editor? Vim?emacs?
    Looks nice....

  • @shecodes94623
    @shecodes94623 2 года назад

    Which code editor are you using?

    • @andrew-burgess
      @andrew-burgess  2 года назад

      Neovim! More info at the link in the description.

  • @abishekkumar316
    @abishekkumar316 2 года назад

    which extension are you using?

  • @gleweistam6663
    @gleweistam6663 2 года назад

    Yes please keep them coming

  • @Antilli
    @Antilli 2 года назад

    As someone that just started learning Python, with the goal of then trying to learn Rust, this is Chinese to me.

  • @kma1138
    @kma1138 2 года назад

    love it!

  • @enkioki
    @enkioki 2 года назад

    What editor are you using?

    • @andrew-burgess
      @andrew-burgess  2 года назад

      Neovim! More details at the link in the description.

  • @forinda
    @forinda 2 года назад

    Which editor are you using

    • @andrew-burgess
      @andrew-burgess  2 года назад

      Neovim. Link in the description for the details.

  • @joe_kraper12
    @joe_kraper12 27 дней назад

    what editor is he using?

  • @Phildiculous
    @Phildiculous 2 года назад

    good explanation!

  • @Anastasia-cv4ld
    @Anastasia-cv4ld 2 года назад

    What theme is this?

  • @马正-w5s
    @马正-w5s 2 года назад

    EMacs text editor?

  • @lalpremi
    @lalpremi 2 года назад

    Thanks, 🙂

  • @jvcmarc
    @jvcmarc 2 года назад

    What editor is that? is that helix?

    • @andrew-burgess
      @andrew-burgess  2 года назад +1

      Neovim with the lunarvim configs. See the link in the video description for more details.

    • @jvcmarc
      @jvcmarc 2 года назад

      @@andrew-burgess thanks!

  • @juaninfante7000
    @juaninfante7000 2 года назад

    How tf do you get that con setup?

    • @andrew-burgess
      @andrew-burgess  2 года назад

      See the link in the description for all the details!

  • @idiakosesunday3806
    @idiakosesunday3806 2 года назад

    Defo want more