Not sure why I bought all these tutorials from Udemy, Packt etc, when this amazing tutorial was there free for everyone. Kudos to Doug. You are an amazing instructor.
@@dougmilford7814 Timing: sometimes, when we want to start something, the great product for free is not there yet and we have no idea that this great product would come a couple of weeks later. Since we do not have the patience, we pay for courses. And yes: awesome tutorial and great job. Thanks to you, I now understand why we use references and not the objects themselves.
Wow, quite the compliment! I'm finishing up Rust 3D Graphics in the Browser right now. Hopefully by the end of the year it'll be out. I needed a break from the bread-and-butter topics to do something a little more fun. After that I'll circle back to some important fundamental topics like concurrency and creating macros. So, yes, more stuff is coming!
I'm a JS programmer. I found this idea of ownership and borrowing is exactly what I need in JS. Copies and Refs are so messed up in JS. It is the best explanation on this topic I've seen and cleaned up a hell lot of mess for me to understand Rust. Thanks!
Concise, to the point, fun to follow and really explains the thing in whole, not bits and parts of it. Your teaching speed is calibrated ideally which makes following the course easy. Finally found a channel to follow learning Rust. Thank you!
"If you cannot explain it simply enough, you do not understand it well enough", you sir most definitely understand the subject to the minute details! hats off to you for the amazing explanation!
All these tutorials in rust are amazing. Your teaching is exceptionally engaging, clear and organized. You are an amazing and wonderful teacher . Thank you very much for teaching. Much appreciated.
Wow! Lucky to run onto your tutorial, it makes a lot of sense compared to other Rust tutorials, great job! As a python/js developer with some knowledge of c/cpp I find that Rust combines both worlds in a unique way which somehow makes more sense than traditional concepts.
Where before I was hesitant to learn Rust because of it's high learning curve, now I am emboldened to learn it because you explain it so clearly. Thank you. Glad I stumbled upon your channel.
Rust is brilliant. I have quite some experience with C++ and I can totally see that Rust is just so much better. It's so explicit, consistent and well defined, while still being just as fast if not faster. I don't even know if I can bring up the motivation to write one more line of C++... Thank you for this clear explanation.
Some languages are bringing back functional ideas that are older than computer science, even. Some try to clean up C++ like D and Go, or clean up Java like Kotlin. They usually remove or minimize inheritance, and maximize immutability. But Rust is the only one trying fundamentally new ideas. I've used C++ for 27 years, and I'm having a hard time with lifetime management in Rust -- the notations. Pattern matching is what lured me in, because I tried for years to do that well in C++, and I did alright, but then try getting some random C++ coworkers interested in algebraic types and overload sets. Good luck! I gave up. C++23 will probably get pattern matching, but lifetimes? Nope. Plus std::optional, std::any, and std::variant are a hodgepodge, and std::expected is still just a proposal.
Thank you for such a clear and exhaustive overview on Ownership and Borrowing concepts. Such free contents have no price and there should be as much "thank you" comments as there are thumbs-up on this video.
I got the concept reading the official rust book but your clean explanation with examples is true gold. I'm sure you spent much time creating this tutorial with passion so you deserve all my gratitude for your hard work. Thanks so much :)
Ah, thank you! Yeah, these videos are much more work intensive than they appear. This topic I spent quite some time trying to figure out how to describe it to others without confusing them more. I'm just so glad it seemed to come out well and the viewers are finding it so useful :)
Been working my way through the Book and have struggled with the ideas of ownership and borrowing. This video has really helped my understanding so thank you! I will definitely have to check out your others
The explanation of ownership and borrowing is very well explained in this tutorial. A lot of misunderstandings and misconceptions in Rust have been cleared up by viewing this tutorial. This concept is not very well explained in any other literature or tutorial. I really appreciate this whole series. One of the best tutorials on Rust in my humble opinion. I have viewed others and none are as clear and concise as this one. Thank you once again.
I truly appreciate all of the positive feedback! I don't make any money from these videos, so having others enjoy and learn from them makes me happy that I could help others learn Rust. It makes my day when I get feedback like this :)
This is an amazing video! Thanks for helping me understand memory management in Rust better. I'm working on my own video series on Rust, that's currently available on my channel, but I haven't covered borrowing and memory management yet. Keep up the great work, Doug!
Very good coverage of seemingly difficult concepts. Your efforts are experienced through easy to understand samples. I suggest the topic of covering the standard library as much as you can. Thanks.
Thanks :) I appreciate the feedback. I'm currently polishing up a mini-series on doing 3D Graphics in the browser with Rust, and it should be out in the next few days. I needed to tackle something fun, but I'll be able to get back to the bread-and-butter topics (including the standard library) by next week. There's so many topics I want to cover, and only so much time. It's motivating to get messages like yours, though.
I don't often comment on videos, but I've watched about a dozen today on the concept of ownership/borrowing/references in Rust and yours was *by far* (and I really mean *by far*) the clearest and most effective lesson I've seen on the topic. Kudos and thanks. Seriously.
Hey, great! Yeah, tricky topic. Took me some time to wrap my head around it, too. I think it takes everyone a bit of time. Glad it's starting to click for ya :)
Awesome tutorial as always! Love how your commentary has a perfect mix of technical with a hint of goofy. Always makes them fun to watch. You briefly touched on functional programming, seeing some functional programming related tutorials in Rust would be fantastic :)
Subscribed after watching just one video!! Content is of quality! Thanks a lot for your efforts! Please continue creating more content as time and circumstances permit.
Love the enthusiasm you bring to these videos! It's really reassuring to hear you explain things as a newcomer might experience it: "What the ding-dong is that??" -- me, in the future (probably)
Your videos are very well explained. I'm just a beginner hobbyist programmer trying to learn the Rust language, and your videos surely are a great help. My only experience with programming is a little of GDScript, the scripting language used in Godot game engine. I'm studying Rust for about only two weeks, reading the The Rust Language Book from the official website and watching some videos about the language, and I think I'm starting to understand how borrowing and ownership works, but I'll have to practice it a lot to make it natural to me. When I think I'm ready I'll try to make a game in Rust. Thanks for your work teaching this amazing language.
Wow rust's memory management is kind of revolutionary. It feels almost unbelievable that we came this far in programming languages and took us this long to figure out the fact that it is indeed possible to define rules of a language that doesn't permit most memory issues in the first place without a runtime garbage collection. Kind of makes the subject of garbage collector moot doesn't it? C++ does a good job despite being backward compatible with C. The only issue is C++'s solutions are library features mostly and can't come close to the rust's features that have much deeper ties with the language and the compiler
Best explanation I’ve heard. Can’t say I care much for the web assembly gymnastics at the moment, but I really hope to hear your take on threading, async io and other features that make a language “complete”.
Very clearly explained this topic. Since past 1 month I'm learning rust, your videos shows how much i missed. Please add more in-depth videos and mini-projects with those concepts. Thanks ;)
I saw this message that you wrote. I know it's a little late, but I've published a few more videos. I'm currently considering doing a video on "Macros". Let me know if you'd be interested in that.
You mention in the video that functional programming is the way to go. I've been trying to find information about it with moderate amounts of luck, could you possibly make an introductory video explainign some of the concepts with simple examples as you do with the topic of ownership in this video? :)
This is the type of thing that old-type C++ programmers used to do. Everyone was expected to know it, even high-level Application developers creating User Interfaces. The exception were the BASIC programmers, which is why VB became so popular
This is amazing content. But 30:41 why Rust will think so ? Struct can have thousand fields ..! Compiler will check the struct too right?? Can anybody explain?
I got to know that it’s nothing to do with thousands of fields. By default struct doesn’t implement copy and that’s it. You should either implement COPY or reference.
37:22 "Rust deals with stack variables different than heap" But that's contradicting what you said at 30:05: "Because DougsStruct is composed entirely of stack variables...". It's probably more accurate to say that Rust deals with stack PRIMITIVES differently than heap primitives (are Strings primitives?) and non-primitives? I think I follow though, and it's a very helpful video! One question I have: what would it look like for an instance member function to return a mutable reference to one of its instance members?
Everything you can name is allocated itself on the stack …. That parts of that object is stored in the heap or if it acts as proxy to something that is in the heap does not change that fact. Understanding this has helped my team members grasp this whole complexity better.
Love your rustlang videos! 8:41 you said String can't be allocated on stack, I think you can allocate &str on stack. I know they aren't the same thing.
Yeah very good rust explanation. I saw that you implement a webgl based project in the end. I guess you could start a series on webgl for beginners as well.
Not sure why I bought all these tutorials from Udemy, Packt etc, when this amazing tutorial was there free for everyone. Kudos to Doug. You are an amazing instructor.
Thanks! Just wish you could have saved a few bucks. Oh well.
@@dougmilford7814 You mentioned on this video, tutorials on arrays, vectors and collections are coming, are they out?
@@sumechans Sorry... haven't gotten to it yet. Life gets in the way sometimes.
@@dougmilford7814 Definitely worth waiting. Thanks!
@@dougmilford7814
Timing: sometimes, when we want to start something, the great product for free is not there yet and we have no idea that this great product would come a couple of weeks later.
Since we do not have the patience, we pay for courses.
And yes: awesome tutorial and great job. Thanks to you, I now understand why we use references and not the objects themselves.
This is by far the best tutorial on that topic out there. I love that you've included every use case!
best rust tutorial ever, looking forward more stuff coming
Wow, quite the compliment! I'm finishing up Rust 3D Graphics in the Browser right now. Hopefully by the end of the year it'll be out. I needed a break from the bread-and-butter topics to do something a little more fun. After that I'll circle back to some important fundamental topics like concurrency and creating macros. So, yes, more stuff is coming!
exactly
This man has mastered the art of teaching for sure.
Memory management has never been this easier.
oh my god, never seen this much clear explanation of programming in general. Wonderful
This is the finest tutorial I have ever seen. It's well explained and illustrated with clear examples. Thank you Milford
He teached me Rust and also how to teach. Thank you, Mr. Milford. You're a legend.
I finally understand this concept! thank you so much!!!!
You have mastered Rust as well as the art of teaching
I finally get how it works thanks to you!
I'm a JS programmer. I found this idea of ownership and borrowing is exactly what I need in JS. Copies and Refs are so messed up in JS. It is the best explanation on this topic I've seen and cleaned up a hell lot of mess for me to understand Rust. Thanks!
Holy crap it has never felt so simple. This dude is a teaching master haha
Concise, to the point, fun to follow and really explains the thing in whole, not bits and parts of it. Your teaching speed is calibrated ideally which makes following the course easy. Finally found a channel to follow learning Rust. Thank you!
This is by far the best Rust tutorial series I’ve ever watched! Excellent work!
Doug this is a great video. I like your sense of humor.
"If you cannot explain it simply enough, you do not understand it well enough", you sir most definitely understand the subject to the minute details! hats off to you for the amazing explanation!
Great tutorial. That is easily the most troubling programming stuff I've learned in years but I think it's growing on me.
All these tutorials in rust are amazing. Your teaching is exceptionally engaging, clear and organized. You are an amazing and wonderful teacher . Thank you very much for teaching. Much appreciated.
I am amazed with how can they build this kind of compiler
so far this is the best and crystal clear explanation for rust ownership and borrowing video that I had watched. appreciate for the hard work.
Wow!
Lucky to run onto your tutorial, it makes a lot of sense compared to other Rust tutorials, great job!
As a python/js developer with some knowledge of c/cpp I find that Rust combines both worlds in a unique way which somehow makes more sense than traditional concepts.
Where before I was hesitant to learn Rust because of it's high learning curve, now I am emboldened to learn it because you explain it so clearly. Thank you. Glad I stumbled upon your channel.
Mind blowing 🤯! Thank you for video.
Very fine and well created material. Concise, straight to the point, and easy to understand. Well done, sir. Well done.
In my new job Im being transfered to a Rust project, this video was really helpful, thanks!
Rust is brilliant. I have quite some experience with C++ and I can totally see that Rust is just so much better. It's so explicit, consistent and well defined, while still being just as fast if not faster. I don't even know if I can bring up the motivation to write one more line of C++... Thank you for this clear explanation.
Couldn't agree more!
Some languages are bringing back functional ideas that are older than computer science, even. Some try to clean up C++ like D and Go, or clean up Java like Kotlin. They usually remove or minimize inheritance, and maximize immutability. But Rust is the only one trying fundamentally new ideas. I've used C++ for 27 years, and I'm having a hard time with lifetime management in Rust -- the notations. Pattern matching is what lured me in, because I tried for years to do that well in C++, and I did alright, but then try getting some random C++ coworkers interested in algebraic types and overload sets. Good luck! I gave up. C++23 will probably get pattern matching, but lifetimes? Nope. Plus std::optional, std::any, and std::variant are a hodgepodge, and std::expected is still just a proposal.
Thank you for such a clear and exhaustive overview on Ownership and Borrowing concepts.
Such free contents have no price and there should be as much "thank you" comments as there are thumbs-up on this video.
I got the concept reading the official rust book but your clean explanation with examples is true gold. I'm sure you spent much time creating this tutorial with passion so you deserve all my gratitude for your hard work. Thanks so much :)
Ah, thank you! Yeah, these videos are much more work intensive than they appear.
This topic I spent quite some time trying to figure out how to describe it to others without confusing them more. I'm just so glad it seemed to come out well and the viewers are finding it so useful :)
Been working my way through the Book and have struggled with the ideas of ownership and borrowing. This video has really helped my understanding so thank you! I will definitely have to check out your others
The explanation of ownership and borrowing is very well explained in this tutorial. A lot of misunderstandings and misconceptions in Rust have been cleared up by viewing this tutorial. This concept is not very well explained in any other literature or tutorial. I really appreciate this whole series. One of the best tutorials on Rust in my humble opinion. I have viewed others and none are as clear and concise as this one. Thank you once again.
I truly appreciate all of the positive feedback! I don't make any money from these videos, so having others enjoy and learn from them makes me happy that I could help others learn Rust. It makes my day when I get feedback like this :)
One of the best Rust tutorial series I have come across. Thanks for sharing!!
Best tutorials on rust ownership and borrowing i've seen so far....the humor made it easier too 😊
This is an amazing video! Thanks for helping me understand memory management in Rust better. I'm working on my own video series on Rust, that's currently available on my channel, but I haven't covered borrowing and memory management yet. Keep up the great work, Doug!
Very good coverage of seemingly difficult concepts. Your efforts are experienced through easy to understand samples. I suggest the topic of covering the standard library as much as you can. Thanks.
Thanks :) I appreciate the feedback. I'm currently polishing up a mini-series on doing 3D Graphics in the browser with Rust, and it should be out in the next few days. I needed to tackle something fun, but I'll be able to get back to the bread-and-butter topics (including the standard library) by next week. There's so many topics I want to cover, and only so much time. It's motivating to get messages like yours, though.
I don't often comment on videos, but I've watched about a dozen today on the concept of ownership/borrowing/references in Rust and yours was *by far* (and I really mean *by far*) the clearest and most effective lesson I've seen on the topic. Kudos and thanks. Seriously.
A true hidden gem on youtube
Hey, thanks!
26:10 putting var_a.push('a'); after var_b and var_c.... awesome explanation!! thank you!!
This has to be the best explanation of ownership that I've ever seen ... it now is all suddenly making a lot of sense!
Hey, great! Yeah, tricky topic. Took me some time to wrap my head around it, too. I think it takes everyone a bit of time. Glad it's starting to click for ya :)
@@dougmilford7814 Your approach by handling the heap and stack separately is what helped me get a better grip on this tricky subject.
Awesome tutorial as always! Love how your commentary has a perfect mix of technical with a hint of goofy. Always makes them fun to watch. You briefly touched on functional programming, seeing some functional programming related tutorials in Rust would be fantastic :)
This is the second request I've had regarding functional programming I had in a week. I'll go ahead and move it up the list. Thanks for watching!
Went on the journey to create a game entirely with Rust! Ran into your video and it totally helped me understand this!
Hey, great! I'm glad the video helped :)
Subscribed after watching just one video!! Content is of quality! Thanks a lot for your efforts! Please continue creating more content as time and circumstances permit.
Thank you very much ! The quality of all your Rust tutorials is amazing.
thank u ser, this is the best video on rust ownership and borrowing on the entire youtube
wow! After watchin this video, the stuff with ownership and borrowing seems pretty straightforward. Thanks!
Love the enthusiasm you bring to these videos! It's really reassuring to hear you explain things as a newcomer might experience it:
"What the ding-dong is that??" -- me, in the future (probably)
The best video I have ever seen about this topic! Thank you.
Hey, thanks!... you're very welcome :)
Your videos are very well explained. I'm just a beginner hobbyist programmer trying to learn the Rust language, and your videos surely are a great help. My only experience with programming is a little of GDScript, the scripting language used in Godot game engine. I'm studying Rust for about only two weeks, reading the The Rust Language Book from the official website and watching some videos about the language, and I think I'm starting to understand how borrowing and ownership works, but I'll have to practice it a lot to make it natural to me. When I think I'm ready I'll try to make a game in Rust.
Thanks for your work teaching this amazing language.
Thanks very much it really helped me understand the craziness behind the hood of borrowing and ownership!
Wow rust's memory management is kind of revolutionary. It feels almost unbelievable that we came this far in programming languages and took us this long to figure out the fact that it is indeed possible to define rules of a language that doesn't permit most memory issues in the first place without a runtime garbage collection. Kind of makes the subject of garbage collector moot doesn't it?
C++ does a good job despite being backward compatible with C. The only issue is C++'s solutions are library features mostly and can't come close to the rust's features that have much deeper ties with the language and the compiler
Yeah, Rust really re-thought the rules and came up with something groundbreaking. That took real courage.
Very helpful. Thanks for taking time to create such videos. I liked the way you represented the concept.
Hey, thanks for the compliment! I appreciate it :)
Gosh! Can i give 2 thumbs up?? Amazing video on Rust!!!! TQ very much Doug
I live for comments like these! I really appreciate it :)
These tutorials are like a GEM. Thank you very much
Best explanation I’ve heard. Can’t say I care much for the web assembly gymnastics at the moment, but I really hope to hear your take on threading, async io and other features that make a language “complete”.
Best explanation of ownership and borrowing I've seen, thanks ! I'm sure this will help when "negotiating" with borrow checker next time :-).
Hey, thanks! I'm glad it was helpful :)
Excellent explanation, it finally made it click for me! Thank you very much!
Really great tutorial, way more clear than anything else I've come across
Thanks! This clears thing up a lot.
This was such a helpful video. I feel like I actually understand ownership and borrowing in Rust now. Thanks Doug!
Thank you so much for your Rust tutorials. They have been extremely valuable and definitely the best I've found.
Very clearly explained this topic. Since past 1 month I'm learning rust, your videos shows how much i missed. Please add more in-depth videos and mini-projects with those concepts. Thanks ;)
I saw this message that you wrote. I know it's a little late, but I've published a few more videos. I'm currently considering doing a video on "Macros". Let me know if you'd be interested in that.
You mention in the video that functional programming is the way to go. I've been trying to find information about it with moderate amounts of luck, could you possibly make an introductory video explainign some of the concepts with simple examples as you do with the topic of ownership in this video? :)
Great tutorial Doug, can't wait for the parallel programming guide!
Ownership... what the ding dong is that?!
But for real, great presentation. This was really clearly explained. Glad I found this channel
This channel is underrated!
I finally understand ownership and borrowing, thank you!
My organisation doesnt have this video, Thanks Rust Angel
This is the type of thing that old-type C++ programmers used to do. Everyone was expected to know it, even high-level Application developers creating User Interfaces. The exception were the BASIC programmers, which is why VB became so popular
Great job! You explain everything so clearly and in a really engaging manner. Thank you!
Glad you enjoyed it!
This guy speaks directly into my brain. It's like learning in the Matrix.
I know kung fu
what a hidden gem. thank you so much for an amazing tutorial
really amazing ! kind of myth busting on Rust ! Thanks Doug !
Perfect clarity of concept. Thank you.
THIS. IS. THE. BEST. TUTORIAL. EVER.
THANKS! STEVE! :)
This is amazing content. But 30:41 why Rust will think so ? Struct can have thousand fields ..! Compiler will check the struct too right?? Can anybody explain?
I got to know that it’s nothing to do with thousands of fields. By default struct doesn’t implement copy and that’s it. You should either implement COPY or reference.
Jupp. The best video on this. Thanks Doug!
Thank you very much! This makes ownership and borrowing quite clear.
Thanks Doug , a very good video to explain rust key function!
Fantastic video Doug and your style is quite funny.
"Nobody makes the first jump" love it
37:22 "Rust deals with stack variables different than heap" But that's contradicting what you said at 30:05: "Because DougsStruct is composed entirely of stack variables...". It's probably more accurate to say that Rust deals with stack PRIMITIVES differently than heap primitives (are Strings primitives?) and non-primitives? I think I follow though, and it's a very helpful video!
One question I have: what would it look like for an instance member function to return a mutable reference to one of its instance members?
Best Rust tutorial on ownership! Watch it twice if you have to!
Thanks! Very clear explanation, and fun lecturing! I enjoy it very much~
Everything you can name is allocated itself on the stack …. That parts of that object is stored in the heap or if it acts as proxy to something that is in the heap does not change that fact.
Understanding this has helped my team members grasp this whole complexity better.
what the... you are explaining so well the ownership that it becomes easy as 2 + 2
This is a very clear explanation. Great job!
Ah, thank!
Love your rustlang videos! 8:41 you said String can't be allocated on stack, I think you can allocate &str on stack. I know they aren't the same thing.
Another very good tutorial. I was struggling to under this concept. Very well explained.
This video is my favorite as it really dives into the heart of Rust and it's idiosyncrasies. I'm so glad you and others have found it to be useful.
Great video sir - informative and enjoyable. Thanks
This is great, and needs more views!
so good! cant wait to watch more of your Rust content!
The best video rust tutorial we never had! If you do a course on udemy or others I'll definitely take it.
I'm happy you like them :)
Respect!!! And thank you for the best explanation on the subject
Fantastic explanation of a difficult topic in Rust. Thanks!
Yeah very good rust explanation. I saw that you implement a webgl based project in the end. I guess you could start a series on webgl for beginners as well.
Wouldn't it be useful to have something in between mutability and immutability; a container that cannot change size but whose values can be replaced?
great tutorial. concise and to the point. many thanks
These videos seriously deserve more views
I've noticed a distinct pickup in the last couple of months, so that's good. Maybe UA-cam's algorithms finally picked em up.
That was extremely helpful Doug, thanks!
Amazing video... very clear and concise. and loved the way you teach.
Thanks for making this entertaining and informative to watch!
Sure thing :)