Placeholder Image

字幕表 動画を再生する

  • Hello.

  • All right.

  • Awesome.

  • So, like they said, the eight Web assembly and the future of JavaScript on a multi language web.

  • So, um, they mentioned cast perch.

  • Besides being a developer, avocado at Cloudflare, I am also a robotics author and addict.

  • Um, I've written two books on using Java script with robotics.

  • I also twitch stream hardware and software on Sundays from note botanist.

  • So, yeah, I'm also a parent of two cats and, like, they're my favorite, like animals.

  • Rose, That's ace on the left.

  • And that's are you on the right?

  • And they're very angry with me because I've been gone for, like, three weeks, and I mean, unfurling another week.

  • They're really mad at me right now.

  • Uh, Barry is not what you're here to help here here to hear about.

  • Come on.

  • What even is Web assembly?

  • This is a five year old technology, and we're still answering I and the quiet.

  • When you when you think about why it's because no one has figured out how to use it Until now, um, people who were very, very hard to make this more accessible, But we still need to kind of have this talk about like, what is it?

  • Even because I think it's easier to answer what it's not.

  • First, it's not a programming language like you.

  • Don't you ever run Lincoln recruiters would say, like you need 10 years of Node.js experience, like in 20 in 2008.

  • Like it's it's like saying I'm a Web assembly programmer like you don't you don't program and Web assembly don't write Web assembly.

  • The beginning is weapons simply is not going to kill JavaScript.

  • Java script is the cockroach of everything.

  • It's never going to die, but especially not to a Web assembly, cause it's not meant to kill Java script and Web assembly is not something you can just ignore because it's going to go away.

  • Um, I hope to convince you in the next you know, 28 or so minutes that, if anything, you should be embracing it because it's the future.

  • So whatever was started in every button what Web assembly is?

  • It is a compilation target for other languages to compile to you compile other languages to Web assembly, and it's a specifications and compile target.

  • It's an augmentation of the abilities of Java script.

  • Far from replacing Java script.

  • It is there to let Java script do what it is good at, and then do things that Java script is not good at and give back the results.

  • But most importantly, it's pretty literally magic.

  • Not literally, literally, but I'll explain it a bit.

  • There's upon involved, you know it's fine.

  • So Webb Assembly as a compilation target, you write code in other languages and then compile them into Web assembly rust, which is pretty much written for Web assembly C N C plus plus Go see sharp those air just a few of the languages that have Web assembly available.

  • Zika piles Hartnett Uh, there are way too many to mention, and I'm certainly forgetting a few, but those of four main ones that I can think of just write off, Stop my head, especially with rust being pretty much written to be optimized for Web assembly, though it's also just a pretty cool programming language if you ever get a chance to try it.

  • But then the question you have to ask is what, why, why would you write code for the Web and other languages?

  • Why would you do this?

  • Why would you take pictures of Lori Boss while he's giving talks like this and then use them in other dogs.

  • There's so many reasons you would a want to take pictures of Lori Voss and B have Web assembling in your life.

  • This is the next Ajax for the browser.

  • I'm like, I've been seeing that a lot this weekend.

  • I've gotten this reaction quite a few times like Oh, yeah, sure, CASS.

  • It's the next day Jags.

  • Okay, cool.

  • But I mean it.

  • I'm I'm very serious in the sense that Ajax gave huge credibility and made client side applications possible.

  • And this is an evolution of that.

  • This is the next step of that.

  • And that is an adorable Pokemon gift that I found this morning.

  • And I was like, Okay, well, now I gotta stick that in there.

  • And so I had to pick the word evolution to Lake Stick.

  • I write slides around gifts, if you haven't noticed.

  • So now you're like are a maybe me be.

  • It's like eight, the next Ajax.

  • But like I'm not 100% committed.

  • This is a drawing that I did in one note this morning of this is what I call ancient dot PNG So this is back when we had HTML renderers CSS engines and we had JavaScript and all JavaScript did was playing P threes in the browser.

  • Annoyingly, when you open to page, thanks my space.

  • And back then, the server had literally everything.

  • Literally, Everything was over here.

  • Where did my g go anyway?

  • Um, so you click a link and it would return a page and click a link, and it would return a page and so on and so forth.

  • You get a browser re fresh every time you needed new information from the server.

  • So now this is what I call then dot PNG.

  • We are Ajax, which that's not the right one, that story, but that Ajax, who's would request the page and then get the page.

  • And then we make a Ajax request without refreshing the page and we get back Result Ajax result a direct result.

  • Maybe there'd be another page request.

  • We got a lot of single page applications out of that as well.

  • And then the server became arrest a p I that also serves up the occasional html CSS and jazz file.

  • Right?

  • This is what I call now.

  • That's what I call now, because now we have and Web assembly.

  • And I ran out of, like, sparkly colors, so I had to use like this like red and black super Goths, but it sticks out.

  • So it works.

  • We request the page, returned the page, and then you use weapons simply to do some computation.

  • But you're still over here in the browser and use the service worker for your third party module.

  • And you're still over here in the browser use of Ajax and your servers like LOL.

  • Okay, I'm not even actually a server.

  • I'm just a server lis function sitting on someone else's server on gives back your results is where we're heading.

  • Okay, now on everything okay?

  • I get it.

  • Okay.

  • This is starting to make a little more sense.

  • Being able to compute things in the browser and not necessarily have to do it in Java.

  • Script is kind of a big deal.

  • This is kind of important.

  • But why does this matter why Why do we really care?

  • We care because we need to augment Js that it's not so strong points because I know this is something you've probably either heard a 1,000,000 times and you're sick of hearing or it's blasphemy or whatever.

  • But there's some things that J.

  • S isn't really good at not rewriting entire code bases to use them on the Web.

  • Who wants to rewrite an entire code base of any library that's like more than five years old and has unit tests?

  • Yeah, I don't steal.

  • I hands me.

  • Neither is no good fewer calls.

  • The server means less Leighton see, and it means faster Web applications for your users.

  • That's always important.

  • Performance is good.

  • Not having go back to the server.

  • A 1,000,000,000 million times is good.

  • So let's talk about augmenting JavaScript.

  • It's not so strong points.

  • I'm sure you've seen this at least once in your Java script.

  • Career 0.1 plus 0.2 is actually point 3000000004 So that's false.

  • And so, if you're running anything that relies on mathematical numerical accuracy, um, financial applications, anything do with stocks or bond trading.

  • Kirk Currency conversion.

  • Anything really that requires of games require a lot of math precision.

  • It's not really a Java scripts strong point.

  • Obviously, um, you would need an Ajax call back to a server that would run a different language and give you back the actual result.

  • Which then, you know, might get converted incorrectly.

  • Even eso Web assembly.

  • You could do this in the browser with the correct tool for the job with rust with see with with languages that have float types that are more than 32 bit other.

  • Not so strong points.

  • We've got type coercion side effects.

  • Ah, empty strain equals equals zero is true.

  • It's really hard if you're tronic and, like, say, did they enter a number other than zero?

  • Oops AP, I overloads.

  • So it's this one is new to me, actually.

  • So if you won plus document, get element, I devalue, it can cat needs.

  • But if you put number around that, it adds it, even though that's not really like a number, it might not be a number.

  • It might be a nan, and then it's one plus nan, which is nan.

  • Probably soon.

  • I mean, like, type coercion can be tricky, Um, and then seeing of types, the mystery that is type off like that last one has infuriated so many people over the years, using Web Assembly means using the right tool for the job.

  • If you've ever seen me speak before, you might have seen me to have a talk about fanaticism, and I talk about using the right tool for the job.

  • And Web assembly is using the right tool for the job on the Web were no longer forced to use JavaScript for things that it is not good at.

  • And that is a big deal that is huge for the Web is huge for browser applications, But this will kill Java script all.

  • We're gonna have all these applications early, Witten and Web assembly, and it's getting no calm down.

  • Calm down, I'm gonna kills us.

  • It makes Java script better by letting it do what it's good at.

  • Don manipulation react in Other frameworks have me don manipulation Ridiculously fast and gas engines have made Don manipulation ridiculously fast.

  • I don't think what somebody's gonna be Java script and dominate manipulation anytime soon.

  • It won't in the future distant future, but I don't think it's going to do it any time soon.

  • And it's good at manipulating classes.

  • CSS.

  • Things like that.

  • It's not gonna replace CSS either.

  • Certainly won't replace us US.

  • So it's a good at augmenting Web sites that use JavaScript, and you will still probably use JavaScript.

  • On top of that, it's just letting Javascript kind of like, take a load off on things it's not so great at.

  • It's like some my fiance and I, my fiance hates doing laundry, like with a burning passion, and he's bad at it like a really bad at it.

  • And I hate doing dishes and I'm really bad at it.

  • So I do all the laundry and he does all the dishes.

  • Everything's fine except right now, because he has to do is old laundry because I've been gone for three weeks and he only has two weeks worth of clothes.

  • It makes the Web better by creating better browser experiences, which is exactly what Ajax did.

  • The's better browser experiences are mind blowing.

  • When you think of the implications like Jeff Gold Blue mind blowing, let's take a closer look at what I mean by this with the demo.

  • This demo is using Wasim Image magic.

  • If you haven't used image magic before, it is a command line and see library that is extremely good at creating and manipulating images, it can create animated GIFs.

  • Don't ask me about that pronunciation.

  • Ah, it can create images of its Celic and create fractal images.

  • It's a very powerful library that I don't want to rewrite in any language, much less Java script.

  • We're gonna manipulate images and the browser up to 10 times faster than javascript can.

  • And in some ways, that JavaScript just can't at least certainly not perform it, Lee.

  • And she's going to show the real power of not having to rewrite code and being able to let us use the right tool for the job.

  • So let's take a look and hope it works because it's worked every other time.

  • So it won't work this time.

  • You know what I mean?

  • You get my webcam turned on selecting images, I'm gonna go down, you go down a.

  • But can I, uh I always look silly and photos.

  • So, like, I look silly on my terms.

  • Um, Okay, so these buttons say, Okay, I'm gonna make this a little bigger if you can see.

  • Well, I guess my tongue and the buttons, um, Serena, rotate right and below it.

  • You'll see it's rooted right?

  • And I was really, really fast with it.

  • Left something.

  • You could do that with CSS really quickly, though, right?

  • Like, this is not about impressive.

  • Let's degree scale boom grayscale le great.

  • No flash.

  • Let's add some contrast.

  • Fam added contrasts Remove some bam removed Contrast congee as do that that quickly No Pops.

  • So yeah, that's my demo.

  • Um, I will tweet out a link to the get have repo.

  • This is entirely open source.

  • So you're more than welcome to play with it.

  • Um yeah.

  • So that's my demo.

  • Yes, thank you.

  • But what about know Js wait, But But what about no jazz like this is a browser thing, right?

  • Like, this is this is just this is a browser technology.

  • I just did all that talk about the browser.

  • Why am I bringing him?

  • No Japs, sir, because this isn't note cough in the wrong spot, right?

  • That's in Ireland.

  • That's also just gonna send a couple of you.

  • Uh, why?

  • Okay, the reason I bring it up is native.

  • Heck in modules.

  • Who has ever seen a sea compilation error when running and PM install?

  • Most of your hand should be going up because this has happened to a lot of people.

  • Native heck and modules are a huge pain point in node, and they are ridiculous.

  • And they make you want to yell What?

  • Bryan Cranston is yelling.

  • Um, you can probably read his lips on this one because and he's saying blah.

  • Obviously, he's not saying you know the other word, uh, Blackburn and models of pain.

  • They have to be re compiled on download, and they have to re compiled for every single architecture there is that includes the raspberry pi that someone will inevitably file an issue on your library because it doesn't work on the raspberry pi.

  • It wasn't meant to.

  • Well, it didn't.

  • Well, it isn't meant to.

  • And then you have that argument for 20 days on get home.

  • They either have to compile for re platform or leave love platforms for support.

  • And that could be kind of tricky again, that same get hub argument.

  • Or you could just feel about as I mean keener because, like, I'm sorry this doesn't work on Windows.

  • Who's been like, I'm sorry, but this doesn't work on Windows Done.

  • It's not a fun feeling to say that.

  • And, um know gyp disclaimer.

  • I respect the heck out of the people who work on know gyp like that.

  • They haven't insert Davis Issifu Ian Task like an insurmountable task, so I respect the heck out of them.

  • But Web assembly works on node Anything higher than 8.0?

  • So let's do the math.

  • Why?

  • Why?

  • Why this might matter.

  • Why does it matter that Web assembly works on node a blown up Web assembly modules are pre compiled for know Js not for the architecture.

  • So they're portable Thio Any platform that runs node So no more re compilation on download for a re architecture?

  • Er yes, for rials.

  • Yes, I tried it.

  • You can try it too.

  • It's pretty awesome.

  • So this quote is from Laurie this morning.

  • Everyone wants to deprecate no chip and Web assembly would allow us to do this.

  • That's huge for no jazz, that is.