"Rust is a great language; it doesn't have a garbage collector..." As a C# programmer, it freaked me out and I was like "how's that a great thing?!". Couple of months into learning Rust with this channel and I now totally get why that's a huge plus :)
@@idan5323 Because 1) a proper relase mechanism does not only handle one specific ressource (memory) but can be applied to all 2) Determinism, You can say exactly when your ressources will be released. This make real time applications possible and even for normal apps it often reduces the memory footprint and avoids gc stutters.
@@vorrnth8734 Yea sure, but it does not mean that it is good for everything because it means more responsibility on the programmer.. How is that different from c++ where you can have serious disasters regarding to unreleased memory?
@@idan5323 First, in modern c++ it is quize difficult to produce such errors. The problem here ich c with classes legacy code. C++ and Rust solve the management problem with a concept called RAII. It basically means that your ressource is automatacilly releases wegen it goes out of scope. That enables deterministic behaviour.
@@vorrnth8734 well, it is still depends on correct implementation (means the developer can screw up) and is good only for situations where performence is critical or resources are limited. For all the other use cases, I just can't see how it is better than a modern GC
I think what’s so magical about these videos is how you create this community and culture of such a beautiful language and create pride in it. Something that it feels to be lacking right now due to the nature not many people use it. These videos greatly inspire me to continue with rust and improve and I love that so much. I can’t express the value in this channel. Thank you
Not sure where you're coming from, since Rust has been considered the most loved programming language, according to Stack Overflow, over the last years. If you're talking about overall adoption, of course it's not extremely popular, it's a new language, its ecosystem is still evolving. Same thing with Golang, everyone seems to love it, but it's still not widespread. Give it time, and these will come close, and probably overcome other popular languages!
Your English is very clear to non-native speakers. Thanks for this. Nowadays, I'm trying to learn the Rust language. I tried in the past. But, I really want to be focused on it. The main problem is that I'm a dotNET-based full-stack developer. I hope I can handle it easily :)
I'd love to see an updated version of this video! Since this video was made, many frameworks and tools have increased in maturity (such as bevy, egui, and tauri, or web frameworks like Rocket and Axum), and even more are being explored, like Linux kernel driver development. It's been amazing to watch the ecosystem grow so quickly!
To me, the unsung hero of Rust, is the community. You have no idea how invaluable it is to do systems programming in a supprotive community as compared to your typical C/C++ community. It's a tough language but I'm learning faster than I have for most other languages Ive learned
As a general advice, if time to product is top priority, go with higher level languages. You can always add Rust later in parts where performance is critical.
Yup. While Rust personally hits pretty much everything I want from a programming language, time to MVP is the single biggest drawback to Rust. Time to completion on the other hand is pretty good since it can catch many errors at compile time that other languages won't notice until runtime and only if a particular code path gets taken, so less time is spent on debugging.
It's not like Rust is going to slow you down. Most of the time is spent by the developer thinking, so having to type a few more words ultimately doesn't matter. Yeah, fighting the borrow checker seems to take forever when newly starting, but it will go away.
@@xavhow It is important to look at what tools the language has as well. That's the main reason why you might change your language, not only because of some dogmatic "this language is better for this".
I know this was six months ago, but I was under the impression that Linux developers were using Rust to extend the OS itself. I would assume that the kernel logically supports it, then.
@@hermannpaschulke1583 I confess, I'm out of my depth here, I know what the kernel is, but that's about it. Have never written any kernel code, and I'm only slightly aware of Linux pipes and task scheduling, that's about it! ^^'
@@carlosmspk the naming is confusing, but Linux (also called "GNU/Linux" by FSF supporters) is made up of the Linux kernel (called just "Linux" by FSF supporters) and other userland software that is essential to what people call the "feel" of GNU/Linux. (In this comment, I'm using "GNU/Linux" for the whole OS and "Linux" for the kernel.) For instance, GNU Bash is not part of Linux (the kernel). Other software found in a desktop GNU/Linux distro typically include a desktop environment such as KDE or GNOME, a package manager, a Web browser, and so on. Linux (the kernel) interfaces with userland programs using syscalls, which are effectively programming-language independent. The x86 assembly is the one that performs the syscalls. However, the most common interface to Linux from userland is the C library installed on your system, which, on systems running Linux (the kernel), is most commonly the GNU C library (glibc). This ensures that programs are portable between different OSes, because now the same (or similar) C code can dynamically link with the C library. This is what Rust usually does: it compiles down and then links with your system's C library at runtime. Hopefully this wasn't too confusing? Edit: I realized I missed a part of the explanation, namely how Rust support works on Linux. This is months after the fact, but I figured I should include it for anyone reading. Linux doesn't have a standard C library (that'd be far too bloated), so it provides an extremely minimal set (or versions) of routines from it such as printk (a kernel-mode printf). It also has various helper routines for interfacing with hardware and userland and all the good stuff that a kernel does. Rust support in Linux basically consists of wrapping these unsafe C routines inside of Rust's safety mechanisms and making them easily importable out of the box.
So, I'm learning Rust with limited prior experience in C#. About 2:30 seconds into the video you mention you're from Ukraine and it brought me back to reality for a moment. I hope you and your loved ones are well. Thank you for making this content for everyone!
I wanted to give a special mention to Veloren, it's a 3D open source game written in Rust, it's still in a really early stage, alpha or even pre-alpha, so they are refining game mechanics before story and quests, haha, but it is going really good. People interested in Game Dev should check it out! They even have a wiki for people who want to contribute, makes reading the source so much easier.
Passed two years learning C++ by myself and it's personally my favorite lenguage besides its downfalls, i started to get interested in rust and personally i have and overall good impresion of it, in his memory safety features but homnstly i liked it's community. I never found so much dedication and love over a technology since godot (which is a game engine, but its the best i can found a comparison for), specially in programming lenguages where always feels like theres sort of a love/hate relation with devs and the lenguage they most use
I have been a java programmer for thirteen years, and then I learned Rust. I can tell you that Rust is definitely not harder to deal with than java. It's just different. The one thing I miss is overriding and the one thing I like a lot is very good generics. Java could not support generics to this level because of backward compatibility.
You may change your opinion on how easy Rust is once you have to deal with ownership and references in real applications ;-) Even the language itself is much more complex than Java, which is pretty basic. Generics are not really comparable, since they are not dynamic in Rust. So the compiler knows what they are and generates the code accordingly, whereas Java unboxes because of the problem you mentioned, and shares the same code. Each has its pros and cons.
@@phenanrithe "Generics are not really comparable, since they are not dynamic in Rust." Just want to say that both kinds of dispatch are supported for traits; static and dynamic. The static ones are monomorphized, while the dynamic ones are type erased (which can be helpful depending on what you're doing).
@@megumin4625 What I meant is that Java suffers from the type erasure problem, and thus cannot guarantee run-time safety (that's what the OP was referring to). Rust monomorphizes the generics indeed, so that can't happen. It's only static, the traits are something else and I wouldn't call that "type erasure" but dynamic binding through vtables. There is no notion of type there, it's only methods. Unless I misunderstood what you meant.
@@phenanrithe Don't know too much about Java honestly and its problems honestly. :D But yeah, Java for sure has a lot of serious problems. Yeah, generics are always static. I'm not really commenting anything about Java since that's not my area; I was just trying to make sure any reader of the comments is also aware that in addition to generics (which are statically dispatched), dynamic dispatch (trait objects) also exist (of course, obviously there's no problems with it).
I have built a Genetic Algorithm with rust...and before with vb.net and c#. What I can said, the algo run very fast with rust. The lang is very efficient in my opinion.
Would love to contribute to that project - just having less and less time after work, and barely have any time left to contribute to anything unfortunately :(
I think im gonna learn it, cause as you said other frameworks might make things easy as they offer a layer of abstraction but low level access also really gives u the advantage to creating something from scratch
What a great in depth video explaining perfectly what Rust should be used for. I was thinking of rewriting the frontend of my hobby project from my own JavaScript framework (yes, I'm one of those people) to a Rust WASM frontend. Definitely sticking to my current stack for that and will use Rust with WASM for the complex computational work only.
Rust has certainly moved up on my list of languages to learn, after JavaScript and Ruby, especially with the news that it'll soon be part of the Linux Kernel.
Яке приємне здивування в мне було, коли я просто дивився цікавий контент по мові, яку почав вивчати, а потім випадково дізнався, що автор - українець 😅🥰 Дякую за якісну й складну роботу, що ти робиш! ❤
It's a real shame that there are still people who have the mindset that some apps, such as "the world's fastest todo list app", are beneath Rust, or are somehow not a good fit for Rust. First, that thinking sends people to other languages like Typescript where they get proficient, comfortable, and maybe never come back to Rust when they should. Second, building ANYTHING in Rust is smart because it gets people feeling good about it and makes their next Rust project less of a mountain to climb. Third, not everyone lives in urban areas with high speed data plans. It certainly doesn't hurt to have a todo app that is efficient.
Great content! Clear, simple and balanced. Thanks, Bogdan. I'm just starting to learn Rust coming from high level and purely functional background (Elm 💗). Despite it's imperative and somewhat low-level nature I'm really excited. I see some similarities too: rich, algebraic type system and friendly compiler that has my back. Lovely. I'm looking forward to take advantage of Rust's concurrency, efficient memory management (no more GC pauses 😬) and portability. I must admit that it took me some time to see the light, but now I'm certain that Rust is a great language. Friendly community is a big part of it's appeal. You rock and I hope you will keep making these videos.
This video is great I was here to learn a bit more about how to think of rust and one of my major questions was answered in the first 3 minutes. Thank you so much.
This is the reason why I'm really confused about "learning" rust. It wasn't clear to me that what can be done with it. Thanks for simplifying this issue
When you said that the game and GUI ecosystems were not mature, I was like WHAAAT!? But then I realized that this video came out 2 years ago. Now we can build games with Bevy, and build GUI apps with GTK-rs or Iced.
I personally prefer videos that have diagrams for explanation, cuz it helps me get to the point faster. But yours is awesome, not to fast talking, clearly, ... Love it, keep it up bro 💪
This is what prevents me from going all in as a web developer. Building a web app with Rust just sounds like doing the same thing with added bumps and scrapes along the way.
One problem I’ve run into is building GUIs with rust. The libraries are still being made and not mature yet, though I don’t really think rust is meant for front end lol
Same problem here. If C++ is meant for front end then so should Rust be. I really like Rust but the lack of GUI libraries like JUCE, WxWidgets, etc means I will prefer C++. It seems the creators of languages like D and Rust just aren't interested in making sure GUI libraries are there. I think that hurts the uptake on those languages. At least when talking about desktop apps.
I really like your content and the way you explain going through each term, though I have just exposure to writing hello world in rust I m loving it. Keep rocking!!
Ooo, making an interpreter for LOLCode is on my project list. I was thinking of doing it in Python (interpreter inception?!) , but now I'm thinking Rust would be the better choice
@@jawad9757 I'm reading through the Rust Language book from their site. Any recommended resources for interpreter guides / design patterns? I'm asking cause your comment says it's relatively easy, but I wouldn't even know where to begin with making one! 😂
Your facial expressions and head movement are expressive enough that you could chill out with the repetitive TED talk hand movements. I can't ignore the hand wavings!
Love this video; love this channel. As for your Rust advice, I'm not a fan of the "learn an easy language to do easy things" thinking. As the Rust ecosystem matures, and frameworks make Rust more viable for web assembly apps, it would be better for us to know one language really well, than to be somewhat proficient in an easier language and less than proficient at Rust. I went to college in the era where they taught us C as our first language. Rust isn't impossible. Like any skill, it just need repetition, and syphoning off reps to "easier languages" is counterproductive in many cases. At any rate, keep up the great work.
I think I disagree here a bit. The issue is that most people never actually get far enough into learning to program to become proficient so if you start out on a harder language the odds of you quitting are much higher. If you start with something easy then at least you can understand programming concepts and troubleshooting, which transfers over to any language.
@@ragreenburg Yes we disagree. It is not correct that programming concepts used in an "easy" language transfer to "any language", including to Rust. Many concepts in OOP languages like Python, Swift, JavaScript, Java, C#, etc. are not supported in Rust. And of course, Rust does things differently that "easy" languages. Given that it is totally possible for an absolute beginner to learn programming concepts using the Rust languages itself, It is just doesn't make sense to require beginners to learn other languages, then throw it away all that learning to be Rust programmers. For example, Rust does not support class inheritance, so it is stupid to force people to learn a language that does first (like Python, Java, Swift, Javascript, etc.), only to unlearn it when you move to Rust. And it is stupid to have people to learn an untyped language (like Python or Javascript) because it is easy, then have them forget all that to learn how it is done in Rust. Swift is a great "beginner's language" but Swift broadly categorizes types into "value" and "reference" types, hiding most of the implementation details of references from the programmer. Rust makes references a first-class type and opens the entire type system up for the programmer, for better or worse. That is a lot for a Swift programmer to unlearn so that they can do it the Rust way. One of the very reasons some people think of Rust as a hard language is because it requires experienced programmers to UNLEARN how they did things in other languages. Had they learned Rust to begin with, those concepts would have been easier for them. If a person wants to become a Rust programmer, it is completely possible to teach absolute beginners to Rust using only the Rust language. My first language was C, and many universities teach Java as a first language. Rust can't be worse than C and Java as a first language! Again, if you are sure you want to spend your career in Rust, then it really is better (and totally doable) to teach absolute beginners to program using Rust itself.
@@zurvey I agree with a lot of the things you are saying. And by concepts I'm talking fundamentals like loops, functions, statements, libraries, etc. I just think this is like someone trying to start running and having them train for a marathon first thing. More than likely they will quit before realizing how fun it can be. There's also decades of scientific studies showing that. So while the person who starts on Rust will probably be a better Rust programmer, they are less likely to actually become a Rust programmer because they are much more likely to quit.
All i care about is Computer Graphics programming and Rendering and Artificial Intelligence and Machine Learning. If i cant do any of that in Rust then ill just stick to Python and C++.
How to compare Rust with Go in terms of its speed? Golang was created to bring modern constructs to OOP and gained ground on its ability to be faster. When does it make sense to use Rust over GoLang?
Rust is as fast as c/c++, which also don't have GC. Go is quite a bit slower, likely because of the GC. Of course, Go is very fast among GC languages however, so that tradeoff might be worth it for many others, especially with development speed. But make no mistake, the GC pauses and everything can become a real hindrance in production code - Discord moved their backend services to Rust instead of Go because of this very reason - the Go GC just crippled the services with spikes in usage (discord made a blog post about it if you want to go look it up). I'd say, it makes sense to use Rust over GoLang, if: - You don't want a GC - You're hitting walls with the GC in Go - Your program needs to be faster than you can achieve in Go. - You want the fastest program possible. If you're developing personal programs, it's more likely to come down to a matter of preference unless you're really getting into programming a project and come into a particular performance sensitive portion
A lovely presentation from a shiny rust lover. You have indoctrinated me in your love for rust by putting your hand on your heart. Wish the war ends soon, and our collective pain over it is replaced by the joy of reconciliation and renewed triumph of humanity.
I also made a unit converter in Rust to try and learn (I had done it in C++ before), but I didn't get as creative as you, burst in laughter from the joke.
You're wrong on Web Assembly, it's not just about speed. it allows you to share classes with server side code, for example. Just using 1 language in the front and back end.
at 3:35 you talk about web assembly web app target: but what about leptos and many others are around? i think a vantage is same code in backend and frontend for example, isn't it?
How good is Rust for game development? Do you think Unity like game engines can be developed in near future? As in does it have the game engines or the tools for game development? I have only explored the fundamentals with rust but not yet got it into the game dev or web dev with Rust.
Yes, but for "Unity like", not any time soon! We are a long ways away from that. But you can create games with Rust for sure. A lot of the tools have been developed. We are now at the phase where game engines are getting build. Just search for "are we game yet" and you will find a page with info about this. Also check out "Rust Bevy", still WIP, but getting better every update. (Also look up "Tantan" on TY, he makes videos about rust game dev)
rust has the capability to do that, for sure, but nobody has made such a unity-like game engine yet, so you'll be coding without a GUI editor. that is actually preferable in some ways, but it certainly isn't as easy to get into, so just weigh up what you want: if you want to make a game quickly, use unity, but if you're not afraid to learn some lower level stuff and like rust, then it's a fine choice
Hi, I have a sincere request if you could prepare a short video on the use of Rust for blockchain development (e.g. incl. smart contracts written in Rust). Many thanks!
📝 Get your *FREE Rust cheat sheet* : www.letsgetrusty.com/cheatsheet
"as you can see, for $20 you can get 12 loaves of bread, 2 cows, and a small child"
lmao
@@briansepolen4917 I'm not a fan of bread either
@@briansepolen4917 adoption
@@briansepolen4917 why trafficking? this is labour prices hahahahha
This is absoluely ridiculous. There's no way we can get 2 cows in $20
EuroTrip vibes
"Rust is a great language; it doesn't have a garbage collector..." As a C# programmer, it freaked me out and I was like "how's that a great thing?!". Couple of months into learning Rust with this channel and I now totally get why that's a huge plus :)
And why is that?
@@idan5323 Because 1) a proper relase mechanism does not only handle one specific ressource (memory) but can be applied to all 2) Determinism, You can say exactly when your ressources will be released. This make real time applications possible and even for normal apps it often reduces the memory footprint and avoids gc stutters.
@@vorrnth8734 Yea sure, but it does not mean that it is good for everything because it means more responsibility on the programmer.. How is that different from c++ where you can have serious disasters regarding to unreleased memory?
@@idan5323 First, in modern c++ it is quize difficult to produce such errors. The problem here ich c with classes legacy code. C++ and Rust solve the management problem with a concept called RAII. It basically means that your ressource is automatacilly releases wegen it goes out of scope. That enables deterministic behaviour.
@@vorrnth8734 well, it is still depends on correct implementation (means the developer can screw up) and is good only for situations where performence is critical or resources are limited.
For all the other use cases, I just can't see how it is better than a modern GC
I think what’s so magical about these videos is how you create this community and culture of such a beautiful language and create pride in it. Something that it feels to be lacking right now due to the nature not many people use it. These videos greatly inspire me to continue with rust and improve and I love that so much. I can’t express the value in this channel. Thank you
Thank you for the kind words Nathaniel!
Not sure where you're coming from, since Rust has been considered the most loved programming language, according to Stack Overflow, over the last years. If you're talking about overall adoption, of course it's not extremely popular, it's a new language, its ecosystem is still evolving. Same thing with Golang, everyone seems to love it, but it's still not widespread.
Give it time, and these will come close, and probably overcome other popular languages!
Your English is very clear to non-native speakers. Thanks for this. Nowadays, I'm trying to learn the Rust language. I tried in the past. But, I really want to be focused on it. The main problem is that I'm a dotNET-based full-stack developer. I hope I can handle it easily :)
harbi bu aralar temiz konusan birisi bulmak cok zor
Very clear to native speakers too
@@bera2856 Ah! Turkish. Another language I'm starting to learn.
Coming from a world with GC, learning Rust is really mind shifting. Hope to learn more from your channel. Keep up good work.
I'd love to see an updated version of this video! Since this video was made, many frameworks and tools have increased in maturity (such as bevy, egui, and tauri, or web frameworks like Rocket and Axum), and even more are being explored, like Linux kernel driver development. It's been amazing to watch the ecosystem grow so quickly!
Polkadot's Substrate framework is also written in rust😊
To me, the unsung hero of Rust, is the community. You have no idea how invaluable it is to do systems programming in a supprotive community as compared to your typical C/C++ community. It's a tough language but I'm learning faster than I have for most other languages Ive learned
As a general advice, if time to product is top priority, go with higher level languages. You can always add Rust later in parts where performance is critical.
Yup. While Rust personally hits pretty much everything I want from a programming language, time to MVP is the single biggest drawback to Rust. Time to completion on the other hand is pretty good since it can catch many errors at compile time that other languages won't notice until runtime and only if a particular code path gets taken, so less time is spent on debugging.
It's not like Rust is going to slow you down. Most of the time is spent by the developer thinking, so having to type a few more words ultimately doesn't matter. Yeah, fighting the borrow checker seems to take forever when newly starting, but it will go away.
@@shambhav9534 Indeed, but pick right tool for the job. We don't have to use Rust for everything, as any other languages.
@@xavhow It is important to look at what tools the language has as well. That's the main reason why you might change your language, not only because of some dogmatic "this language is better for this".
I'm really looking forward to Rust support in the Linux Kernel. The code examples I've seen look really straight forward.
I know this was six months ago, but I was under the impression that Linux developers were using Rust to extend the OS itself. I would assume that the kernel logically supports it, then.
@@carlosmspk What I meant is the ongoing effort by Miguel Ojeda to add add the ability to write kernel modules in Rust into the mainline kernel.
@@hermannpaschulke1583 I confess, I'm out of my depth here, I know what the kernel is, but that's about it. Have never written any kernel code, and I'm only slightly aware of Linux pipes and task scheduling, that's about it! ^^'
@@carlosmspk the naming is confusing, but Linux (also called "GNU/Linux" by FSF supporters) is made up of the Linux kernel (called just "Linux" by FSF supporters) and other userland software that is essential to what people call the "feel" of GNU/Linux. (In this comment, I'm using "GNU/Linux" for the whole OS and "Linux" for the kernel.) For instance, GNU Bash is not part of Linux (the kernel). Other software found in a desktop GNU/Linux distro typically include a desktop environment such as KDE or GNOME, a package manager, a Web browser, and so on.
Linux (the kernel) interfaces with userland programs using syscalls, which are effectively programming-language independent. The x86 assembly is the one that performs the syscalls. However, the most common interface to Linux from userland is the C library installed on your system, which, on systems running Linux (the kernel), is most commonly the GNU C library (glibc). This ensures that programs are portable between different OSes, because now the same (or similar) C code can dynamically link with the C library. This is what Rust usually does: it compiles down and then links with your system's C library at runtime.
Hopefully this wasn't too confusing?
Edit: I realized I missed a part of the explanation, namely how Rust support works on Linux. This is months after the fact, but I figured I should include it for anyone reading.
Linux doesn't have a standard C library (that'd be far too bloated), so it provides an extremely minimal set (or versions) of routines from it such as printk (a kernel-mode printf). It also has various helper routines for interfacing with hardware and userland and all the good stuff that a kernel does. Rust support in Linux basically consists of wrapping these unsafe C routines inside of Rust's safety mechanisms and making them easily importable out of the box.
@@NateROCKS112 I'm not the person you replied to but just wanted to say your explanation makes a lot of sense, so thank you for that!
So, I'm learning Rust with limited prior experience in C#. About 2:30 seconds into the video you mention you're from Ukraine and it brought me back to reality for a moment. I hope you and your loved ones are well. Thank you for making this content for everyone!
I wanted to give a special mention to Veloren, it's a 3D open source game written in Rust, it's still in a really early stage, alpha or even pre-alpha, so they are refining game mechanics before story and quests, haha, but it is going really good. People interested in Game Dev should check it out! They even have a wiki for people who want to contribute, makes reading the source so much easier.
Passed two years learning C++ by myself and it's personally my favorite lenguage besides its downfalls, i started to get interested in rust and personally i have and overall good impresion of it, in his memory safety features but homnstly i liked it's community.
I never found so much dedication and love over a technology since godot (which is a game engine, but its the best i can found a comparison for), specially in programming lenguages where always feels like theres sort of a love/hate relation with devs and the lenguage they most use
"We will push through the pain together" This phrase has just changed my life... :)
I have been a java programmer for thirteen years, and then I learned Rust. I can tell you that Rust is definitely not harder to deal with than java. It's just different. The one thing I miss is overriding and the one thing I like a lot is very good generics. Java could not support generics to this level because of backward compatibility.
You may change your opinion on how easy Rust is once you have to deal with ownership and references in real applications ;-) Even the language itself is much more complex than Java, which is pretty basic. Generics are not really comparable, since they are not dynamic in Rust. So the compiler knows what they are and generates the code accordingly, whereas Java unboxes because of the problem you mentioned, and shares the same code. Each has its pros and cons.
@@phenanrithe "Generics are not really comparable, since they are not dynamic in Rust."
Just want to say that both kinds of dispatch are supported for traits; static and dynamic. The static ones are monomorphized, while the dynamic ones are type erased (which can be helpful depending on what you're doing).
@@megumin4625 What I meant is that Java suffers from the type erasure problem, and thus cannot guarantee run-time safety (that's what the OP was referring to). Rust monomorphizes the generics indeed, so that can't happen. It's only static, the traits are something else and I wouldn't call that "type erasure" but dynamic binding through vtables. There is no notion of type there, it's only methods. Unless I misunderstood what you meant.
@@phenanrithe Don't know too much about Java honestly and its problems honestly. :D But yeah, Java for sure has a lot of serious problems. Yeah, generics are always static. I'm not really commenting anything about Java since that's not my area; I was just trying to make sure any reader of the comments is also aware that in addition to generics (which are statically dispatched), dynamic dispatch (trait objects) also exist (of course, obviously there's no problems with it).
I hope the use of Rust matures in evolutionary algorithms, machine learning and NLP
I have built a Genetic Algorithm with rust...and before with vb.net and c#. What I can said, the algo run very fast with rust. The lang is very efficient in my opinion.
I implemented the NEAT Evo Algorithm in Rust. Was a lot of fun!
I have followed a guide to make a basic neural network, and it was a good experience even if I don't know a lot about neural networks
Autograd presents a really nice API for machine learning in Rust although unfortunately it uses the CPU for everything.
Would love to contribute to that project - just having less and less time after work, and barely have any time left to contribute to anything unfortunately :(
I think im gonna learn it, cause as you said other frameworks might make things easy as they offer a layer of abstraction but low level access also really gives u the advantage to creating something from scratch
I'm in clg should I learn it
What a great in depth video explaining perfectly what Rust should be used for. I was thinking of rewriting the frontend of my hobby project from my own JavaScript framework (yes, I'm one of those people) to a Rust WASM frontend. Definitely sticking to my current stack for that and will use Rust with WASM for the complex computational work only.
Rust has certainly moved up on my list of languages to learn, after JavaScript and Ruby, especially with the news that it'll soon be part of the Linux Kernel.
It has been in the linux kernel
@@ignacewinfield1439 yes, but not for general use.
"We'll push through the pain together." - I like that attitude. 👍
2:30 lmaooo that caught me off guard xD
Яке приємне здивування в мне було, коли я просто дивився цікавий контент по мові, яку почав вивчати, а потім випадково дізнався, що автор - українець 😅🥰
Дякую за якісну й складну роботу, що ти робиш! ❤
It's a real shame that there are still people who have the mindset that some apps, such as "the world's fastest todo list app", are beneath Rust, or are somehow not a good fit for Rust.
First, that thinking sends people to other languages like Typescript where they get proficient, comfortable, and maybe never come back to Rust when they should.
Second, building ANYTHING in Rust is smart because it gets people feeling good about it and makes their next Rust project less of a mountain to climb.
Third, not everyone lives in urban areas with high speed data plans. It certainly doesn't hurt to have a todo app that is efficient.
Great content! Clear, simple and balanced. Thanks, Bogdan. I'm just starting to learn Rust coming from high level and purely functional background (Elm 💗). Despite it's imperative and somewhat low-level nature I'm really excited. I see some similarities too: rich, algebraic type system and friendly compiler that has my back. Lovely. I'm looking forward to take advantage of Rust's concurrency, efficient memory management (no more GC pauses 😬) and portability. I must admit that it took me some time to see the light, but now I'm certain that Rust is a great language. Friendly community is a big part of it's appeal. You rock and I hope you will keep making these videos.
Not gonna lie, you had me in the first half of the currency converter
Currently working on my own programming language using Rust :)
if its okay can you give some resources to learn to make a simple language
I'm thinking of rewriting my language compiler in Rust as well. Problem is, I don't know if it's gonna be worth it in the end.
@@soft384 I hear crafting interpreters is a pretty good book.
@@Nexus-rt1bm Thanks, I'll check it out.
I want the old background back! >:(
You must embrace change my friend
@@letsgetrusty wise words from a wise man
This video is great I was here to learn a bit more about how to think of rust and one of my major questions was answered in the first 3 minutes. Thank you so much.
This is the reason why I'm really confused about "learning" rust. It wasn't clear to me that what can be done with it. Thanks for simplifying this issue
Богдан молодець)
Ютуб аналітика показала, шо твої відео дивляться частина моїх глядачів.
Успіхів у розвитку каналу.
Good Luck!)
When you said that the game and GUI ecosystems were not mature, I was like WHAAAT!? But then I realized that this video came out 2 years ago. Now we can build games with Bevy, and build GUI apps with GTK-rs or Iced.
I laughed so hard at the currency joke 😂😂 perfect delivery
I personally prefer videos that have diagrams for explanation, cuz it helps me get to the point faster. But yours is awesome, not to fast talking, clearly, ... Love it, keep it up bro 💪
This is what prevents me from going all in as a web developer. Building a web app with Rust just sounds like doing the same thing with added bumps and scrapes along the way.
Дякую, Богдан. Це саме те, що я хотiв почути про Rust!
One problem I’ve run into is building GUIs with rust. The libraries are still being made and not mature yet, though I don’t really think rust is meant for front end lol
Same problem here. If C++ is meant for front end then so should Rust be. I really like Rust but the lack of GUI libraries like JUCE, WxWidgets, etc means I will prefer C++. It seems the creators of languages like D and Rust just aren't interested in making sure GUI libraries are there. I think that hurts the uptake on those languages. At least when talking about desktop apps.
I'm gonna build everything in rust! First step is a UI framework.
What kind of software would you build that doesn't have correctness as a main priority lol
This was dated nearly a year ago, before the terrible developments in Ukraine. I hope you and your loved ones are well, Bogdan.
I love your Currency Calculator. So funny.
I really like your content and the way you explain going through each term, though I have just exposure to writing hello world in rust I m loving it. Keep rocking!!
Great video. I like the "we'll push through the pain together."
Damn! 12 loaves of bread! 2 cows!! And a child!!! Alright. I'm learning Rust.
I'm making simple programs in Rust because I'm super new and Rock Paper Scissors includes a few useful concepts.
This video is just what i needed, I loved the content and I'm very excited to learn Rust. I loved the purpose of the language
Bro, are you safe?
i'd recommend almost everyone tries building at least a basic (tree-walk or bytecode, both are relatively easy) interpreter in rust
Ooo, making an interpreter for LOLCode is on my project list. I was thinking of doing it in Python (interpreter inception?!) , but now I'm thinking Rust would be the better choice
@@jerryq27 it's really easy to parse stuff in rust too
@@jawad9757 I'm reading through the Rust Language book from their site. Any recommended resources for interpreter guides / design patterns? I'm asking cause your comment says it's relatively easy, but I wouldn't even know where to begin with making one! 😂
I'm doing this right now and I like it a lot, but I'm unsure as to how to return multiple types of primitives from my parsing functions.
I loved this video so much!! Haha I died at the currency converter. Please keep making these videos !!
😆😆, why so ?
@@josephxavier8636 he said 20usd gets you cows and one baby in Ukraine 😂😂
@@nathanielwoodbury2692 well that's funny😆
Rust also can write smart contracts for ICP (dfinity)
Thank you for this video. You help me decide if Rust is the right choice for a desktop app I am building. Subscribed.
I paused when I heard a small child 😂
Your facial expressions and head movement are expressive enough that you could chill out with the repetitive TED talk hand movements. I can't ignore the hand wavings!
So Rust would be good for Terminal related applications. Ok.
That's got me interested.
"My home country, Ukraine." wellthen, i hope you're okay.
I mostly code in Python, but I Rust seems very cool
Love this video; love this channel. As for your Rust advice, I'm not a fan of the "learn an easy language to do easy things" thinking. As the Rust ecosystem matures, and frameworks make Rust more viable for web assembly apps, it would be better for us to know one language really well, than to be somewhat proficient in an easier language and less than proficient at Rust. I went to college in the era where they taught us C as our first language. Rust isn't impossible. Like any skill, it just need repetition, and syphoning off reps to "easier languages" is counterproductive in many cases. At any rate, keep up the great work.
I think I disagree here a bit. The issue is that most people never actually get far enough into learning to program to become proficient so if you start out on a harder language the odds of you quitting are much higher. If you start with something easy then at least you can understand programming concepts and troubleshooting, which transfers over to any language.
@@ragreenburg Yes we disagree. It is not correct that programming concepts used in an "easy" language transfer to "any language", including to Rust. Many concepts in OOP languages like Python, Swift, JavaScript, Java, C#, etc. are not supported in Rust. And of course, Rust does things differently that "easy" languages.
Given that it is totally possible for an absolute beginner to learn programming concepts using the Rust languages itself, It is just doesn't make sense to require beginners to learn other languages, then throw it away all that learning to be Rust programmers.
For example, Rust does not support class inheritance, so it is stupid to force people to learn a language that does first (like Python, Java, Swift, Javascript, etc.), only to unlearn it when you move to Rust.
And it is stupid to have people to learn an untyped language (like Python or Javascript) because it is easy, then have them forget all that to learn how it is done in Rust.
Swift is a great "beginner's language" but Swift broadly categorizes types into "value" and "reference" types, hiding most of the implementation details of references from the programmer. Rust makes references a first-class type and opens the entire type system up for the programmer, for better or worse. That is a lot for a Swift programmer to unlearn so that they can do it the Rust way.
One of the very reasons some people think of Rust as a hard language is because it requires experienced programmers to UNLEARN how they did things in other languages. Had they learned Rust to begin with, those concepts would have been easier for them.
If a person wants to become a Rust programmer, it is completely possible to teach absolute beginners to Rust using only the Rust language. My first language was C, and many universities teach Java as a first language. Rust can't be worse than C and Java as a first language!
Again, if you are sure you want to spend your career in Rust, then it really is better (and totally doable) to teach absolute beginners to program using Rust itself.
@@zurvey I agree with a lot of the things you are saying. And by concepts I'm talking fundamentals like loops, functions, statements, libraries, etc. I just think this is like someone trying to start running and having them train for a marathon first thing. More than likely they will quit before realizing how fun it can be. There's also decades of scientific studies showing that. So while the person who starts on Rust will probably be a better Rust programmer, they are less likely to actually become a Rust programmer because they are much more likely to quit.
the game shooting the golang gopher had me cracking up
me too
2:36 'a small child for 20$' WTF 😅
This channel will start growing huge from this day 4th Oct 2022
I have that same Epiphone Acoustic. When I saw that, I knew I'd made the right decision to subscribe.
I already like you "when you say we push through the pain together" , you are funny 😀
I’d like to see a comparison between Rust and Go
How about software development (programs like Photoshop, Premiere Pro)?
"and here you can see, for 20 USD, you can get 12 loaves of bread, 2 cows and a small child" LMAOOOOOOO
All i care about is Computer Graphics programming and Rendering and Artificial Intelligence and Machine Learning. If i cant do any of that in Rust then ill just stick to Python and C++.
I don’t know why, if you someone mention Django outside of Python world, I like it 🤪
I love Django :)
Thanks for the info.
I wrote a git diff report CLI tool that exports to xlsx for my first rust program. Its great
I enjoy using typescript whenever i can then rust for the lower level code, that all what i need
East Europeans are all hardcore programmers, that's why you chose Rust
How to compare Rust with Go in terms of its speed? Golang was created to bring modern constructs to OOP and gained ground on its ability to be faster. When does it make sense to use Rust over GoLang?
Rust is as fast as c/c++, which also don't have GC. Go is quite a bit slower, likely because of the GC. Of course, Go is very fast among GC languages however, so that tradeoff might be worth it for many others, especially with development speed. But make no mistake, the GC pauses and everything can become a real hindrance in production code - Discord moved their backend services to Rust instead of Go because of this very reason - the Go GC just crippled the services with spikes in usage (discord made a blog post about it if you want to go look it up).
I'd say, it makes sense to use Rust over GoLang, if:
- You don't want a GC
- You're hitting walls with the GC in Go
- Your program needs to be faster than you can achieve in Go.
- You want the fastest program possible.
If you're developing personal programs, it's more likely to come down to a matter of preference unless you're really getting into programming a project and come into a particular performance sensitive portion
A lovely presentation from a shiny rust lover. You have indoctrinated me in your love for rust by putting your hand on your heart. Wish the war ends soon, and our collective pain over it is replaced by the joy of reconciliation and renewed triumph of humanity.
You need to rewrite the entire universe in rust, u know it.
I just learn Rust, AFAIK, this is not hard, but strict language, really concern about system resource usage, thanks for sharing friend.
It takes a true psychopath tho make a game where you shoot gophers
5
5
54555 a
agree
Це круто, коротко та по суті
2:20 "and my home country Ukraine"...Oh... oh no
I hope you are safe
I hope you’re safe in the war. 🕊
We will push through the pain together 😂😂❤️❤️
...and ONE child. Bro didn't hesitate at all 😭😭
I also made a unit converter in Rust to try and learn (I had done it in C++ before), but I didn't get as creative as you, burst in laughter from the joke.
The CLI joke was darker than my future 😢
And what about test automation (Selenium e.g.), is it worth creating automated tests framework in Rust?
I wouldn't use a systems programming language for test automation. I would use use a high level language (Python, JS) instead.
Hi, is Rust good to use for shellscripting, or executing system commands?
You're wrong on Web Assembly, it's not just about speed.
it allows you to share classes with server side code, for example. Just using 1 language in the front and back end.
Solana is also written in Rust if I'm not mistaken .
Lol ok 👍🏽 just got to that
Cant wait to see some cool stuff
Excuse me for the weird question, but what chair do you use ? :D
at 3:35 you talk about web assembly web app target: but what about leptos and many others are around? i think a vantage is same code in backend and frontend for example, isn't it?
might try to learn it just bc it’s fans are called rustaceans and i think that’s adorable
Do you think rust can be used in smart contracts, block chain technology, and everything DeFi related? Just curious.
I lost it at "and one small child"
How good is Rust for game development? Do you think Unity like game engines can be developed in near future? As in does it have the game engines or the tools for game development? I have only explored the fundamentals with rust but not yet got it into the game dev or web dev with Rust.
Yes, but for "Unity like", not any time soon! We are a long ways away from that. But you can create games with Rust for sure. A lot of the tools have been developed. We are now at the phase where game engines are getting build. Just search for "are we game yet" and you will find a page with info about this.
Also check out "Rust Bevy", still WIP, but getting better every update. (Also look up "Tantan" on TY, he makes videos about rust game dev)
You could make your own game engine if you're into that. There is good support for opengl and vulkan afaik.
rust has the capability to do that, for sure, but nobody has made such a unity-like game engine yet, so you'll be coding without a GUI editor. that is actually preferable in some ways, but it certainly isn't as easy to get into, so just weigh up what you want: if you want to make a game quickly, use unity, but if you're not afraid to learn some lower level stuff and like rust, then it's a fine choice
Hi, I have a sincere request if you could prepare a short video on the use of Rust for blockchain development (e.g. incl. smart contracts written in Rust). Many thanks!
Well shit, I have really been enjoying your videos. I really hope you are safe/ alright
When he said "my home country ukraine" and the video date was 21'... oof buddy
"What can you build in Rust?!"
A base duh, let's raid some plebs boiiis
Can you create a video for pdf generation with page headers, footers, tables, page numbers, and suggest a best create for pdf generate
love the crab, grab the gun :)