Learned a lot about rust on this stream. Thank you for the presentation, Greg, you are a very good educator.
@nhieljeff21562 жыл бұрын
This is it ryan! This is the sign, if you were waiting for one.
@AlgorithmAlloy2 жыл бұрын
The sign that he will join my 3D printing startup that is doing everything we reasonably can in Rust? But seriously, Greg, reach out to me at an email I’ll message soon if you’re interested at all in working on something (in pure rust) that will expand by orders of magnitude the amount of people that can access 3D printing.
@Fanaro Жыл бұрын
Damn. This podcast was just so instructive, it had basically all possible approaches (bottom-up, top-down, etc.), with beginner-friendly content and expert level nuances. You two are world-class experts by a thousand miles. Would donate if I could. Please do more of these!
@danishafzalkhan2 жыл бұрын
Ryan is a true craftsman! Love your work dude, respect.
@Fanaro Жыл бұрын
3:08:40 "Assembly language is simple" is indeed the best counter-argument against the simplicity selling point XD
@abrahamanakagung42792 жыл бұрын
I learn a lot about Rust and system programming language, etc. Thanks Ryan, Greg!
@mhhmm__2 жыл бұрын
thank you Ryan and Greg, this is absolutely a revolution and I hope leptos can go big in the future. I'm trying it right now, learn a lot from your talk
@tejask2 жыл бұрын
I absolutely loved this. Thank you for doing it! ❤
@sosokoplatadze2 жыл бұрын
best content bravo, it’s my stack. solid rxjs and rust, laptos looks cool also
@viniciusataidedealbuquerqu28372 жыл бұрын
greg is an awesome teacher, could easily win some money in training platforms.
@ykhi2 жыл бұрын
You guys are amazing! It was super interesting
@johannesmerkt19722 жыл бұрын
Ryan, greg you guys are my heros!
@Dazza_Doo Жыл бұрын
A pointer in Rust, and you can find this in any of the Rust materials, and I've seen it referenced in C# tutorials. Stack and Heap have a say on why a pointer is needed. Primitives are put on the Stack, and complex types are placed on the Heap, as the type can grow or shrink, The Stack is a fixed size. So a pointer is a stack reference to the Heap location of the data. The stack data on the pointer contains more information than just its location, it would contain the Size of the Data and the Max size that the data can contain. When you make pointers or share pointers, you are using the Stack and the Stack has the information on about that data on the Heap. In Rust primitives can live on the Stack and makes sharing so much easier, in fact some values are copied - just because it's faster (like an Integer (i8, i16, i32, i64 / u8, u16, u32, u64) please note you can use the usize and isize to make a default Integer based on it's environment. As a Rust-ling (new to Rust), the Analyser and clippy will check over my work as I type and try and help me fix errors. Cargo check will not compile code, but will check it and if you wish there is a default document formatter, so you can format as you compile or save a file, like most languages these days.
@JLarky2 жыл бұрын
1:30:14 re-creating Elm with Rust
@phene-449 Жыл бұрын
i'm really looking forward to using this when it's more stable. i saw in the latest release that islands can be used now.
@hamburger-fries2 жыл бұрын
Wonderful job! Great content!!!!
@bigmistqke2 жыл бұрын
I see a lot of potential in wasm-based frameworks for cross-platform development like react-native. IIRC leptos did an experiment w qt-bindings already.
@perc-ai2 жыл бұрын
where
@bigmistqke2 жыл бұрын
@@perc-ai i think I saw it on their github, just a proof of concept tho
@perc-ai2 жыл бұрын
@@bigmistqke yeah i just learned you can make mobile apps with rust using rust skia bindings in dioxus... rust is changing everything
@bigmistqke2 жыл бұрын
@@perc-ai o damn, dioxus does really look cool! Thanks for the tip 👍
@perc-ai2 жыл бұрын
@@bigmistqke yep np we are using it at work. They made a big leap through in the last 24hrs that allowed them to memoize nodes several times faster and now it is one of the fastest web libraries in the world
@mfpears2 жыл бұрын
2:00:00 Tradeoff, fine-grained code splitting vs fine-grained reactivity
@nonlinearsound-0012 жыл бұрын
Describing a system languages reference might also be like: By saying &variablename you are getting the memory address of that object in memory and as you know the type/structure of that object in memory you can access its members like variablename.count as your compiler knows that it is a structure with a count member of type Int32 for instance. That Int32 member will start at a certain offset from the objects memory address and the compiler knows that from the struct definition earlier in the code. So, by parsing the code it knows that it needs to get the memory address from that reference and add the offset to get to the data in the In32 member of the object.
@theLowestPointInMyLife Жыл бұрын
A reference is basically just a const pointer that can't be null, its a conceptual wrapper around a raw pointer. It's also dereferenced implicitly while * syntax is needed to deref a raw pointer.
@arthurararuna Жыл бұрын
Is this available via Podcast stream? I'd love to listen to it without needing to be in front of a PC... 😕
@Jianju69 Жыл бұрын
Is there a TL;DW? What frameworks are recommended?
@RobertoOrtis2 жыл бұрын
I am currently writing a graphql api with async-graphql in rust. Can I use leptus with it or it would not be a good thing?
@TomasSandven2 жыл бұрын
I never understood the complaint about Rust build times before now. Rust has always compiled snappily on my Linux desktop. I don’t think I’m exaggerating when I say that Greg’s macbook is taking 100 times longer to compile Rust than my system is 🤯 What’s up with that?
@NathanHedglin2 жыл бұрын
Windows file system maybe?
@Kinnoshachi2 жыл бұрын
Have you had any experiences utilizing delta-rs for data backend?
@teragram800610 ай бұрын
@3:47:45 - in defense of web components, they're really not at all a terrible option. they're not the best fit for every project of course, but they ARE a standard and do have their use cases. also, they're a good way of learning how to write code for the entire frontend, not just javascript-centric code. this talk really highlights how frontend development is now in two camps: "classic" vs "JS". or frontend of the frontend v backend of the frontend. and let' be honest -- it's largely react's doing (add it to the list of problems Facebook gave humanity🙃) I really like signals, they're an elegant solution. but as someone who started in web dev before react was even a thing, it's annoying how there's now this dismissive attitude towards core web standards. that's exactly why the platform HAS to have its own native options that push back against whatever is popular. or else a third party solution -- whether react or another -- will be treated as the default simply because younger devs find it "easy"..
@gavinh78452 жыл бұрын
I think Elm has the right model, "ports" to communicate with JS and stuff coming from JS must be parsed/validated. That way, everything in Elm-land is safe.
@majorhumbert676 Жыл бұрын
Elm is awesome and I'm looking forward to the Roc language
@jcbritobr2 жыл бұрын
Egui is also very good
@gotoastal Жыл бұрын
Title contains a typo: UI's should be UIs. Apostrophes are for contractions & possession …they don’t make words plural.
@org.photonsphere2 жыл бұрын
Greg, you're a very patient person. 🙄
@sarcasticdna2 жыл бұрын
Timestamps please
@TJ-hs1qm Жыл бұрын
PureScript?
@mfpears2 жыл бұрын
3:29:00 The guy later replied to his own tweet acknowledging Qwik
@ryansolid2 жыл бұрын
Yeah I saw that. But my point in my response to him is that it is arbitrary. Like there is a ton of innovation going on all the time. Where you draw the line is very arbitrary. Like React can't do a number of things due to architecture intentionally or not, relevant or not.
@mfpears2 жыл бұрын
@@ryansolid yeah, my comment is more like a side note. The fact that he had that attitude to begin with was the interesting thing. Btw, currently writing an article called "I changed my mind: Angular needs a reactive primitive." You were a big reason I changed my mind. Lots of diehard RxJS fans are going to read it so that will be exciting. But I think RxJS compatibility is still essential for asynchronous reactivity today.
@alisterlee56432 жыл бұрын
Only one thumbs-up is not enough.
@JohnPywtorak2 жыл бұрын
Mitosis and papanasi "perhaps optimize for each framework" - that's wishful thinking and pipe-dream. You should have them on, because it seems like a really bad idea. The only use case I can see worthwhile is mass migrating from one to another, use it and throw it out once done. It looks syntactically more like React, because Solid looks like React. It boils down to an agnostic that is really just React. If I want to be generic I am just going to use React
@theLowestPointInMyLife Жыл бұрын
Rust is by far the hardest language I've tried to pick up, I can usually pick something up in a few hours or days because your just translating concepts. Rust has a bunch of new concepts you need to learn, and it's all dumped on you from the start really.
@MiChEaLaDeNuGa-oj6wb Жыл бұрын
OMG , me too 😅😅 when i started rust i was like this shouldn't take more than a day , i just need to know how to do this or that and that dude i was wrong 🤣
@nottellinganyoneanything2 жыл бұрын
Even with the framework this borrow checker looks like a hurdle, like something that is going to make the code impossible to understand. Not sure that the benefit of it is worth it - like on a simple counter the guy needed time to understand what is going on... how do you write real software with this!? Feel like C++ complexity cubed and then multiplied by 2.
@julkiewitz Жыл бұрын
Isn't using React only for server-side rendering kind of absurd? I mean I thought the main reason why people use Javascript on a server is so that there can be some reuse with the front-end. If you want to do server-side rendering you can accomplish that in any language. In fact reusable, composable templating libraries have been around since forever. Web is so weird. It's like a never-ending cycle of coming up with solutions that are worse than the problems that they were supposed to solve and then solving those new problems with whatever was out there before.
@JohnPywtorak2 жыл бұрын
It's time to let go of the performance differences between React and everything else. All kinds of reasons are thrown out and then after hearing them all, one thing emerges as the real argument, X framework is more performant than React. It is now hyperbole. Create your case to use something else, somewhere else. Choosing React at least for me was never about performance. Choosing Solid for me is not about performance.
@CanRau2 жыл бұрын
To me HTML obviously is a language, it’s just a markup language instead of a programming 💁🏻♂️
@KManAbout2 жыл бұрын
It's a programming language just a subset. That being markup. It's just limited.
@wtfisgoingon5354 ай бұрын
Window management on MacOS is so stupid haha
@wagnermoreira786 Жыл бұрын
you had me until you said snake case is the default
@beachneosculpordwarf2 жыл бұрын
Can rust hipsters chillllll, web UI's is the last place u wanna use rust for, the state of web is simple enough and my man Typescript is awesome, just stop it man, stop rustpillin web, well or write a transpiler to convert js/ts to rust -> Microsoft has already tried to push Blazor with DotNet being as much more competent framework and it kindda failed -> aaand C# is so much easier to train new devs on teams, as if u know any other class based compiled language == u can write C# by just copying the patterns of more senior devs without changing model on how language under the hood functions; Please just invest ur incredible energy to writing something that has a use case or just write a transpiler, wasm is cool, but my god DevEx in Rust is just horrible if you need to move fast
@Beysl2 жыл бұрын
You didn‘t get the point. Isomorphic stacks are great, because you do not have to switch context. All devs can work on all parts of the stack. That is why we execute JS in the backend. Instead of moving the FE language to BE, you can (don‘t have to) also take the other approach. This of course does not make sense in all / most contexts right now, but certainly in some. You also overplay the difficulty of Rust and you ingore, that some of the difficulty will prevent you making mistakes which will safe you time later. Noone says it makes sense to blindly use wasm right know, JS is still more optimal (several things will change, so once wasm can manipulate the dom / browser apis directly and the memory management of wasm is optimised, this will look different). But if you have BE focused projects, you can use Rust in the FE with minimal performance impact right now. Just that the ecosystem is much much younger. This was all clearly discussed in the video. Also the Blazor project is on a whole other level than framework like leptos (which is also discussed in the video, see Q&A section).
@beachneosculpordwarf2 жыл бұрын
@@Beysl That was fair, I guess I'm getting a bit annoyed about people suggesting to put Rust everywhere, and my comment addresses the video not too well. I see a point of using Rust on a backend for a big corp to minimize costs due to low memory footprint and safety Rust has. I agree about isomorphic stacks stacks, but they primarily used by start-ups, implementing an app like that would take much, much longer if you pick Rust over JS, not only tooling not there, devs are hard to come by, and language itself adds huge complexity, not even talking about compile time and terrible docs some of the packages have. At my company we've got some of the device micro-controllers written in Rust which are now being refactored to Kotlin, because Java devs are easier to come by and since the dude left his experiments only created more problems. I would pick dotnet, go, or js over rust to use on the backend in 95% of the companies. Benefits just aren't there yet for most projects. There are way too many stories out there getting onto the Rust train too early.
@Beysl2 жыл бұрын
@@beachneosculpordwarf thats also fair. I fully agree that Rust is not common at all in the corporate world and time will have to tell if it ever will be. Its not a simple language. I think in many domains the longterm stability could still bring enough benefit, maybe not. I certainly expect that it will start replacing projects which would have been started in C++ more. But certain things like game engine with decades of code in it will not be „rewritten in Rust“. If it will ever be popular in the web space I am quite sceptical except for applications where wasm makes sense (things like figma, games etc). Leptos is not trying to replace spring. Its an ispmorphic webframework for Rust and should be looked at as exactly that. Its interesting, fun, very new and open source.
@BosonCollider2 жыл бұрын
It really depends on what you want to do. If you want to just write a web shop, do it in solid-js or qwik. If you want to write a page that will run a 3D game or do anything that requires heavy number crunching, then Rust WASM for the entire page makes a lot more sense. Js has some acceptable libraries for number crunching or 3d rendering, but you will be a lot more productive in Rust for those things. The other aspect is if you want to write something that runs both natively and in the browser. Javascript has react native, but it is not lightweight. Rust has libraries such as Dixoxus (which has a VDOM approach while still beating Leptos and Svelte in browser benchmarks and where supporting resumability is an option), which is an excellent web frontend, but which can also be run natively on desktop, on mobile, or inside game engines using wgpu, and be much faster there than a pure web frontend.
@beachneosculpordwarf2 жыл бұрын
@@BosonCollider Well this is at best 5% - 10% of the web and not everyone gets lucky to even work on those projects, but even then ecosystem around it is so young that you would ask yourself 100 times if you really want to dive into the rabbithole and be a pioneer for any kind of commercial application. WASM as an extension of what we have now is super cool. Typescript/Javascript ecosystem is way too nice and competitive to lose all the packaging/community support. But even then if suppose u are making a game, you would be prone to look at the existing game engines and not at reinventing the wheel, Bevy is prolly the only mature enough engine u could use. Yet, is it gonna beat Unity/Godot? I just don't see it happening. It's cool to see language capabilities stretched it's a multi-purpose language after all. I just want ppl to focus on making Rust cool for the API's for instance. Like compare Rocket(the most popular Rust API framework) to Dotnet(C#) or Encore(Go). The C# and Go framework ecosystems will take u 2x further, 10x faster. And given memory consumption of Rust it could save thousands of $'s for ur company. Making client side app a bit faster won't save much money for me nor my customer. And JS performance is acceptable for most projects and as you mentioned WASM modules, those could be imported into js easy if so required.