Not sure if you're going to get to it but I wanted to comment as I saw this. Cargo (built into rust) is more useful for building and running. Instead of `rustc user.rs` and `./user` you can just `cargo run` and it runs the main binary of your package.
It would be cool to see how we can create rust bindings to python and use rust functions in our python programs. Really get that "best of both worlds" started!
@@caseykorver5729 I didn't say you couldn't, I'm asking for some tutorial content on _how_ to do this. Thank you for the reference. PyO3 (that's an `O` not a `0`) seems like a nice resource for this :)
More rust content please! I'm rewriting nearly all my python code in Rust. There is a extensive amount of CS concepts that I have to learn along the way. But in the process of being a better rust developer, I'm becoming a better developer overall!
More of this! I loved your python Videos. They helped me so much to build a strong foundation. Since then I have taken a more „rusty“ path and would really love for you to make more videos in that area
I really wished you would have mentioned rust up for installing and managing your rust versions and also cargo. The tooling around rust is a major reason why I and so many others are drawn to the ecosystem! Great to see this though! Keep it up
Arjan, this content is extremely valuable and rare. There are millions of programmers who mainly or only know python (say they came from data/sciences etc.) You’ve taught them python and now you can introduce languages from a “pythonista’s” PoV. Which unlocks a whole new ecosystem for your viewers. Usually these language guides aren’t written for python users so it is double valuable.
Very timely for me. Just switched my learning effort from Python to Rust. Borrowing and lifetimes are doing my head in so any content focused on those gnarly aspects would be much appreciated.
@@mr.bulldops7692 Thanks for the encouragement. I'm in the middle of a project right now and it's gradually clicking, but it's always good to get plenty of perspectives to make sure you're not missing something. I've been swearing at integers today, finding arithmetic between usize and isize unnecessarily annoying :). Got there at 4:59pm, thank goodness.
@@TheStickofWar it would take too long to describe, but lifetimes are not intuitive to me. I use the Rust reddit, I've got The Book (plus the O'Reilly one) and I'm getting there. But there's definitely a steeper learning curve for this than Python (or Elixir, the language I've made a living from most recently).
@@robbybobbyhobbies I think one key thing that is important when developing in Rust is having a clear data model. I found that I never really had to think about that in Python while moving over to Rust required that I always think about ownership when planning how I approach a problem. It becomes more intuitive with time.
please make a series on how to do things in Rust for Python programmers, covering things like logging, error handling, async await, context managers etc... there are a lot of youtubers that are specialized in Rust, but very a few specifically target Python programmers who are interested in rust, and there are many, and since your channel kinda does, it will be a perfect opportunity to capture new audience and\or bring back people who already "mastered" Python
logging is not native to rust, you have to get dependencies via cargo preferably, the "log" crate is very common as an abstraction facade however it doesnt provide any logging, you have to get a logging framework for that, which there are many links in the log crate's docs to find error handling is a complicated subject, but do know you dont have to always match everytime there is plenty methods on Result and Option types and there is a ? operator async is very difficult in rust and most use the tokio crate to help context managers doesnt exist as thet are redundant due to the ownership system, a "context manager" would just implement the Drop trait, if it absolutely needs to
With PyO3 and Maturin, you can seamlessly expose your rust code as python modules. Very useful when you have an existing python codebase, so you can rewrite the slow modules without modifying how they are used.
@@ytfeelslikenorthkoreamake sure you have proper benchmarks in place. Rust is faster, but the foreign function interface (FFI) isn't free. Depending on your problem and data size, you might spend more time converting back and forth from Rust to Python that you're better off with pure Python. As with everything related to performance, always measure.
@@mNikke C++ is much better for this. It's a more flexible language and the safety stuff typically won't buy you anything because the kinds of code you'll be writing will be by its nature restricted in scope. It's also much easier to write for performance, which is typically why you'd want to do this in the first place (think gpu, simd, etc), and the ecosystem is much, much richer.
@@etc1702 Rust gives you precisely no help when it comes to memory leaks. It's exactly as easy to write a memory leak in Rust as in C++. What it can prevent are things like use-after-frees but those are not very likely to be an issue when you're implementing performance-critical bits of a library to be called from python anyway. Also, since we're in the "performance" regime, the proportion of "unsafe" Rust will be correspondingly greater, which means its advantage is muted compared with the use of Rust for more large scale system design.
Very nice timing! I started reading up on Rust during the Christmas break and I kind of like it. Used to do some coding in C, so quite familiar with some of the differences to Python. Would be awesome if you would cover more rust, especially bridging Python and Rust.
Greeat video. Would be great if you could make a video of implementing a Rust binding for Python. This would show a practical example of creating highly performant python module. Also would be great to see a video on rules of thumb when you would chose rust over python (and in which instances rust would not bring many benefits e.g. i/o being bottlenecks)
Wow Ia want more videos about rust and I like the comparisons made with python (I haven't seen a channel doing this kind of comparisons). Before the version 1.0 Rust implemented classes but switched to another model: Algebraic data types. Rust can still do some mainstream OOP but can't implement inheritance (since composition is prefered in more cases). Python FP is more of an afterthought so it's not as elegant as Rust but his OOP is more convenient for inheritance
Please please do more Rust videos 🙏🏼 Like the way you explain stuffs. Some concepts are still cryptic but the way you put those makes me dig deeper by my self.
This was a great intro to rust. Appreciated the comparison against Python. Really like how compiling shows 'dead code' as this is a feature missing in (native) Python. Looking forward to many more rust videos! Any chance you can demonstrate executing rust from python?
Great video, Arjan and happy to see you deep dive into the Rust ecosystem! Your way of explanation is amazing! I have been following you almost since inception of your channel and it has been great way to learn stuff from an experienced software engineer like you. Recently started learning Rust and was thinking: "Hey only if there is a channel like Arjan's that can teach Rust the same as he does Python...". I think the community here would love to see way more Rust related videos (and why not a whole course on your website) in 2024 dissected and explained in your way. Thank you for all you do man, appreciate it!
I coded in nothing but Rust for a few months -- gave it a solid try. While I think it's cool, Rust is a large, complex language and trying to solve problems in it I found untenable. As such, I don't find the language good to *play* in (problem solve, iterate, etc.). However, if the problem is already solved and performance needs to be improved, writing a version in Rust could be a valid way to get that performance boost needed (that or C++, either is fine).
Rust is very structured so you have to know what exactly you want when you start off. You can definitely play around in rust but doing so quickly without planning ahead will just leave you frustrated and refactoring alot, but that's an issue with most lower level langs.
ML researcher here so most of the time I'm working on python. Having previous experience with C++/C# I had never got to like dynamic typing, but now that HuggingFace has built the Candle framework for Rust, I would really enjoy giving it a try. Pls do more rust :) Thanks for the great content Arjan !
That was a nice overview - I'd encourage you to do more head to head comparisons in this style. You certainly did not appear to be out of your comfort zone here.
Hi Arjan, absolutely loved your introduction in Rust for Pythonistas video. Really enjoying the Python-Rust perspective. More of this would be fab. Keep it coming!
I’m a JS/TS dev but I love this channel and this video was certainly no exception! Can you do one more where you go through borrowing and so on as well?
I loved the video!!! I've been learning Rust for 2023's Advent of Code (as an excuse to learn the language) and loved the first steps in the language. It was really easy, for me, to understand now Rust's traits, being compared to Protocol/ABC classes in Python. You've chosen a good analogy there, thanks!
Finally a video that's not Python! And very good too, thanks! :) I would definitely watch your Haskell video, if you did any. For future Rust videos, I would recommend using some more tooling (rust-analyzer in VSCode so you don't need to compile to see compiler errors; cargo for running the application so you don't need to compile manually). And it would be worth mentioning how much more streamlined the tooling around Rust is, compared to the Python ecosystem. Some more topics that would be great to cover are algebraic data types (with real, useful Enums), and the borrow checker (which might give Python programmers a headache or two). Hope to see more of that kind of content!
Interesting you also tried Rust - also thought for quite a while to finally really get into it. My issue currently is that I don´t really know what to build that is also somewhat interesting. I´ve seen that Pydantic uses Rust for it´s core package. Would love to see a little project on Rust for Python Programmers, maybe even something that uses both Rust and Python
A good way to learn is to take something you’ve written in Python and then rewrite it in Rust. You will learn something along the way. That’s what I did with a C# program.
Definitely demonstrate how to combine Python and Rust (especially using Cargo). I helped a friend migrate his PhD simulation out of Python and into Rust, and using PyO3 meant he could migrate it one function at a time, rather than a complete rewrite from scratch. In general, I think Rust is the future of complex programming. You have complete control and oversight over what happens in Rust, at the cost of some complexity. Python, JS, etc. shine when the problems can be solved by composing complex functions in a simple way.
Nice one Arjan, this video explained more of Rust than most of the 1hr tutorials Ive watched on youtube so far. I think a lot of experienced Pythonistas are now looking to Rust for an entry into «somewhat low level programming».
Agree that this is a super nice avenue to explore. I use Python everyday and have learned lots from your videos. Starting to get interested in Rust though and having it explained from a Python point of view is very helpful!
The rust compiler is amazing and helps you avoid errors so nicely. The JetBrains Rust IDE has a great feature to run the program with Command R which makes it very fast to test the program.
Two quick notes: 1. Within the impl block you can use `Self` to refer to the type. Thus `fn new(name: &str) -> Self { Self { name ... } }`. Might save some keystrokes and reduces the amount of diffs when renaming a type. 2. `User::new` accepts a `&str` and always converts this into an owned `String`. From the perspective of memory allocation it's recommended to in this case change the `&str` to `String`. That way the caller can decide whether or not to pass an already owned string or create a copy. If the caller has no need for the `String` after calling `User::new`, then you save a copy operation. Be sure to look at the documentation for the `Cow` type for another (less commonly used but sometimes useful) option which is useful in certain cases.
I use Rust and not Python so I can't really say what language features should've been mentioned for an audience of Python devs, but the one thing I'll mention is that I'd recommend managing your Rust version with rustup (rather than via a package manager) and using Cargo to build your code instead of compiling directly. One of the great things about Rust is Cargo, though I understand why it might not be mentioned in a video more focused on language features.
I have limited experience in python but feel comfortable with it. I did read up on rust myself a bit and am exited to learn/try it. So I am very interested in the synergies and potential symphonies one might be able to compose with these two.
I am using Python for nearly a decade now and try to wrap my head around Rust at the moment. So it's perfect to see someone explaining Rust with the Python perspective in mind. Love it! Btw: I subscribed to you when you had 1k subsribers and was one of the first 50 users on discord. Insane growing in that short amount of time 😂 Good job - well deserved!
I already had to switch from C to C++, and that brief phase of C#, we don't speak of. Then, I had to spend a week learning Python, and it was worth it because I could always use C helper files. This seems like deja vu to an old guy like me. I mostly code in bare-bone hardware, so I'll just stick to C and assembly.
Really nice video. Would be great to hear your thoughts on Rust vs GO. In my team we have been using Python for a while, and recently started using Golang for applications that need to be high performant. I found GO to be easier to get started with, also for new team members. Love your content, keep up the amazing work!
The key feature of rust is the "borrow" concept. Other than that it is mostly like languages that came before it - like C or modula, or ocaml. I'm still not convinced one way or the other after my initial look at rust years ago. Can't wait to see your treatment.
Thank you for the video. I believe in the Rust's bright future. I had an excellent Rust experience in production. It's nothing crazy, just excellent CPU utilisation. Rust could be much more valuable to a developer than most think. I would be glad to see your thoughts and point of view on how to cook it.
Great intro for Rust - thank you! Also the first tutorial I've seen that compares Rust to Python, so interesting... If you are of a mind to do more on Rust, my vote goes with embedded devices and integration with AWS.
Great video idea. As someone who's only really done Python so far, the more complex languages can be rather intimidating. I've delved into C a little and I'm actually finding this rust example a lot harder to understand than simple pointers and references. Can see why it's known to be so hard.
The great thing about Rust is the compiler helps you. Hell you can write python in it and the compiler will tell you things to change to make it rust, such as the difference between how you make functions.
Very astute observation, my friend. And so very timely. Some of the new AI frameworks that I am starting to use are built in Rust. I really enjoyed this video. Looking forward to more Rust content from you in 2024. Keep up the excellent work. Stay well.
I've got some dream projects that I'd like to make, and Rust is my first choice of language for now. Still, I'm going to need some additional scripting. You mentioned Rust bindings in Python--well, I'm considering Python bindings in Rust! Anyway, I'm a long time viewer of your channel and would love to see more on Rust and how it relates to Python!
A comparison of the differences also with GO, Zig and C++ woudl be amazing! just to get a feel for the use cases and thought process that they are based on!
Hi Arjan. If you would go further in Python to achieve speed you would in C…but who does that. But with Rust it changes all. Polars/Ruff and lot of other frameworks are being done in Rust. If you do Rust videos in the context of Python enhancement I am totally down for it. Happy new year.
Same here. The difference is I learned Rust haha. So, yeah, I do write some small stuff in it, but I just freaking love C++ so much. I use C++ even when I maybe, should use Python.
I’d like to hear more on this take. From R and Python id like to do more lower lever programming but unsure whether to deep dive into K&Rs C book or crack on with Rust. Rust has the polars library so it feels like there is carry over from the get go..
@@VKjkd if it's your first attempt at Low-Level [you haven't done C and/or C++ in that domain yet], then sure, try Rust out. You might stick with the learning for longer - C can be tricky and some can get frustrated very quickly. In my case I already knew C++, Rust was easier to pick since I kind of understood right away why they did some of the things they did and knew all those concepts already. But, as projects grow, Rust becomes as complex as C++, so, Rust isn't thaaaat appealing to us here, and then we just do it in C++ and even get more performance and faster compile times in the end, sometimes. We leave Rust for the smaller projects and services.
@@theintjengineer Very helpful response, thanks for taking the time. I had always been interested in C++ (especially since R has the rcpp library). It’s good to hear from people who use and love the language given the otherwise ‘bad press’ around CPP I keep seeing online. This bad press didn’t make sense to me given how well entrenched c++ is across industries. I’ll have a go at Rust but keep an open mind.
@@VKjkd, yes. And that press fools a lot of unexperienced folks. We have been launching our Avionics and other critical software in C++ for 7 years now [we had a sort of mixture before] and none of it has had a single crash. Our policy? "Take at least a day each week to keep up with the latest improvements in the language, so we can apply it to our projects; if you need books, a live class, go to a conference, etc. don't worry." We lost a lot of C++98 Folks who didn't feel like learning new things was their thing, but gained people who liked to sit, study and learn things. Our stuff is now full C++20 and beyond. Anyway. All the best. Happy learning.
I've learned Rust (I went through Rust default textbook) and I can say that if you don't have to write operating system don't use it. It is royal pain in the ass to deal with all idiosyncracies of Rust and its very difficult syntax. I don't know why people like it. If you want something faster than Python, use Go.
Rust's syntax is very easy to learn. Its also one of the most consistent languages ive ever touched and the compiler will always tell me ways to fix issues i have.
Rust is incredibly easy to pick up if you are used to strongly typed languages. IMO, the syntax is easier than any of the C languages and the fact that the compiler is much better at preventing bugs from getting into your code makes it far safer.
also, rustpyton is very cool. Not exactly for your typical pythonista but still worth a mention. It puts into perspective how powerful it is even though it feels high level.
I loved this video, the comparison is great and helped me, thanks! The first time I heard about marcos in Rust was a disgusting idea, as a c++ dev macros are limited to some specific situations and avoided when possible. I need to take Rust with new mindset.
Surprised not to see the parallel between protocols and traits rather than ABCs. The analogy seems much closer to protocols even if protocols too support inheritance as opposed to traits.
Hey great video, I want to know your opinion on mojo which is going to be the general purpose default language for AI development. Also the two language problem talked by Chris lattner, python users can’t contribute to most python libraries because they are not written in python. Using rust instead of c to write libraries for python doesn’t change anything because you still need to learn a new language and python programmers are generally not habitual of good memory management because we have a garbage collector. If you just want a language faster than python for web development and distributed applications than go lang is better choice because it is much for beginner friendly and better cloud integration. Docker and kubernetes are written in go. If you want fast AI mojo seems a good option for python devs. Rust does make sense only for system programming. By using rust for python modules, we are just increasing the two language problem
Great video! Instead of Rust, I'd rather pick Nim language, much more approachable to python developers, gives similar benefits like speed like rust, but simpler to pick up. Otherwise, because of Rust we have excellent python-centric packages like Ruff and Pylyzer :)
Thanks you.... a peaceful 2024!!...looks like Rust seems to be the future series bigger project (microservices...something similar) on Rust will certainly welcome... thx
👷 Join the FREE Code Diagnosis Workshop to help you review code more effectively using my 3-Factor Diagnosis Framework: www.arjancodes.com/diagnosis
Not sure if you're going to get to it but I wanted to comment as I saw this. Cargo (built into rust) is more useful for building and running. Instead of `rustc user.rs` and `./user` you can just `cargo run` and it runs the main binary of your package.
It’s nice to see the compiler specially for beginners, magic can be confusing
Well even the book doesn’t concern itself with 'rustc', so IMHO it's safe to say that use cargo to build and run - even for newcomers
Not only compiling, but testing and documentation are easy with cargo.
@@ozanmuyeseveryone should use cargo
Yes more Rust please. But also continue with Python. The two together are a dream team.
It would be cool to see how we can create rust bindings to python and use rust functions in our python programs. Really get that "best of both worlds" started!
You actually can! See the Py03 project for details.
@@caseykorver5729 I didn't say you couldn't, I'm asking for some tutorial content on _how_ to do this.
Thank you for the reference. PyO3 (that's an `O` not a `0`) seems like a nice resource for this :)
@@_DRMR_check out let’s get rusty they have a video on it. I remade a python lib in rust a while back for perf
More rust content please! I'm rewriting nearly all my python code in Rust. There is a extensive amount of CS concepts that I have to learn along the way. But in the process of being a better rust developer, I'm becoming a better developer overall!
Rust makes you understand the stack and the heap, and pass by value v pass by reference, traits confused the hell out of me at first though! : )
You should jump into C before Rust IMO
@@snippletrap 100% agree, despite being a big Rust fan.
More of this! I loved your python Videos. They helped me so much to build a strong foundation. Since then I have taken a more „rusty“ path and would really love for you to make more videos in that area
I really wished you would have mentioned rust up for installing and managing your rust versions and also cargo. The tooling around rust is a major reason why I and so many others are drawn to the ecosystem! Great to see this though! Keep it up
Arjan, this content is extremely valuable and rare. There are millions of programmers who mainly or only know python (say they came from data/sciences etc.) You’ve taught them python and now you can introduce languages from a “pythonista’s” PoV.
Which unlocks a whole new ecosystem for your viewers. Usually these language guides aren’t written for python users so it is double valuable.
Very timely for me. Just switched my learning effort from Python to Rust. Borrowing and lifetimes are doing my head in so any content focused on those gnarly aspects would be much appreciated.
Those are the two hardest concepts for fledgling Rustaceans. Build a project with Rust, and it will be second nature by the end.
@@mr.bulldops7692 Thanks for the encouragement. I'm in the middle of a project right now and it's gradually clicking, but it's always good to get plenty of perspectives to make sure you're not missing something. I've been swearing at integers today, finding arithmetic between usize and isize unnecessarily annoying :). Got there at 4:59pm, thank goodness.
What part specifically is doing your head in?
@@TheStickofWar it would take too long to describe, but lifetimes are not intuitive to me. I use the Rust reddit, I've got The Book (plus the O'Reilly one) and I'm getting there. But there's definitely a steeper learning curve for this than Python (or Elixir, the language I've made a living from most recently).
@@robbybobbyhobbies I think one key thing that is important when developing in Rust is having a clear data model. I found that I never really had to think about that in Python while moving over to Rust required that I always think about ownership when planning how I approach a problem. It becomes more intuitive with time.
please make a series on how to do things in Rust for Python programmers, covering things like logging, error handling, async await, context managers etc...
there are a lot of youtubers that are specialized in Rust, but very a few specifically target Python programmers who are interested in rust, and there are many, and since your channel kinda does, it will be a perfect opportunity to capture new audience and\or bring back people who already "mastered" Python
logging is not native to rust, you have to get dependencies via cargo preferably, the "log" crate is very common as an abstraction facade however it doesnt provide any logging, you have to get a logging framework for that, which there are many links in the log crate's docs to find
error handling is a complicated subject, but do know you dont have to always match everytime there is plenty methods on Result and Option types and there is a ? operator
async is very difficult in rust and most use the tokio crate to help
context managers doesnt exist as thet are redundant due to the ownership system, a "context manager" would just implement the Drop trait, if it absolutely needs to
@@thomaseb97 async isn't any more difficult in rust than it is in js or C langs
With PyO3 and Maturin, you can seamlessly expose your rust code as python modules. Very useful when you have an existing python codebase, so you can rewrite the slow modules without modifying how they are used.
@@ytfeelslikenorthkoreamake sure you have proper benchmarks in place. Rust is faster, but the foreign function interface (FFI) isn't free. Depending on your problem and data size, you might spend more time converting back and forth from Rust to Python that you're better off with pure Python. As with everything related to performance, always measure.
Ive been looking into Rust, but a lot of stuff for "speed" have been written in C++. I dont quite understand yet, why I should learn Rust over C++ ?
@mNikke It is usually a lot more safe, there is a lot less chance of getting issues like segmentation faults, memory leaks, etc.
@@mNikke C++ is much better for this. It's a more flexible language and the safety stuff typically won't buy you anything because the kinds of code you'll be writing will be by its nature restricted in scope. It's also much easier to write for performance, which is typically why you'd want to do this in the first place (think gpu, simd, etc), and the ecosystem is much, much richer.
@@etc1702 Rust gives you precisely no help when it comes to memory leaks. It's exactly as easy to write a memory leak in Rust as in C++. What it can prevent are things like use-after-frees but those are not very likely to be an issue when you're implementing performance-critical bits of a library to be called from python anyway.
Also, since we're in the "performance" regime, the proportion of "unsafe" Rust will be correspondingly greater, which means its advantage is muted compared with the use of Rust for more large scale system design.
@ArjanCodes Please do more RUST videos! Thanks!
Right time!!! Wow, I am a python developer, use Python every single day but now learning Rust!! Thank you!!!
I'm happy this video came out at a good time for you!
Would LOVE to see more Rust content on this channel in the future... it's my favorite language!
Very nice timing! I started reading up on Rust during the Christmas break and I kind of like it. Used to do some coding in C, so quite familiar with some of the differences to Python. Would be awesome if you would cover more rust, especially bridging Python and Rust.
Greeat video.
Would be great if you could make a video of implementing a Rust binding for Python. This would show a practical example of creating highly performant python module.
Also would be great to see a video on rules of thumb when you would chose rust over python (and in which instances rust would not bring many benefits e.g. i/o being bottlenecks)
Great content! Would love to see more how rust and python can integrate with each other!
I would surely love you doing more in future
Wow Ia want more videos about rust and I like the comparisons made with python (I haven't seen a channel doing this kind of comparisons).
Before the version 1.0 Rust implemented classes but switched to another model: Algebraic data types. Rust can still do some mainstream OOP but can't implement inheritance (since composition is prefered in more cases).
Python FP is more of an afterthought so it's not as elegant as Rust but his OOP is more convenient for inheritance
Great timing with this video! I am currently looking into learning Rust as my second language!
I'm glad to hear that this video was helpful then!
Please please do more Rust videos 🙏🏼
Like the way you explain stuffs. Some concepts are still cryptic but the way you put those makes me dig deeper by my self.
I would love to see examples how to use Rust along with Python on some computation expensive operations...
So glad you’re covering rust now too! Your teaching, examples, videography are always so good
parts of pydantic are written in rust i think, so this is an excellent segue to rust
The core of pydantic was rewritten in rust, now it’s pydantic v2
Great! More please!
I like that you are covering rust. Please continue to work on this with your expertise
This was a great intro to rust. Appreciated the comparison against Python.
Really like how compiling shows 'dead code' as this is a feature missing in (native) Python.
Looking forward to many more rust videos!
Any chance you can demonstrate executing rust from python?
Great video, Arjan and happy to see you deep dive into the Rust ecosystem! Your way of explanation is amazing! I have been following you almost since inception of your channel and it has been great way to learn stuff from an experienced software engineer like you. Recently started learning Rust and was thinking: "Hey only if there is a channel like Arjan's that can teach Rust the same as he does Python...". I think the community here would love to see way more Rust related videos (and why not a whole course on your website) in 2024 dissected and explained in your way. Thank you for all you do man, appreciate it!
Now this is what I expect from Arjan ❤❤❤ quality as always, unique and thoughtful. Thanks as always
Thank you for the kind comment!
@@ArjanCodes No, no! Thank you! Longtime watcher and student of yours ❤️
I coded in nothing but Rust for a few months -- gave it a solid try. While I think it's cool, Rust is a large, complex language and trying to solve problems in it I found untenable. As such, I don't find the language good to *play* in (problem solve, iterate, etc.). However, if the problem is already solved and performance needs to be improved, writing a version in Rust could be a valid way to get that performance boost needed (that or C++, either is fine).
Rust is very structured so you have to know what exactly you want when you start off.
You can definitely play around in rust but doing so quickly without planning ahead will just leave you frustrated and refactoring alot, but that's an issue with most lower level langs.
Please do post more videos on rust! Enjoyed watching this one
ML researcher here so most of the time I'm working on python. Having previous experience with C++/C# I had never got to like dynamic typing, but now that HuggingFace has built the Candle framework for Rust, I would really enjoy giving it a try. Pls do more rust :)
Thanks for the great content Arjan !
The timing of this is insane. Just started to get my toes wet with Rust and Tauri a few days ago!
I'm glad to hear! Hope the video was useful :)
Yes! Please make more videos on Rust.
That was a nice overview - I'd encourage you to do more head to head comparisons in this style. You certainly did not appear to be out of your comfort zone here.
Hi Arjan, absolutely loved your introduction in Rust for Pythonistas video. Really enjoying the Python-Rust perspective. More of this would be fab. Keep it coming!
I'm happy to hear you enjoyed the content, Alin!
I’m a JS/TS dev but I love this channel and this video was certainly no exception! Can you do one more where you go through borrowing and so on as well?
I loved the video!!! I've been learning Rust for 2023's Advent of Code (as an excuse to learn the language) and loved the first steps in the language.
It was really easy, for me, to understand now Rust's traits, being compared to Protocol/ABC classes in Python. You've chosen a good analogy there, thanks!
I'm glad you're enjoying the content!
Finally a video that's not Python! And very good too, thanks! :)
I would definitely watch your Haskell video, if you did any.
For future Rust videos, I would recommend using some more tooling (rust-analyzer in VSCode so you don't need to compile to see compiler errors; cargo for running the application so you don't need to compile manually). And it would be worth mentioning how much more streamlined the tooling around Rust is, compared to the Python ecosystem.
Some more topics that would be great to cover are algebraic data types (with real, useful Enums), and the borrow checker (which might give Python programmers a headache or two). Hope to see more of that kind of content!
You should definitely make Rust of Pythonistas a regular topic.
Interesting you also tried Rust - also thought for quite a while to finally really get into it. My issue currently is that I don´t really know what to build that is also somewhat interesting. I´ve seen that Pydantic uses Rust for it´s core package. Would love to see a little project on Rust for Python Programmers, maybe even something that uses both Rust and Python
A good way to learn is to take something you’ve written in Python and then rewrite it in Rust. You will learn something along the way. That’s what I did with a C# program.
Definitely demonstrate how to combine Python and Rust (especially using Cargo). I helped a friend migrate his PhD simulation out of Python and into Rust, and using PyO3 meant he could migrate it one function at a time, rather than a complete rewrite from scratch.
In general, I think Rust is the future of complex programming. You have complete control and oversight over what happens in Rust, at the cost of some complexity. Python, JS, etc. shine when the problems can be solved by composing complex functions in a simple way.
Nice one Arjan, this video explained more of Rust than most of the 1hr tutorials Ive watched on youtube so far. I think a lot of experienced Pythonistas are now looking to Rust for an entry into «somewhat low level programming».
I'm happy you enjoyed the video!
Brilliantly clean and concise intro to a deep language.
Glad you enjoyed the content, Trey!
I'd love to see more Rust as well been trying to improve in it and learn its functional style!
i love rust. we use it at work for some of our backend services with axum. glad to see it getting more coverage.
Agree that this is a super nice avenue to explore. I use Python everyday and have learned lots from your videos. Starting to get interested in Rust though and having it explained from a Python point of view is very helpful!
Hu. I have the same lamp - made me notice that I like this camera framing. Production value is definitely increasing !
The rust compiler is amazing and helps you avoid errors so nicely.
The JetBrains Rust IDE has a great feature to run the program with Command R which makes it very fast to test the program.
Two quick notes:
1. Within the impl block you can use `Self` to refer to the type. Thus `fn new(name: &str) -> Self { Self { name ... } }`. Might save some keystrokes and reduces the amount of diffs when renaming a type.
2. `User::new` accepts a `&str` and always converts this into an owned `String`. From the perspective of memory allocation it's recommended to in this case change the `&str` to `String`. That way the caller can decide whether or not to pass an already owned string or create a copy. If the caller has no need for the `String` after calling `User::new`, then you save a copy operation. Be sure to look at the documentation for the `Cow` type for another (less commonly used but sometimes useful) option which is useful in certain cases.
I use Rust and not Python so I can't really say what language features should've been mentioned for an audience of Python devs, but the one thing I'll mention is that I'd recommend managing your Rust version with rustup (rather than via a package manager) and using Cargo to build your code instead of compiling directly. One of the great things about Rust is Cargo, though I understand why it might not be mentioned in a video more focused on language features.
I thought it was ok initially but then if he does a follow-up he should do as you suggest before progressing further.😊
I have limited experience in python but feel comfortable with it. I did read up on rust myself a bit and am exited to learn/try it. So I am very interested in the synergies and potential symphonies one might be able to compose with these two.
So, SO great that you are taking a look at Rust! Many thanks 😊.
I'm happy you enjoyed the video!
2023 was wild ...first you were skeptical about ai, now you are going for Rust ❤
I am using Python for nearly a decade now and try to wrap my head around Rust at the moment. So it's perfect to see someone explaining Rust with the Python perspective in mind. Love it!
Btw: I subscribed to you when you had 1k subsribers and was one of the first 50 users on discord. Insane growing in that short amount of time 😂 Good job - well deserved!
I'm glad the videos have been helpful! Thank you for your continued support :)
I am interested in Rust content. I will be building a web application in Rust for a university project soon, so additional learning content is great
I already had to switch from C to C++, and that brief phase of C#, we don't speak of. Then, I had to spend a week learning Python, and it was worth it because I could always use C helper files. This seems like deja vu to an old guy like me. I mostly code in bare-bone hardware, so I'll just stick to C and assembly.
`cargo run` for compiling and running in one step. if you use cargo that is.
Really nice video. Would be great to hear your thoughts on Rust vs GO. In my team we have been using Python for a while, and recently started using Golang for applications that need to be high performant. I found GO to be easier to get started with, also for new team members. Love your content, keep up the amazing work!
You guessed what I wanted, which is get into Rust, but with the perspective from a Python background
Great minds think alike! Hope the video helped.
we are waiting for "Go for pythonistas " now.
The key feature of rust is the "borrow" concept. Other than that it is mostly like languages that came before it - like C or modula, or ocaml.
I'm still not convinced one way or the other after my initial look at rust years ago.
Can't wait to see your treatment.
As someone that feels comfortable with Python but wants to take on a low-level language like Rust, I was looking for this exact video
I'm happy the video has been useful for you!
Thank you for the video. I believe in the Rust's bright future. I had an excellent Rust experience in production. It's nothing crazy, just excellent CPU utilisation. Rust could be much more valuable to a developer than most think. I would be glad to see your thoughts and point of view on how to cook it.
Awesome. Love it. Exactly what I was looking for and that's from you
Glad you enjoyed the content, Matthias!
Great intro for Rust - thank you! Also the first tutorial I've seen that compares Rust to Python, so interesting... If you are of a mind to do more on Rust, my vote goes with embedded devices and integration with AWS.
Awesome video, would love to see you cover more Rust!
Thank you very much, I wanted you to explain either GoLang or Rust. However I am learning GoLang now, but I will start Rust too.
Great video idea. As someone who's only really done Python so far, the more complex languages can be rather intimidating. I've delved into C a little and I'm actually finding this rust example a lot harder to understand than simple pointers and references. Can see why it's known to be so hard.
The great thing about Rust is the compiler helps you.
Hell you can write python in it and the compiler will tell you things to change to make it rust, such as the difference between how you make functions.
started learning rust with AoC this year. Interesting timing for me haha. I'd be down with more Rust basics.
Very astute observation, my friend. And so very timely. Some of the new AI frameworks that I am starting to use are built in Rust. I really enjoyed this video. Looking forward to more Rust content from you in 2024. Keep up the excellent work. Stay well.
Thank you for the kind comment, Wade!
I've got some dream projects that I'd like to make, and Rust is my first choice of language for now. Still, I'm going to need some additional scripting. You mentioned Rust bindings in Python--well, I'm considering Python bindings in Rust! Anyway, I'm a long time viewer of your channel and would love to see more on Rust and how it relates to Python!
I hope this becomes a series of RUST videos🤞
A comparison of the differences also with GO, Zig and C++ woudl be amazing! just to get a feel for the use cases and thought process that they are based on!
Hi Arjan. If you would go further in Python to achieve speed you would in C…but who does that. But with Rust it changes all. Polars/Ruff and lot of other frameworks are being done in Rust. If you do Rust videos in the context of Python enhancement I am totally down for it. Happy new year.
What kind of keyboard / switches do you have? Sounds so satisfying!!
The big question is Why should I learn Rust?
I love Python but it's slow.
If I need speed I use C or C++ (my second love)
Same here. The difference is I learned Rust haha.
So, yeah, I do write some small stuff in it, but I just freaking love C++ so much. I use C++ even when I maybe, should use Python.
I’d like to hear more on this take. From R and Python id like to do more lower lever programming but unsure whether to deep dive into K&Rs C book or crack on with Rust. Rust has the polars library so it feels like there is carry over from the get go..
@@VKjkd if it's your first attempt at Low-Level [you haven't done C and/or C++ in that domain yet], then sure, try Rust out. You might stick with the learning for longer - C can be tricky and some can get frustrated very quickly.
In my case I already knew C++, Rust was easier to pick since I kind of understood right away why they did some of the things they did and knew all those concepts already.
But, as projects grow, Rust becomes as complex as C++, so, Rust isn't thaaaat appealing to us here, and then we just do it in C++ and even get more performance and faster compile times in the end, sometimes.
We leave Rust for the smaller projects and services.
@@theintjengineer Very helpful response, thanks for taking the time. I had always been interested in C++ (especially since R has the rcpp library). It’s good to hear from people who use and love the language given the otherwise ‘bad press’ around CPP I keep seeing online. This bad press didn’t make sense to me given how well entrenched c++ is across industries. I’ll have a go at Rust but keep an open mind.
@@VKjkd, yes. And that press fools a lot of unexperienced folks. We have been launching our Avionics and other critical software in C++ for 7 years now [we had a sort of mixture before] and none of it has had a single crash. Our policy? "Take at least a day each week to keep up with the latest improvements in the language, so we can apply it to our projects; if you need books, a live class, go to a conference, etc. don't worry."
We lost a lot of C++98 Folks who didn't feel like learning new things was their thing, but gained people who liked to sit, study and learn things.
Our stuff is now full C++20 and beyond.
Anyway. All the best. Happy learning.
I would love to see something like this for Golang as well.
I've learned Rust (I went through Rust default textbook) and I can say that if you don't have to write operating system don't use it. It is royal pain in the ass to deal with all idiosyncracies of Rust and its very difficult syntax. I don't know why people like it. If you want something faster than Python, use Go.
Tell it to rust based python libraries
Rust's syntax is very easy to learn.
Its also one of the most consistent languages ive ever touched and the compiler will always tell me ways to fix issues i have.
Rust is incredibly easy to pick up if you are used to strongly typed languages. IMO, the syntax is easier than any of the C languages and the fact that the compiler is much better at preventing bugs from getting into your code makes it far safer.
@@dross6206 strongly or statically?
also, rustpyton is very cool. Not exactly for your typical pythonista but still worth a mention. It puts into perspective how powerful it is even though it feels high level.
I loved this video, the comparison is great and helped me, thanks! The first time I heard about marcos in Rust was a disgusting idea, as a c++ dev macros are limited to some specific situations and avoided when possible. I need to take Rust with new mindset.
Really great inteoduction.
Like many others in here, I too am in favor for more Rust (or Ross as TH-cam automatic closed caption likes to call it) videos for Pythonistas.
Keep it coming bro. Create Indepth Rust tutorial for python developer.
Really appriciate. Thank you for starting contents on Rust. Hope that I can see more videos on Rust in future.
Glad you enjoyed this type of content!
would be nice to have a video integrating NIM with python with some networking examples
Surprised not to see the parallel between protocols and traits rather than ABCs. The analogy seems much closer to protocols even if protocols too support inheritance as opposed to traits.
Managed to dodge DotNet and Java, C++, C# or Golang, now Rust and probably Zig if I procrastinate more will miss these too!
Oh zig is so beautiful
Hey great video, I want to know your opinion on mojo which is going to be the general purpose default language for AI development. Also the two language problem talked by Chris lattner, python users can’t contribute to most python libraries because they are not written in python. Using rust instead of c to write libraries for python doesn’t change anything because you still need to learn a new language and python programmers are generally not habitual of good memory management because we have a garbage collector. If you just want a language faster than python for web development and distributed applications than go lang is better choice because it is much for beginner friendly and better cloud integration. Docker and kubernetes are written in go. If you want fast AI mojo seems a good option for python devs. Rust does make sense only for system programming. By using rust for python modules, we are just increasing the two language problem
Great video! Instead of Rust, I'd rather pick Nim language, much more approachable to python developers, gives similar benefits like speed like rust, but simpler to pick up. Otherwise, because of Rust we have excellent python-centric packages like Ruff and Pylyzer :)
Thank you amazing introduction ❤
You’re welcome, happy you liked it!
Create a dedicated playlist on it.We support you 🎉🎉🎉🎉, like as always ❤❤❤❤❤
I'm not going to go deep with Rust in the near future, but I really enjoyed that video. :) Thumbs up!
Glad to hear you enjoyed the video!
Thank you, thank you 😊
It's my pleasure!
Thank you for the rust tutorial! Can you cover wasm with rust?
Great thanks for an intro
Video on binding rust and pay would be cool
Love the rust content!
Glad you liked the content, Sergio!
Thanks you.... a peaceful 2024!!...looks like Rust seems to be the future series bigger project (microservices...something similar) on Rust will certainly welcome... thx
Glad it was a helpful video!
Amazing content. Just what I need.
Glad the video was helpful!