I spent six months rewriting everything in Rust

  Переглядів 369,251

chris biscardi

chris biscardi

8 місяців тому

I spent six months rewriting all of the software I depend on in Rust.
Check out the website at www.rustadventure.dev/
and join the discord server at / discord

КОМЕНТАРІ: 347
@chrisbiscardi
@chrisbiscardi 8 місяців тому
The new Rust/WASM powered Rust Adventure site is live now at www.rustadventure.dev/ and the discord server is now open if you want to learn Rust: discord.gg/2FwB9EqCGs
@josecarloscirqueirajunior2914
@josecarloscirqueirajunior2914 8 місяців тому
Please add Rust + HTMX
@lolxd926
@lolxd926 8 місяців тому
Trunk has a problem while running with ARM processors Reason I found was related to wasm-binaryen which is used to make trunk Binaryen package is not optimised for ARM processors which Is causing rust developers using ARM processors struggle to get there UI frameworks work
@chrisbiscardi
@chrisbiscardi 8 місяців тому
that's interesting, I run an m1 as my primary machine and I haven't had any issues. Looking at the issue tracker it seems like this was resolved back in 0.16
@lolxd926
@lolxd926 8 місяців тому
@@chrisbiscardi yeah It does work with Mac but struggles with other processors Like Raspberry Pi 4 processor or the Pine64 processor
@chrisbiscardi
@chrisbiscardi 8 місяців тому
I don't generally get into frameworks who base their marketing on being "anti-" other approaches. They don't tend to last long term.
@Genuigr
@Genuigr 8 місяців тому
Great story about how Node was an entrypoint to many topics. I think it is sometimes overlooked that JS as language and Node.js as ecosystem have allowed a lot of pople to learn building systems and advance into more complex domains.
@SaidBambang
@SaidBambang 7 місяців тому
Yup
@dukejones2863
@dukejones2863 6 місяців тому
javascript as gateway drug... it really is the marijuana of programming languages
@m4heshd
@m4heshd 5 місяців тому
Rustjerks would disagree 😂. Even though I'm gradually moving solely into Rust, I would never 💩 on the Node ecosystem because it has enabled me to do sooo much. I moved to JS back in the day from much more powerful languages simply for the ease and access that Node provided me. Yes, there's good and bad in every ecosystem but if you're a good enough dev, you know exactly how to apply the filter.
@Kabodanki
@Kabodanki 3 місяці тому
@@m4heshd Building in TypeScript was fun for me. I lacked fun with PHP, Ruby, C#. I will never shit on NodeJS, but we can leave it behind going forward. I don't believe evething in Rust though
@gpsxsirus
@gpsxsirus Місяць тому
One part of that which makes it such a great gateway is that web dev is much easier to break into without getting a Comp Sci degree first.
@maxcellw
@maxcellw 8 місяців тому
Great work Chris! I love how you shared your entire journey and the decisions you ended up making for the new site! I’ve been an early adopter of Rust Adventure and I’m excited to see how it will continue to evolve over time! Seems like some great bets so far.
@mharley3791
@mharley3791 8 місяців тому
I’ve been interested in learning Rust but I was under the impression it was mostly for low level embedded stuff. Seeing the flexibility and usability of Rust across a wide domain has been a much needed and I’m excited to give it a go!
@nojerome497
@nojerome497 8 місяців тому
I was under the same impression, but after looking deeper into it that's clearly not the case. It seems to be because it can be used to replace C++, people assume that's all it's for. Just started reading The Rust Programming Language recently and I think I'm in love.
@mharley3791
@mharley3791 8 місяців тому
@@nojerome497 I’ll check this out !
@CottidaeSEA
@CottidaeSEA 7 місяців тому
It's a bit clunky to use for some things due to the restrictions that are set in place, using it for an API will end up with you needing to manually register all routes for example (haven't found a way to do it dynamically at the very least). That's not really the end of the world, but it is just one of those things that makes it a bit less appealing for such work. I absolutely do recommend trying it though. Even if you don't end up using it a lot, it can teach you a lot about how to think about code.
@mharley3791
@mharley3791 7 місяців тому
@@CottidaeSEA yeah a month in and I’m probably still going to use typescript/Go for api stuff. I will say I’ve really loved rust for CLI stuff and tooling tho. Replaced some old Python tools at work with rust and the increase has been nuts. I just wish the standard library was more robust like Go.
@diadetediotedio6918
@diadetediotedio6918 6 місяців тому
@@CottidaeSEA Have you tried using macros? They can reallyt abstract these boilerplates
@BohdanTrotsenko
@BohdanTrotsenko 4 місяці тому
This is awesome. There's much more inside the video than the title says (or, I imagined seeing the title). Thanks a lot.
@Nezuko-ey2du
@Nezuko-ey2du 5 місяців тому
Well, I just started going into Rust with no idea what I am doing. You did give me a whole lot of things of what I can do with it. I come from react, java, node side, apart from rust being a low-level programming, this video sure widened the scope for me, thanks :)
@88farrel
@88farrel 8 місяців тому
6 months latter: I spend six month rewriting everything in zig
@eligoldberg5499
@eligoldberg5499 7 місяців тому
😂
@hakansel05
@hakansel05 7 місяців тому
😂
@yourmomsboyfriend3337
@yourmomsboyfriend3337 7 місяців тому
😂😂
@xxxpilot
@xxxpilot 7 місяців тому
😅😂
@yourmomsboyfriend3337
@yourmomsboyfriend3337 7 місяців тому
😂😂😂
@ballingt
@ballingt 8 місяців тому
Great effort Chris! Excited to get into Rust Adventure!
@morgomi
@morgomi 8 місяців тому
Im learning a lot from you Chris, thank you for sharing these.🙂
@theagainagain
@theagainagain 6 місяців тому
This video was the type of ecosystem overview I needed to put rust into context of all the things I do with the JVM, js/ts and python. I try to learn a new language every year or so, and this year it’s rust. Unlike most of the other languages I’ve dabbled in, I’m starting to feel like rust might be a place I could live for a little while. I haven’t felt that way since I started really loving kotlin a few years ago.
@leisti
@leisti 2 місяці тому
In recent days, I've started learning more about Rust. This clip really sells it. I think I'll jump on the bandwagon and take your RustAdventure course.
@sighupcmd
@sighupcmd 7 місяців тому
Your bio is so similar to mine :) I started with AS too, but skipped nodejs because I always hated JS. Erlang and clojure are in my collection too, but I did Elm instead of Haskell, and really lerned a lot from it. Now I'm learning Rust (ecosystem mostly), and I hope I won't need to learn another language in near 5+ years, because I want to become a pro in Rust. While I'm learning, I hope wasm Rust tooling for usual HTML/CSS stuff become more mature, though I don't like the idea of keeping logic/state on frontend, some glue is needed anyway. I waited so long to be able to avoid JS on frontend completely, and last few years I noticed this is possible, and I finally can do frontend tasks and sleep well after deploy :)
@omdxp
@omdxp 8 місяців тому
really cool subject; I'd love to see more videos like this
@ZekeFast
@ZekeFast 8 місяців тому
Thank you for sharing all that experience! In was interesting, indeed!
@vvnoah917
@vvnoah917 6 місяців тому
Your website loads very fast and is well designed, great job.
@jameskh
@jameskh 8 місяців тому
Always pushing out consistantly amazing videos, thanks for sharing your knowledge Chris! Just subscribed to rust adventure looking forward to diving into the workshops.
@aspiring_millionaire
@aspiring_millionaire 7 місяців тому
Amazing content Chris!! Loving it :)
@mannyistyping
@mannyistyping 8 місяців тому
I am only two minutes in and I am really appreciative of the journey you've shared thus far and I am excited for the rest of the video. I've been very interested in learning Rust and have found a few folks who seem like solid folks that I've followed on Twitter for a bit and it seems to me like it's at a point where maybe Node was in its formative years? I am curious your thoughts on where Rust is heading and your sense of how it compares to the Node Community formation! I look forward to hearing back!
@mannyistyping
@mannyistyping 8 місяців тому
@chrisbiscardi I am curious if in the future you'd be open to discussing the migration away from GraphQL and instead moving to axum+tokio with MySQL. I work in the GraphQL space and I am very much interested in understanding where it serves and where it doesn't. 🙏
@chrisbiscardi
@chrisbiscardi 8 місяців тому
I'd generally agree with that assessment. I think there's actually *literally* people coming over from JavaScript to Rust, as well as it feeling very formative in a similar way right now. There's a lot of crates that already exist, but also the opportunity to write "The X crate". It also seems to be a further expanding of the types of software people can write beyond the expansion that nodejs offered around the time it came out. For example, writing kernel extensions in JavaScript isn't really going to happen, and embedded development has certain restrictions, but Rust supports these sorts of environments well. The migration away from GraphQL was a migration away from AWS AppSync (and mostly Amplify specifically). GraphQL-the-concept is something I think is still very viable. At the time I wasn't sure if I could find a Relay-level client for Rust and even if I could, if that would work well with where Leptos was going. I knew REST was going to work even if it meant I made more endpoints for different use cases and such. I don't know that I'd advocate for building GraphQL servers yourself? but Hasura is really nice if you don't want to and I think I'll get into writing GraphQL servers in Rust at some point, which will predictably turn into UKposts videos when I do. I've been using GraphQL since it came out in a whole bunch of scenarios and I still like it, but I definitely wanted to distance myself from Amplify.
@mannyistyping
@mannyistyping 8 місяців тому
@@chrisbiscardi Thank you for the reply! I want to take a few moments to process what you've shared and I'd love to follow up. I'd love to continue short exchanges of thoughts like this in the future if you're open to it, definitely async to allow followup when time, bandwidth, want allow. I connected with you on BlueSky 🙏
@elraito
@elraito 8 місяців тому
The quality of your videos are just stellar.
@andydataguy
@andydataguy 8 місяців тому
Would love to see a video exploring rust for data science and data engineering. Things like Surreal and Fluvio are especially interesting 💜
@chrisbiscardi
@chrisbiscardi 8 місяців тому
I'm working on a video about stream processing to give some background using arroyo to contextualize it. What do you find interesting about Surreal and Fluvio?
@andydataguy
@andydataguy 8 місяців тому
Surreal is multimodal and supposedly fast. Saw some demos where they smoked financial data. It's easier to manage database and API schema. They just closed a phat funding round Then fluvio has crushed as a Kafka replacement in the cloud, helping save a node operator 10x on their data fees. This huge saving was a result of the increased memory efficiency of Fluvio They're both written in Rust 💜🦀
@neilclay5835
@neilclay5835 Місяць тому
I'm right on the verge of diving into the Elixir garden, and learning the tools to work with Phoenix LiveView. Basically because it ticks every box when it comes to some of the projects I'm involved in. I'm really hoping that one of these WASM Rust crates will come along and do the same soon - ideally, this week 😆 Thanks, interesting video.
@hydroxa4330
@hydroxa4330 6 місяців тому
Tbh i would be really interested learning about what open source crates we can use as Rust devs creating web UI, since i feel one of Rust's big strengths is how plentiful, reliable and modern its packaging system is. I personally am learning Yew (Similar to React) to rewrite my app, using Cargo Features to either run on the web using REST APIs or run locally using Tauri depending on build. However, I haven't seen much of whats available in terms of elements, design aids and other utilities. I've found Rust a very exciting, refreshing and comfortable language to write in, coming from a C# background. It feels like everything I wanted from C# without much compromise, and even some things i didnt know i wanted!
@5133937
@5133937 8 місяців тому
Great overview of the Rust web ecosystem, thanks!
@ChasingShadowsz
@ChasingShadowsz 8 місяців тому
Amazing video, thanks a lot Chris!
@MxSmack
@MxSmack 8 місяців тому
You are my favourite Rust content creator, I'll be following the Rustlings series soon, thank you so much for putting this out there it's really inspiring.
@jeffreylean
@jeffreylean 8 місяців тому
Man, your videos are gem.
@Robay146
@Robay146 7 місяців тому
Great review! Thanks.
@korzeTV
@korzeTV 7 місяців тому
I enjoyed watching and listening to this video, mate.
@miran248
@miran248 7 місяців тому
This has to be one of the best videos on why one should give Rust a try! Cheers from another actionscripter.
@damonmedekmusic2015
@damonmedekmusic2015 3 місяці тому
I think its not just javascript that rust is competing against. Its the frameworks. I think vanilla js vs a decent frameworks is no competition. These frameworks are explosive in productivity and easy to work with in a team. I think rust has real potential in the low level hardware community. But I mean, python was the hot thing 5 years ago and people said the same thing you're saying here. Even the node js package manager is hard to ditch as its incredibly convenient. Personally I'd prefer to see more Rust examples of it replacing audio tools but thats just me.
@gavin_wang
@gavin_wang 8 місяців тому
Awesome video thanks for sharing!
@SeanLazer
@SeanLazer 8 місяців тому
Really great video, thanks!
@adrianbergesenfedaque8016
@adrianbergesenfedaque8016 7 місяців тому
as an amateur haskeller, I must say what attracts me of Haskell is not its direct useability but how it forces you to think of the domain problem and break it into its fundamental rules and components (types). I'll keep writing Python and probably pick up Rust soon, but I'll keep using Haskell to prototype stuff just to remind myself of how a good design should look like.
@chrisbiscardi
@chrisbiscardi 7 місяців тому
Yeah I definitely think that's the biggest utility of Haskell these days: as a language that forces you to think about problems in a different way, that you can then use to apply to the way you use other languages. It's the same for a bunch of languages I think. If you really want to understand the actor model, then erlang is a great environment to do that in, for example.
@asdfghyter
@asdfghyter 6 місяців тому
@@chrisbiscardi It feels so absurd to me that Rust is the only mainstream language that has adopted Algebraic Data Types and Type Classes from Haskell and similar languages. It's the obvious way to model data. I also feel that Rust's ownership model can give many of the advantages of purity by forbidding mutable aliasing, which is one of the largest sources of bugs related to impurity. Because of the lack of mutable aliasing, a Rust function that takes a mutable reference `fn foo(x: &mut Bar)` is roughly equivalent to a pure function `fn foo(x: Bar) -> Bar`.
@donkey7921
@donkey7921 5 місяців тому
@@asdfghyterhow is it obvious? normal programming is obvious. ifs are obvious, classes are obvious, etc. but functional programming like pattern matching and monads are not obvious at all.
@asdfghyter
@asdfghyter 5 місяців тому
@@donkey7921 monads are clearly not obvious, but pattern matching is. classes are not in any way obvious, you’re just used to them. and as rust has shown, tagged unions/ADTs/sum types and pattern matching are not in any way specific to functional programming what i mean is that if you would informally talk about data, you would very often do it in terms equivalent to sum and product types. “you would get either this thing or that thing” = “sum type”. and you also often write a poor man’s sum types in a program without the safety guarantees, e.g. when a function returns a status code that tells you if the other returned value is valid, instead of a Result type. and let’s not forget null pointers, which are just the Option type in disguise (but without any way for the compiler to tell if you’ve checked it). and similar to null pointers we have returning special magical values for non-pointer types to signify failures (e.g. negative number = failure), which are also Result types. sometimes a class hierarchy can make sense, but often it feels artificial and it would be much nicer to just say “this is one of these three things”
@rumble1925
@rumble1925 5 місяців тому
@@donkey7921 It's much easier than it sounds. Monads are a box with a value, it gives the value a set of rules to follow so you can compose or pass it around to functions. The rules allow you to treat the box the same way regardless of what the value inside it is. It makes your program simpler because the value in the box could be null or an error, your functions don't care, you only need to handle it when you check inside the box. If you've used promises in javascript, you probably know enough to use it.
@chroniclemagistry642
@chroniclemagistry642 8 місяців тому
congratulations 🎉🎉🎉
@davojta
@davojta 8 місяців тому
Thank you for the awesome video!
@balen7555
@balen7555 8 місяців тому
Amazing video! 15 minutes passed by easily. One thing I'd like to mention is the possibility that the Rust ecosystem might possibly go down the same track as npm; and the reason being the lack of a strong STD like .NET. We're already seeing rust packages that have 400s of dependencies for small-sized projects, let alone bigger ones. With it comes the risk of exactly what made you leave JS, which I do hope I am wrong about (and willing to get corrected if so).
@chrisbiscardi
@chrisbiscardi 8 місяців тому
glad you enjoyed it! The Rust crates I see that have that kind of dependency graph are the ones that typically make good use of them, like Bevy for example, so while I can see the concern (especially if you're familiar with the JS ecosystem) I do think its less of an issue with such a well-typed language compared to JS. I have two thoughts really: 1) we never really know how an ecosystem will evolve over time. It may turn out that Rust develops some of the same problems for whatever reason. I'm pretty happy with the ratio of "stdlib" to "3rd party" right now. Things in the stdlib are generally super stable and reliable, which I really like. I'd rather not end up in the situation where the stdlib is somehow "out of date" and no longer the recommended approach like has happened in other languages. 2) there will be another language after Rust. Rust is not the "ultimate language" (or however you'd phrase that) and language design research has kept going regardless of what the industry is using. Rust is great and I feel that it will be around for a long time, but it won't be the last language I ever learn. Also I don't consider myself having "left JS". I do prefer Rust these days, but JS is still a language that I keep up to date in my toolbelt.
@kipchickensout
@kipchickensout 8 місяців тому
Rust made me love C# even more
@andredasilva6807
@andredasilva6807 8 місяців тому
great videos. keep up the great content
@Turalcar
@Turalcar 2 місяці тому
3:26 I tend to write a lot fewer tests in Rust than I did in other languages. Maybe it's the culture of my workplace but also if it compiles, it works. Tests run in CI and I forgot when was the last time I got an email alert with a failure.
@ollydix
@ollydix 6 місяців тому
Poem is really the only one I'd use for APIs because of the automatic documentation and playground. Doing playgrounds in Axum was painful.
@amzabdrahim3350
@amzabdrahim3350 8 місяців тому
bro, i like you channel and content, rust lover here, i learn it for embedded systems, keep going, i wach your advent of code as well
@marcosoliveira8731
@marcosoliveira8731 6 місяців тому
Inspiring experience! I´ll join the adventure.
@m4heshd
@m4heshd 8 місяців тому
I'm literally doing this right at this moment 😆. I know RIIR has become a meme, but things are just infinitely better when written in Rust. But the biggest thing for me was, rewriting my own code in Rust has improved my knowledge in Rust exponentially.
@BosonCollider
@BosonCollider 5 місяців тому
I also feel that a major benefit of Rust is actually _not_ having to rewrite everything in Rust, and instead binding rust within an existing application, basically the exact opposite of the meme.
@m4heshd
@m4heshd 5 місяців тому
@@BosonCollider Agreed but not possible in every case.
@pbdivyesh
@pbdivyesh 4 місяці тому
I think I understand all of the web components especially with Js, TS and GoLang, I just want to be good with RUST to understand lal that you have covered here and become a solid personnel who can offer this as contract work or build tools to sell them out as services.
@sootynemm
@sootynemm 8 місяців тому
thank you so much for this video, i dropped a sub + can't wait for your next vid!
@bbkr2063
@bbkr2063 27 днів тому
I started to learn Rust as complementary language to Raku. Raku itself is mindblowing, very feature-rich out of the box. Like do you know other language that has built in grammars? But that comes with performance penalty. Rust fills this performance gap and it can be called from Raku, so those two make perfect combo. Whipuptitude and speed.
@redonion3184
@redonion3184 8 місяців тому
Amazing video ✨, it's packed with useful info. What about hot reload, I've had a little headache with Rust compile time, so I'm wondering what's it like to have a small change in an HTML tag for example, how long does it take to see the changes in action.
@chrisbiscardi
@chrisbiscardi 8 місяців тому
The Rust Adventure site (which is about 4500 loc, with two projects, one for server and one for client, which has to compile about 550 crates) does a full hot-reload from html edit to seeing it on a webpage in about 8 seconds. This involves doing the incremental build for both the server and the client, so I'd assume if you were only doing a client site the time would drop by half easily. I haven't done any dependency optimization such as feature selection, etc. so this could probably easily be faster from that. The axum leptos starter, which is doing a similar thing, only takes 3 seconds from edit to seeing it in the browser. Other frameworks also have hot-reload (like Dioxus) but I haven't measured them.
@redonion3184
@redonion3184 8 місяців тому
​@@chrisbiscardi Wow! that's absolutely amazing !! thanks a lot 🔥
@spencerneukam2551
@spencerneukam2551 8 місяців тому
Real talk .. how was all this re-written in Rust in 6 months?? That's crazy fast. I'm not sure I could do all of this work in Python that quickly.
@pfeilspitze
@pfeilspitze 5 місяців тому
A huge plus of rust is reducing the long tail of problems, which can really help you move on to the next thing, and thus get through a long list without constantly going back to fix "oops, that was nil sometimes" kinds of problems.
@andreipene8647
@andreipene8647 8 місяців тому
Hey Chris, great video! Was wondering, did you manually write your axum routes, or did you let leptos generate the routes? I guess I was kind of confused by how that works when looking at their documentation.
@chrisbiscardi
@chrisbiscardi 8 місяців тому
routes on the rust adventure site are mostly generated by leptos. There's the typical Router from leptos_router and then also the routes for server functions. There's an integration package for each server-side framework that includes a generation function that walks your leptos application tree: docs.rs/leptos_axum/0.4.8/leptos_axum/fn.generate_route_list.html There's an example of it in the axum starter: github.com/leptos-rs/start-axum/blob/f963c514fb2c9412ccd38e8f3025cd4dca833c0a/src/main.rs#L20
@andreipene8647
@andreipene8647 8 місяців тому
Thanks for the clarification!@@chrisbiscardi
@ProjSHiNKiROU
@ProjSHiNKiROU 8 місяців тому
In Rust WASM builds and JavaScript apps, one can easily fall into the trap of “including a large library for a single function and your final bundle size includes the entire library rather than the only functions you use”. Are Rust/WASM bundle sizes easier to optimize than Webpack JS bundle sizes?
@chrisbiscardi
@chrisbiscardi 8 місяців тому
This specifically is a harder trap to fall into because dead code elimination is built into the way Rust compiles, especially compared to JavaScript where dead code elimination is often treated as a special process or is actually not possible, as was the case with a lot of commonjs code that used a more dynamic require style compared to esm. on the more general question of whether its easier to, I'd say yes but obviously this is dependent on the person doing the optimization, their own experience, and specific goals. wasm doesn't currently "code-split" for example. I say yes specifically due to the fact that when you make such changes in Rust they tend to persist rather than be accidentally reversed, and Rust has the ability to work in highly restricted environments like embedded and no_std. This means there are both very general automatic tools, like dead code elimination or upping an optimization flag, as well as concrete steps you can take to move closer to a no_std style program. Here's a decent overview of techniques: rustwasm.github.io/docs/book/reference/code-size.html
@shastri3303
@shastri3303 8 місяців тому
Same here . I'm done with node package managers
@artemivasyuk1699
@artemivasyuk1699 8 місяців тому
Hey Chris. Great video as always! Do you use server functions to retrieve data for frontend or rather requesting api directly? Also does your api live on the same axum instance as leptos?
@chrisbiscardi
@chrisbiscardi 8 місяців тому
I use Server Functions on Rust Adventure to inject the cookie/session-related auth to access the API from the server-side of the Leptos app, and I use Server Functions in the admin app to directly call SQL to the database. The API runs as a separate service, which I feel is generally the right move if you're going to have an API.
@artemivasyuk1699
@artemivasyuk1699 8 місяців тому
@@chrisbiscardi thanks for reply. I'm considering to use rust on our new SaaS project with classic JS framework on frontend (with dedicated dev) communicating with API on axum. Thing is we also need some kind of service admin and there's nothing ready-to-use in rust. I wonder if using Leptos is a good idea here. Also using Leptos (+axum) with server side functions brings it's own set of urls, right?
@chrisbiscardi
@chrisbiscardi 8 місяців тому
leptos server functions do indeed set up their own URLs. You have some control over this, but I wouldn't depend on those URLs outside of using them for server functions themselves personally.
@ameer6168
@ameer6168 8 місяців тому
I'm re-writing everything in css
@woodrowbeckford7610
@woodrowbeckford7610 3 місяці тому
Nice presentation. Of course it's up to the individual whether or not to learn a new language or revert to our old favorites. For me, I'm keeping with C and Javascript.
@Boxing_Gamer
@Boxing_Gamer День тому
Haskell is awesome though, its crazy how it is just so much better than anything else. Its on a different level. Rust is second but not a close second.
@indradb7377
@indradb7377 8 місяців тому
nice video, though when going on your new website, it's quite slow, pages load slow ect
@ludvigsundstrom6218
@ludvigsundstrom6218 6 місяців тому
Haskell has one of the best communities I know. But yes, it has improved a lot in recent years.
@caleblaws7722
@caleblaws7722 8 місяців тому
I have a mostly low level experience which i was hoping rust would allow me to branch out to web development at some point. The official tutorial was to create a conways game of life with web assembly. But it used a graphics library in js to create the grid array. So then i got pretty confused about why i was using web assembly and rust in the first place and gave up that tutorial... I'll have to take a second look at it.
@chrisbiscardi
@chrisbiscardi 8 місяців тому
For what it's worth, I've seen a lot of people bounce off of that Conway's game of life wasm introduction. I think that tutorial should be much simpler and the next levels should be dependent on what a user wants to do, for example integrating bindgen with existing js libraries, doing some *useful* computation, or directly going to wgpu or leptos (or yew, etc).
@siddharthd6141
@siddharthd6141 3 місяці тому
just wanted to ask a quick question as a person of mostly backend which books have you read primarily to understand the concepts like these ??? are there any list of books? or it's just a few books which gives the impact?
@AirKiter
@AirKiter 7 місяців тому
Lol, my first language was ActionScript as a hobby when I was 14. Now I do JS/TS professionally, I wish I had time to change to Rust though.
@katopz
@katopz 8 місяців тому
Nearly same exp but I'm did everything (including KV, DB) on cloudflare worker which I can POC in typescript and then RIIR in Rust later.
@michaelschnell5633
@michaelschnell5633 Місяць тому
I just did a research regarding doing a GUI in Rust. I found that this still is rather bleeding edge, while many other other aspects in the rust universe seem much more advanced. In fact I would like to see a single well supported tool that can be used for both local UI (Desktop and portable) and for WEB UI. I do see that it does not make much sense to only provide a "one fits all" workflow that results in a program source code runnable everywhere. But for very simple (ugly) GUIs, this should in fact be possible. For more complex applications the tool should provide a decent workflow for each OS / widget library (including DOM). Optionally a WYSIWIG Gui Builder should be provided. On top of that, a well defined internal (e.g. Websock based) API should allow for easy and flexible separation of server based and client based parts of the user application (both of course done in pure Rust code.) Is something like this only possible in a payed product or will the community be able to provide something like this (in contrast to the many smart but bleeding edge projects currently in the works) ?
@Wanderlust073
@Wanderlust073 5 місяців тому
Good vid - interesting about keeping two languages fresh
@wendellhatcher7011
@wendellhatcher7011 5 місяців тому
Go was fiiinnnneee!!! Go is great!! 😂😂😂
@ywenp
@ywenp 5 місяців тому
Interested to hear more about Rust for audio processing :)
@chrisbiscardi
@chrisbiscardi 5 місяців тому
For me it's mostly the Symphonia crate alongside some metadata to pull timecode out, the writing out fcpxml to pull into davinci. I'll put a video on my list for it.
@gkvikram
@gkvikram 8 місяців тому
is there rust ecosystem for vst plugins to use with DAWs on macs or does has its own better DAW and ecosystem matching industry standards in music space
@chrisbiscardi
@chrisbiscardi 8 місяців тому
I haven't built any VST plugins myself, but if you go to lib.rs there's definitely bindings to vst APIs. There's also larger synthesizer type crates like hexodsp lib.rs/crates/hexodsp lib.rs/search?q=vst
@KohuGaly
@KohuGaly 8 місяців тому
Yes, but actually no. VST API is unfortunately so closely coupled to C++ that it's very unergonomic to use in Rust. Overall, Rust's audio ecosystem is one of its weakest.
@binitrupakheti4246
@binitrupakheti4246 8 місяців тому
Now I'm rewriting everything in zig
@chrisbiscardi
@chrisbiscardi 8 місяців тому
nothing wrong with picking a language you like and using it, zig or otherwise.
@AFGautonompunk
@AFGautonompunk Місяць тому
have you looked into nix os ? i was thinking of, otherwise it's a comprehensive story, thanks for sharing!
@chrisbiscardi
@chrisbiscardi Місяць тому
Enough that I know of it and what it does, but I don't really run linux on desktop so I haven't spent much time with nixos
@vgsuresh
@vgsuresh 8 місяців тому
thanks a lot for sharing your experience, very helpful. Between I head over to your website immediately in the middle of video , seems like there is a bug, I didnt entered my anything and hit enter, it successfully subscribed me , with the message `subscribed` . Seems like empty check is not working or missing.
@chrisbiscardi
@chrisbiscardi 8 місяців тому
Ah yeah, I missed a required tag on the form! Thanks, taking care of that right now
@RedStone576
@RedStone576 7 місяців тому
amazing
@mcgameboy2188
@mcgameboy2188 2 місяці тому
I want that plush on the thumbnail!
@paw565
@paw565 7 місяців тому
I don't understand a lot, but it was very interesting video.
@HermanWillems
@HermanWillems 7 місяців тому
Yes rust is empowering. Why? It's horizontal to vertical. You can go low level to high level. And wide implementation from supercomputers to front-end web. :)
@alexleung842
@alexleung842 8 місяців тому
I'm praying for Terraform CDK in Rust
@NiedzwiedzWojtekMusic
@NiedzwiedzWojtekMusic 8 місяців тому
you mention at the beginning of the video that you're editing your videos in written-in-rust software? can you elaborate on that?
@chrisbiscardi
@chrisbiscardi 8 місяців тому
yeah, I didn't replace software like davinci resolve for the final editing process, but I use some Rust crates to process audio and remove silent portions of a recording, then spit out an xml file that I can import into davinci to finish the edit on. I also use Rust for generating subtitles and transcripts when necessary.
@rickmedina4082
@rickmedina4082 8 місяців тому
How does it feel in terms of productivity writing Rust vs let's say Javascript/Typescrip/Go (I know it depends on experience, familiarity, etc...but trying to get some reference point).
@chrisbiscardi
@chrisbiscardi 8 місяців тому
For me Rust is just as productive as any other language these days. The main comparison I'd make to the languages you mentioned is generally the Rust type system and compiler help me write better code and find issues earlier. The Rust type system and compiler are high-signal, reliable sources of information about my program and actually when teaching Rust I have to find ways to convince people who have lived in these other ecosystems to even read the errors because they've gotten so used to them not being reliable sources of information. This is in contrast to the information I get when writing JavaScript, where error messages can often be skipped or point in the wrong direction. When I wrote production TypeScript I felt like I was double checking the type system to make sure its doing what I thought it was doing. I don't dislike TypeScript, but the type system being built the way it is on top of JavaScript doesn't give me the same level of confidence as type systems that are built into languages from the beginning. I'm not saying Rust is better than these other languages, but I do feel more confident in my programs when I'm writing Rust.
@vladyslavkarpenko9372
@vladyslavkarpenko9372 6 місяців тому
​@@chrisbiscardiTypeScript problem that you've mention is exactly what I had experienced a lot of times. TypeScript can give you a false confidence in broken code or push you back from other actually normal code. If the types you write has errors or not completely describe factual data structures in the code - you can't be confident in anything. At the end of the day you must never be confident in TypeScript even if your code is perfect... because you never might be confident that programmer of some package among dependencies had properly defined TypeScript interfaces. TypeScript was born for the purpose to deal with large JS codebase problems inside one corporation. It does its job well in that specific situation : - all code and types is yours - for every 3rd party dependency you has enough resources to completely check its code and types - checking the types/interfaces that you may rely on during automatic code checking, is a manual task. TypeScript paradox : to be confident in typechecker, you must check all the types against code manually beforehand. It's kind of writing tests: you write some type hints to test against it, but if you made mistakes in tests itself - be ready for the all kind of falsy test results.
@weiSane
@weiSane 8 місяців тому
I see rust i click 😊
@ETBCOR
@ETBCOR 8 місяців тому
Nice video. I've been friggin loving leptos lately, it's been great for building my personal site!
@chrisbiscardi
@chrisbiscardi 8 місяців тому
nice! I'm looking forward to 0.5. Between Server Functions not needing registration in the last version and passing scope around going away in the next version, I'm feeling good about how much progress is happening.
@erikyoung5139
@erikyoung5139 8 місяців тому
I love the idea of Psychological Safety in regards to programming language choice.
@crusader_
@crusader_ 8 місяців тому
What would you say was harder, learning to write *effective* Go or learning to write proper Rust?
@chrisbiscardi
@chrisbiscardi 8 місяців тому
I guess it depends on what you mean by "effective go" or "proper rust". A program has to do what its supposed to before it can be effective, and I found myself spending a decent amount of time in Go-land trying to make sure I covered the cases I needed to, or used interfaces correctly. It felt like Go was easy to pick up but hard to become a true expert in, whereas I feel like Rust is a bit different. When I write Rust I'm confident my programs are working correctly, but that also means the compiler is checking my work (borrowing/ownership/mutability/etc) more than it was in Go. That has the benefit of meaning I can rely on the compiler/error messages/etc a lot more, but it also means more wrong programs won't compile. I think becoming an expert in any language is a lot of work, but not necessarily harder work for one language or another. The amount of work depends on what your past experience is.
@stepannovotny4291
@stepannovotny4291 3 місяці тому
Brilliant overview, but damn it, I still need to use C for embedded (partially because SDCC is not SDRC) ...jeez!
@MohamedOmar-zw2bq
@MohamedOmar-zw2bq 2 місяці тому
Awesome 👏
@pierreollivier1
@pierreollivier1 8 місяців тому
Your video was really, good and i'm impressed with the work you made, as a mainly low level C/Cpp/ASM/Zig aficionados, I've always despised web, for the reason that most of the stack is typeless which I hate, because If you were to look at my code, everything is littered with assert() everywhere, but I've been tinkering about learning rust, to contribute to the text editor that I use, and seeing that this might also be a step in the door to also be able to do web stuff, rust start to be very compelling. Thanks for sharing your story.
@user-qi5kb5th7y
@user-qi5kb5th7y 6 місяців тому
yo, what's the reason to replace javascript CLIENTSIDE?
@jonkoenig2478
@jonkoenig2478 6 місяців тому
I also use rust server side, but using it for web client side seems odd to me. JS frameworks or server side rendering is better imo.
@arthurcuesta6041
@arthurcuesta6041 7 місяців тому
Would you recommend Rust to someone learning programming for the first time? The possibility of writing both web and desktop applications as well as the possible speed gains made me interested in this language. Would becoming proficient at it mean I can grasp most programming concepts, or is Rust lacking in specific departments? I manly want to learn as a hobby and tool for myself, so time is not a problem. Thanks!
@chrisbiscardi
@chrisbiscardi 7 місяців тому
In my opinion, learning Rust would give you access to build the widest possible set of applications that a single general-purpose mainstream language can give you: everything from operating systems, to embedded software, to web applications, and games. Any first language tends to be the hardest to learn, but Rust is no different than others in that respect. It being your first language might even make it easier for you to learn Rust compared to someone who learned another language first because you won't have as many ideas about "this is how programming is supposed to work" from that other language. That said if you get into specific domains you will find a lot of domain-specific languages too. If you want to write web applications, Rust will help you write servers, APIs, and render web UI, but you'll still find uses for CSS for styling web applications and understanding HTML will help you write better and more usable web applications. Talking to databases can be done with a rust-only library, but understanding SQL will also help you write better database queries. If you want to write GPU-based programs Rust can set up all of the data and pipelines, but you will have to also learn a shader language like wgsl. Basically, Rust is a general purpose programming language and can be your default choice for a lot of things, but you will also run into domain-specific languages as well that are meant for more specific purposes.
@arthurcuesta6041
@arthurcuesta6041 7 місяців тому
@@chrisbiscardi thanks for the thorough response!
@darkenblade986
@darkenblade986 Місяць тому
after building in rust did you feel that the website was more resilient? do you have any data on if it crashed / errored less? (no disrespect just curious)
@chrisbiscardi
@chrisbiscardi Місяць тому
Over time I've noticed that issues with data are basically gone. I never have to worry about a field existing or not existing, which I often had to double check in the live site when using JavaScript. Leptos is also getting better and better. The 0.7 release is really exciting and I've been working with the Islands features more and more which reduces the payload to the browser and such. The servers have been incredibly stable. They don't randomly go down at all and any issues in the application logic are pretty easily traceable to an .unwrap() or similar. They also use very little resourcing. I'm at a conf right so so don't have any numbers, but I also changed the architecture on a few sites from being static to running a Rust server and it's been just as low effort operationally.
@unknown-qp8pk
@unknown-qp8pk Місяць тому
I'm learning Haskell as my first language, and I feel a bit sad about the fact that few people try it, I don't know how devastatingly impracticable it makes the language. I intend to learn Rust after; and also some mainstream languages for the sake of having to, but it's still hard to swallow the pill that I can't develop with the language I want, and the thought of the initial difficulty of Haskell being the reason a lot of people get repelled by it is disturbing, it could have been a pretty powerful language, but since the very beginning it was "too much of a hassle to deal with", instead they would prefer to follow the easier path, even if they could have avoided a lot of problems and learn important concepts.
@chrisbiscardi
@chrisbiscardi Місяць тому
Haskell is interesting as a language and I'm happy I learned it because it definitely affected my view of other languages. You can definitely do productive things and get paid to do so, but the pool of people paying for Haskell work is much smaller than other languages, so if "getting a job" was the task, I wouldn't suggest Haskell. IMO the initial difficulty is really more of a documentation/teaching material issue added to the fact that most people's first language isn't purely functional, so they have to "unlearn" things in addition to "learning" things.
@ivy8483
@ivy8483 3 місяці тому
How did you learn rust? I want to learn it as a beginner 🙏🏽
@ejazahmed4609
@ejazahmed4609 8 місяців тому
What do you use for auth in rust?
@chrisbiscardi
@chrisbiscardi 8 місяців тому
I'm using aws cognito on this project. I try to not write core auth services in-house.
@sreejishnair5922
@sreejishnair5922 7 місяців тому
Have you tried Zig? If so, how you can compared it with Rust.
@chrisbiscardi
@chrisbiscardi 7 місяців тому
I left some comments about zig in another reply when someone asked. tldr; I don't really have anything against zig, but it doesn't seem targeted at a problem I have so I don't really intend to use it at this time. ukposts.info/have/v-deo/rnxjonhoja2JkoE.html&lc=UgzSb-1nrAPkAWmQXbl4AaABAg.9tROJrnyJmP9tRRrnG3znN
@thedoctor5478
@thedoctor5478 3 місяці тому
I feel like an actually good web framework for creating responsive UIs in canvas is just waiting to be created.
@chrisbiscardi
@chrisbiscardi 3 місяці тому
Maybe. Accessibility in a canvas app is significantly harder than using a dom
@thedoctor5478
@thedoctor5478 3 місяці тому
oh I know. it's pure pain. I guess we should stop describing the problem through before this turns into a top masochistic git repo of all time.@@chrisbiscardi
@worskaas
@worskaas 7 місяців тому
Now to rewrite everything into Zig language
@JheregJAB
@JheregJAB 3 місяці тому
Just commenting a few months later that the AWS SDK is now officially supported for general use as of November, 2023.
@nyxalexandra-io
@nyxalexandra-io 8 місяців тому
inclusivity is one of my favorite parts of the Rust community as well :D most Rust devs I've met are very nice as well
@whodatboywhohimis
@whodatboywhohimis 6 місяців тому
This video inspired me to do the same
@johndavid3114
@johndavid3114 8 місяців тому
Bro, how do you have time to do all this?
@chrisbiscardi
@chrisbiscardi 8 місяців тому
producing videos? I worked up to it for years before being able to make videos at the pace I can today.
@erikyoung5139
@erikyoung5139 8 місяців тому
@@chrisbiscardiin conjunction with all the work you do for the content of your videos. In this case, rewriting all your tools.
@YannMetalhead
@YannMetalhead 5 місяців тому
Good video.
@realcoderdood
@realcoderdood 3 місяці тому
Well, great video but it was so overwhelming that all I can think now is to postpone Rust. :(
@mrcjm
@mrcjm 7 місяців тому
Did you see any benefits in switching to rust? Like performance and loading times?
@chrisbiscardi
@chrisbiscardi 7 місяців тому
The largest benefits for me relate to the maintainability of the codebase. When I come back to the project, it still works and I can rely heavily on the type system to make sure that I can refactor without breaking the site. The performance of the site is largely comparable to any major javascript-based site, which was enough for me to switch to gain the maintainability improvements. Part of the switch for me is also a bet on the future of the technology. Its "good enough" today IMO, but Leptos also has an "islands architecture" branch that would cut out the majority of the wasm payload for me too.
@mrcjm
@mrcjm 7 місяців тому
@@chrisbiscardi Very good to know. I was wondering about performance to estimate if the cost/overhead of switching is worth it. Seems unlikely to take off unless someone is already deep in the rust ecosystem. Thank you for your insight and the video
@chrisbiscardi
@chrisbiscardi 7 місяців тому
@@mrcjm yeah, I mean, without knowing anything about what you're using or the architecture, or what problems you need to solve, its pretty impossible it make any decisions or suggestions about whether to use anything. If you're wondering about performance, my best suggestion is to build something small but comparable to what you already work with and see what the differences are. The performance characteristics of wasm are different than javascript (for example, wasm can be compiled as it streams down from the server, whereas javascript generally has to be fully downloaded before compiling and running)
All Rust features explained
21:30
Let's Get Rusty
Переглядів 267 тис.
Why Rust is NOT a Passing Fad...
8:54
Travis Media
Переглядів 19 тис.
когда одна дома // EVA mash
00:51
EVA mash
Переглядів 2,4 млн
Microsoft Phi-3
9:25
Data Science Gems
Переглядів 15
The Yew Tutorial
22:41
chris biscardi
Переглядів 34 тис.
Why i think C++ is better than rust
32:48
ThePrimeTime
Переглядів 250 тис.
Rust on ESP32 - Getting started
14:09
Floodplain: Streaming, Rust and Embedded
Переглядів 15 тис.
The Truth about Rust/WebAssembly Performance
29:47
Greg Johnston
Переглядів 165 тис.
Interview with Senior Rust Developer in 2023
9:46
Programmers are also human
Переглядів 607 тис.
So You Think You Know Git - FOSDEM 2024
47:00
GitButler
Переглядів 871 тис.
The purest coding style, where bugs are near impossible
10:25
Coderized
Переглядів 795 тис.
Using Zig | My Initial Thoughts on Ziglang
8:57
ThePrimeagen
Переглядів 254 тис.
Go vs Rust: Which To Learn In 2024?
6:27
Kodaps Academy
Переглядів 121 тис.
Как открыть дверь в Jaecoo J8? Удобно?🤔😊
0:27
Суворкин Сергей
Переглядів 765 тис.
Нужен ли робот пылесос?
0:54
Катя и Лайфхаки
Переглядів 781 тис.
The Worst Product I've Ever Reviewed... For Now
25:04
Marques Brownlee
Переглядів 7 млн
Нужен ли робот пылесос?
0:54
Катя и Лайфхаки
Переглядів 781 тис.