The real question is why the javascript implementation had O(n^2) scaling and the wasm/rust version was O(n). Performance aside, I like all of the other benefits.
Because Javascript doesn't use types and thus the language can't optimize as easily and also has garbage collection. You can actually do types in Javascript (that is why WebAssembly exists, it predecessor asm.js did this) it would probably have been faster. Typescript might be one way to do it. A Typescript variant exits you can compile to WebAssembly so you don't have garbage collection either.
Guessing the unwrap has to be there at 19:12 because as_document() returns an Option and you're returning a result, you can just convert it to a Result and you won't have to unwrap.
If anyone is legit trying to implement something like this, and not just watching this for kicks: you don't need an older version of webpack to get WAsm to work, you can use webpack 5.x.x, but you need to enable experimental features (I've never had a single problem with it, works like a charm). This was a problem for me cause I was using packages that required webpack 5.x but I wanted to use WAsm alongside those frameworks, and this is how I managed to fix it.
Does it matter which language you use to compile to wasm from? In terms of performance - will different languages compile to binaries compiled differently? I've seen AssemblyScript mentioned on wasm site
19.14: unwrap probably doesn't have to be there. From a rough reading. if the problem is that it's an option, you can use .ok_or(MyErr::new())? As long as MyErr implements Fail
Now I'm wondering how are these slides made. Is it carefully crafted powerpoint/slides/keynotes, does she compose those layered texts as images? Could you do it in something like reveal.js?
I make slides in Google slides. The text is just layered text boxes, and the handwritten stuff is drawn on iPad in Procreate. I _have_ tried make slides for some of my talks in reveal.js, but unfortunately my CSS skills are lacking to get the same effect :/
Presentation tool is Google Slides. The slides are self made. I am assuming by her because they share some features with those zines she showed in the first few minutes.
Indeed, but of the once-off variety... subsequent additions of additional Rust code will be very easy in comparison. Same with later projects that work in a similar way. Most of the difficulties were learning how to do the various processes - now that she knows how to do them, doing it again won't be anywhere near as difficult
Everything looks like a hassle until someone makes it simpler. Every framework and every library you ever used wasn't so simple from the beggining. All those things that frameworks now do for us, people had to write by hand, until someone got the idea on how to make it simpler. This is exactly the same, wasm is new technology and people have yet to discover what it can do and how to simplify development with it.
@@dominikotocan1348 wasm bindgen IS the thing you're referring to. It can't really be much simpler than that without it losing functionality. People can maybe write a custom language to abstract wasm a bit but that's reinventing the wheel considering emscripten and wasm bindgen exist already. Only thing that is currently being worked on, AFAIK, is adding more types to WASM as it currently only supports 3/4 numeric types. Opt-in-only GC is also being worked on to allow abstract types like lists, arrays and strings.
These are honestly the most stylish slides I ever saw!
I'm actually obsessed with this talk. Its just so warm to watch 😅
Wow, those slides are really pretty! Great presentation.
This was a damn good talk. It helped a lot with putting these pieces together conceptually.
I really like the way she speaks. It's like a friend telling you stories.
The real question is why the javascript implementation had O(n^2) scaling and the wasm/rust version was O(n). Performance aside, I like all of the other benefits.
Because Javascript doesn't use types and thus the language can't optimize as easily and also has garbage collection. You can actually do types in Javascript (that is why WebAssembly exists, it predecessor asm.js did this) it would probably have been faster. Typescript might be one way to do it. A Typescript variant exits you can compile to WebAssembly so you don't have garbage collection either.
@@autohmae Types do not make the difference between n^2 and n.
Cache limit is also a thing to consider when interpreter is running in the background
Probably some implicit copies.
The masterclass in making slideshows!
thank you irina, great talk and beautiful slides!
Guessing the unwrap has to be there at 19:12 because as_document() returns an Option and you're returning a result, you can just convert it to a Result and you won't have to unwrap.
If anyone is legit trying to implement something like this, and not just watching this for kicks: you don't need an older version of webpack to get WAsm to work, you can use webpack 5.x.x, but you need to enable experimental features (I've never had a single problem with it, works like a charm). This was a problem for me cause I was using packages that required webpack 5.x but I wanted to use WAsm alongside those frameworks, and this is how I managed to fix it.
I loved this talk so much.
Does it matter which language you use to compile to wasm from? In terms of performance - will different languages compile to binaries compiled differently? I've seen AssemblyScript mentioned on wasm site
19.14: unwrap probably doesn't have to be there. From a rough reading. if the problem is that it's an option, you can use .ok_or(MyErr::new())?
As long as MyErr implements Fail
If it's a result with a non Fail error, the you can use map_err
Missed opportunity to call this talk "There and back again".
hahhaha definitely a screw up on my end
Now I'm wondering how are these slides made. Is it carefully crafted powerpoint/slides/keynotes, does she compose those layered texts as images? Could you do it in something like reveal.js?
I make slides in Google slides. The text is just layered text boxes, and the handwritten stuff is drawn on iPad in Procreate. I _have_ tried make slides for some of my talks in reveal.js, but unfortunately my CSS skills are lacking to get the same effect :/
The slides are so pretty! Is it all custom is it a nice presentation tool?
Presentation tool is Google Slides.
The slides are self made. I am assuming by her because they share some features with those zines she showed in the first few minutes.
What software/ platform is used to make those slides? JavaScript?
google slides, and drawings are done in Procreate on iPad.
@@IrinaShestak thanks. Looks really nice. Really good presentation. Appreciate your reply
looks like a hell of hassle '__')
Indeed, but of the once-off variety... subsequent additions of additional Rust code will be very easy in comparison. Same with later projects that work in a similar way. Most of the difficulties were learning how to do the various processes - now that she knows how to do them, doing it again won't be anywhere near as difficult
@@mduckernz From what I understand their plan is to have this eventually be part of WebAssembly so it 'just works'
Everything looks like a hassle until someone makes it simpler. Every framework and every library you ever used wasn't so simple from the beggining. All those things that frameworks now do for us, people had to write by hand, until someone got the idea on how to make it simpler. This is exactly the same, wasm is new technology and people have yet to discover what it can do and how to simplify development with it.
@@dominikotocan1348 wasm bindgen IS the thing you're referring to. It can't really be much simpler than that without it losing functionality. People can maybe write a custom language to abstract wasm a bit but that's reinventing the wheel considering emscripten and wasm bindgen exist already. Only thing that is currently being worked on, AFAIK, is adding more types to WASM as it currently only supports 3/4 numeric types. Opt-in-only GC is also being worked on to allow abstract types like lists, arrays and strings.