Placeholder Image

字幕列表 影片播放

  • All right.

  • Hello, Jazz Contra wiii Before we get started, I want to talk a little bit of how amazing this conference has been, right?

  • I mean, he was just talking about Hawaii, but how about like, the variety that we've seen on stage?

  • We have seen, but what we have seen natural hair we have seen time ago, Cheese.

  • Ah.

  • I mean, let's give it up for the organizer's a little bit for putting this thing together, right?

  • So for those who are not from actually show of hands, who knows what jazz party is?

  • A few of you.

  • All right, So J s party is a podcast.

  • But more than that, it is a weekly celebration of JavaScript and the web.

  • We get together every week and talk about cutting edge content.

  • What's going on with JavaScript?

  • What's going on with related topics?

  • I've heard Conference is described as the place you go to learn what you should be learning about.

  • Well, if you can't make it out to conferences every week, you can get that anyway.

  • By listening to Jazz party.

  • We do come to conferences today.

  • We're here.

  • We're gonna do a live episode.

  • This is ur live with us.

  • Typically, when we do an episode, we broadcast it live as we do it, there's a slack channel.

  • You can come and slack with us as we do it here.

  • We don't have the slack channel.

  • So I'm relying on you all to give us that live feel.

  • But we are going to be digging in with our some of our amazing speakers from yesterday and kind of going a little deeper and trying to make me make them uncomfortable and ask questions that they hadn't thought about.

  • Um so before we again, I'm cable.

  • I'm one of the hosts.

  • I'm a regular on Jack's party.

  • If you want to find J s party, go to any podcast app search for J s party, you'll find it.

  • Last night, somebody was trying to do that on Spotify and it didn't work.

  • And so it's frantically slacking, people, What's going on?

  • It turns out the search term was not matched properly, so we fix that, but search for Jack's party.

  • Wherever you do podcasts, you will find us.

  • All right.

  • So I am joined today with four amazing speakers.

  • Uh, they spoke yesterday, but I'm gonna introduce them anyway.

  • Uh, William spoke about T c 39.

  • The future of JavaScript.

  • Sean spoke about babble on some amazing things you can do with that with the language.

  • I don't know if I even need to introduce you to You're so famous.

  • But we have Lynn until who both spoke about Web assembly and what we're going to dig a little deeper on today is this idea of the future of JavaScript of Web development?

  • Where is this going?

  • You know, how can we take all of these talks that happened independently and sort of try to weave a picture together of where this is going in the future?

  • Um, so we'll just start.

  • I prepared a few questions.

  • If you all get a burning need to ask questions, you can raise your hand, and I'll probably call out to you.

  • But we got plenty.

  • So don't stress.

  • Um, so I want to start actually talking about the JavaScript language itself.

  • William introduced us to some of the proposals that are there for advancing the language.

  • And I noticed that there were a lot of operators involved in the ah pattern matching.

  • There was a new arrow operator it wasn't the fatter we're used to with aero functions.

  • It was the thin arrow with the piping.

  • There was a pipeline operator, and I'm kind of wondering I'm gonna throw this to William first.

  • But any of the Panelists you're welcome to answer are we gonna run out of syntax and operators like, is there room for a Tamagotchi operator?

  • Where we going?

  • I think this is a question for two.

  • Right.

  • So I think they're two different access to this.

  • Um, one is we can in theory, we invent an arbitrary amount off additional operators and make them work somehow.

  • Just put two, um, quitters next to each other that currently would be invalid and say, Listen, you up, waiter, Um, and thin Echo is actually an example where we could have done that when we introduced the fat approve.

  • Um, they're the committee was pretty close to also introducing a thin acro valiant that didn't capture this the this value, but otherwise what if we actually operated executive?

  • Same.

  • And the reason this is not done, waas um, mention complexity, budget.

  • Um, and that is really what a lot of this is about.

  • That and operator has to, Can't we?

  • It's wait.

  • It has to be specialized in a way that allows people to use it as a an efficient mental abstraction instead off just some weird creatures on the page that make things unreadable.

  • And if we didn't keep that in mind, then the language would be Maur andMe or just sort of this weird stuff on the page that nobody can clock.

  • And so, yes, we will.

  • Over time, it would use new upgrade Earth.

  • But we have to be extremely careful about which ones and make sure that they are actually useful enough.

  • That leads into kind of a question about the process of deciding what goes into this language.

  • You know, we talked about T C 39 the stage one that was going on there.

  • But maybe can one of the Panelists spell out the stage is that things go through as they advance in the JavaScript language.

  • Okay, I can try that one.

  • Okay.

  • We have, like, five stage and doro like that.

  • It's the Strom.

  • Oh, it's like have a conversation, the bar, and we're kind of drink and say Yeah, what were you with those days and job escape.

  • That's try and you try to present it to the committee.

  • And then if they find a champion and this proposal, it's a tried to solve the problem.

  • You should shape the problem first.

  • And then if I have ah, shape of for championing this and you, you and the committee decides that this is like something that worth more investigation.

  • So they goes to the stage one.

  • So then they tried to do on your bit more research on that and shaped like if syntax like shape, that syntax or in the semantics off the proposal and then goes to the draft, which is the stage two.

  • So then they start to write the draft off the off the specification, and then sometimes they they have some limitation bobble on DDE and sent to the to the developers tried it out and then on after after they find some consensus on see Paxson in sin makes up the proposal eagles.

  • That's because it goes to the go, uh, Stage three, which is the time that they wait for some limitation that grocers and and I think like then you see this implementation come into the, um on nightly version of five forks or chrome canary and so on.

  • And then, after everything's done on, they find out insensible sent to state for which is the less stage.

  • And then they have a cohort.

  • I think, in March, right, and then on this goes to the next back, which is in July.

  • Lynn.

  • You talked about similar feature advancement.

  • Happening in Web assembly is the process.

  • They're similar.

  • How does the Web assembly, working group deal with this?

  • There are a lot of similarities and a couple of differences.

  • Um, so for Web assembly, you do have also four stages that look pretty similar.

  • Um, there is a difference in advancing between the stage is, um which is that with t c 39?

  • You need really full consensus.

  • That happens at a meeting.

  • Um, individuals from different companies can object.

  • Um, whereas with web assembly, um, it's Maur the different implementers.

  • Um, really, it's what they do is technically they take a vote, and people can say I strongly disagree.

  • I disagree.

  • I'm neutral.

  • I agree.

  • Strong agree in practice.

  • Um, really, as long as the engines as a whole all agree things will advance.

  • Um, So there's um, some technical differences, but it really is fairly similar.

  • Nice digging into one of those proposals that William talked about.

  • There's this concept of binary STS and essentially having a much easier to parse version of Java script.

  • What's that going to do to the demand for Web assembly, where one of at least the initial value propositions was, Hey, this stuff can be compiled so fast that we don't need to worry about that initial start up phase.

  • So, um, I'd say that it's actually pretty useful to look at the different kinds of use cases that these two that inspired work on these toe.

  • So for Web assembly, Ah, lot of the use cases were around desktop applications and games.

  • At least the first inspired it.

  • We're seeing a lot of other use cases now, but, um, and what needed to happen there was actually a start up.

  • Time is important, but that wasn't the critical thing.

  • There it was execution.

  • How fast the code is running rather than how fast it starts up.

  • Um, and for so it was really at the time about bringing new things to the Web that weren't already on the Web, Now we're seeing that you can actually speed up things that are on the Web.

  • Like the part sir that I mentioned that is used in Web packet and our Deb tools, um, or the Gutenberg parts of which is 86 times faster.

  • But that's really a different use case than taking something like Facebook or Gmail and trying to make it start up faster.

  • Um, binary s t is really specifically targeted at the problem of startup costs.

  • And so with binary is tea we take This process is really complicated and manual today where you have to do, um, all of these things to improve your startup times like code splitting.

  • And we automate a lot of that to make it so that, um you don't have to think so much about how to design your system to optimize for start up costs.

  • You can just automate this process of getting ah, quick start up, Justo.

  • Put a bit more on top of that like they're trying to.

  • It's different problems like, um, for a vine, Erased sees something that targets the cold.

  • Start off a job script application so it tries to make the complaint face start, thruster and Web assume is more about, like, run time.

  • So how fast your how performing your coat could be?

  • So it's it's, uh, different kind of things.

  • And there, I think, a smart as I know that the committee is not even sure if by nearest ae is something that needs to proceed.

  • Because, for example, V eight has a different way to parse the job they have, like they're part of the Oscar and streamlined way so on and on The P.

  • L.

  • C.

  • They did so far is it was only in Spider Monkey, so they need to try to assist.

  • If this solution's even true, it's a performance wing for the other browser vendors as well.

  • So okay, wait, we are in five weeks.

  • We're working on proving this out, and I think it is bright for other vendors to say, Well, show us their numbers before we go and duplicate the effort here.

  • And the good thing is, finally is T.

  • It's a form of weather is a proposal where this is possible.

  • If we were shipping a language feature and then at some points on Ah, no, we changed our mind and stopped shipping it.

  • Who would quake code?

  • That depends on it.

  • That's not the case with beina B a S T.

  • It's really much like, um, women ification Step where nobody would only ship, by the way, is key, at least for the foreseeable future.

  • So if we had some point, stop sending the Hatter thing.

  • We understand, by the way, is to you.

  • Then we'll just instead get a jazz file and nothing quakes.

  • So that's good.

  • Um, I don't want to say something more about the motivation here.

  • I think it's really important to look at this holistically.

  • We want the Web to be a platform where you can ship, um, or do you deploy applications of all sizes, too?

  • And to make that work, we need to pull all the levers that we have access to.

  • We can't just say, Well, this seems kind of good enough, So let's let's not continue working in this direction.

  • We need to do what we can for start of performance in all kinds of ways.

  • We need to optimize one time performance, using the right language for the job, for individual modules, and going forward will eventually also want to look at similar things for the other parts of the platform.

  • Like edged a melon CIA's s, um, and stopping at some point because we feel like this is fast enough for what people are doing now is setting the platform short.

  • So in Shawn's talk me in Sean stock, you talked a lot about compile time optimization tze and I think this is something that clearly lends itself well in the web assembly world What you were talking about with treating binary s teases essentially, um, unification or compiled step Uh, where do you all feel?

  • We are in the sort of build systems around web development.

  • You know, it feels like we've come a long way in the last few years, but does that mean that we're at about as good as it's gonna get or were at step one of 10?

  • Or how far is this stuff gonna go?

  • It's very broad question.

  • I am far from an authority on this, but I think I think we're definitely at the beginning of bill system innovation.

  • In fact, like a lot of these pieces were Kabul together and invented separately.

  • And that's why people complain that there's no integrated into anything from from, you know, MPM installed to whip Acto babble and having conflicts between all this, all these different parts of the system make on boarding toe with home and difficult.

  • I think there is some very some struggle against like, uh, you know, having such a complicated build system is against the original spirit of the Web.

  • You know, like you used to be able to just drop some Js on today she male on.

  • That's true.

  • But the same time, the way we use the Web has also changed a lot.

  • And so are tools should evolve accordingly.

  • Um, and there should be there should be more innovation.

  • All this?

  • Yeah.

  • I mean, and as much as you know, I talk about Trent compiling to Java script, but I think that obviously there's a huge case for compliant Web zombie.

  • Well, I think that, as you point out, the use cases that were doing Web development for have changed.

  • And I think in your talk yesterday on Web assemble, you talked about taking this concept of the Web platform and expanding it beyond what we traditionally think of as the Web.

  • How far do you think that goes is eventually every type of development using the Web development, model and platform.

  • So in the truck yesterday, I made this sort of offhand joke about stealing your become wallet, which, of course, is based on, um, real world events on.

  • And, um, it's no joke.

  • Um, it's it's something that has actually happened applications.

  • An application that you trust, Um, where you rightfully trust the author off that application.

  • Still going behind your back and stealing your money literally.

  • Well, almost Blockchain, um And, um, this problem won't go away without us doing anything about it.

  • And the way I see it, we can do something about it in two different ways, either by locking everything down, school off sokrati, going school APP stores and letting wth e, um, apples off this world dictate what you can and cannot consume in terms off applications and media.

  • Um, or by, um, going away from something that is otherwise incredibly helpful.

  • And, um, but increases the stability on product, off off applications and the productivity of developers.

  • And there's code.

  • We use screw platforms like NPM or for trust.

  • We have quite studio, which is very similar.

  • And, um It's not scalable to try to review the entire code there for thehunt grids of thousands of packages published there all the time.

  • And we see that it's not scaleable because nobody is doing and nobody could possibly do it.

  • And, um so we can give up on this coat we use or we can say, Well, let's work on things such that you don't have to trust all of this code And to do that we need represent boxing.

  • We need to be able to say I I don't As long as the application can only run in this directive, will you say I don't care about whether it twice to steal my blocking a Bitcoin wallet because it can't I need don't need requested him in this regard.

  • And for that, we need to bring a cent boxing model that is essentially similar to what the Web provides to, um, development outside the Web in a way that still analyses applications to provide the value you want from them.

  • And we're working on that.

  • When I was tweeting about your talk, I had, ah, someone who does Native Development respond and say, Hey, do I really want my applications running in the browser.

  • Isn't that gonna be a little heavy weight?

  • Isn't that going to slow everything down?

  • And will that give me the access that I need?

  • How do we address those concerns from folks who are used to being able to essentially access everything and run at a bare metal level?

  • So that, um I'm glad you mentioned the access Everything.

  • He mentioned me in that tweet as well.

  • And, um, this idea of a developer accessing anything on your system that is great for the developer is really not great for the user.

  • Um, as till was just talking about it opens up, It opens you up, Thio, Um, so many different security vulnerabilities.

  • So it's not just the web that has locked down on these things.

  • You're actually seeing the operating system start to lock down in these things as well.

  • Um, Apple is actually starting to lock down on what their application developers can.

  • D'oh.

  • Um, and I think that, uh, as developers see better systems for providing this kind of ability capabilities, but with a security around them, they'll start to accept it, too, because it protects them if they're re using code from other people.

  • It protects their applications from the kinds of exploits that they could potentially be vulnerable to, which I think most above board developers are in favor of not putting their user systems at risk.

  • There's also actually, you're kind of funny part to this.

  • When I looked at this Twitter conversation yesterday, um then looked at the time none of this person who had posed these questions.

  • And just a few days ago, they had compared, uh, I tunes and epic music, um, and complained about how badly it works and had compared to to Spotify and said, This is how an application should be done.

  • It went smoothly, and it's really well done, and at the same time they complained about how all these weapons need an entire browser.

  • Grantham will Spotify turns out to be an electron app that brings its own girls there with it.

  • So turns out the Web platform.

  • Actually, it's maybe further ahead, and they realize, awesome.

  • So coming back a little bit to the language is that we're using to build this out.

  • Um, Lynn, you highlighted the need for easy and fast data exchange, and we saw yesterday some discussion of typescript, and I know there's a lot of type discussion in the Java script community right now.

  • We also one of the things that Web assembly gives us is, you know, the ability to use languages like rust and other things that have these high level guarantees.

  • When we're talking back and forth between these different environments, is there a mechanism within Web assembly for, uh, translating those type guarantees?

  • Definitely.

  • That is up to tooling and the rest to weapons.

  • A mutual chain that we're working on actually could uses typescript definition files for the weapons MD module so that you can work with them in a sporty type way.

  • And you have to you have to pass in the quiet types and you have something to have some kind of layer that convert.

  • What the Web SMD, um, model could use is into something that you have to travel scepter out of her can consume.

  • And currently, all you have to interact with the weapons of the module.

  • Our numbers, instant floats, all that that bond we can understand going forward, that will change.

  • Lin talked about the garbage collection proposal for weapons Emily and I'm actually the T 6 39 champion for the accompanying typed Objects proposal, where we will have strongly typed JavaScript objects where you don't only have the type of the object itself.

  • But all the fields on that object are strongly typed and in a fixed location in memory, so that they can be efficiently accessed both in weapons Emily and and JavaScript.

  • But you will still want to have typescript definition files to see what that structure is them to have your editor give you hints about how to interact with that object so that won't go away and actually think technical definition files are the white way to approach to that.

  • There's some, uh, so I'm not too clear about this.

  • But there's some discussion about the soundness of, like, the sound of a type system, and I'm told that typescript isn't well.

  • It's not somebody fault.

  • And that could be a hurdle I don't fully like.

  • Is that something that you will consider in terms of your discussions?

  • So the parts of the type system that we need for this are about the most really Oh yeah, basic ones.

  • And that part of sound, um, there's a subset.

  • Yes, it says that it is absolutely a small time.

  • That's what I think.

  • There's something interesting for the chap script team to consider going forward.

  • Once we edged garbage collection support to weapons assembly, they could actually go and compiled parts off your typescript two weapons assembly to make it went fast.

  • But because the tap tap system is unfounded, because even without that, it doesn't make sense to compile all co two job to two weapons.

  • And instead of JavaScript, they could do it on a perfection level.

  • And if all engines have these fast called said Lin talked about yesterday and actually published a book post about a few months ago, then itself doesn't matter which part of the system of function is implemented, and the chaps could compile A could really that we find Wayne decide back and forth back weapon.

  • Something is good for this job.

  • Script is good for this.

  • Let's optimize all the things I want to mention that our toe experiments done on job escaped to a component of weather.

  • Same one is about to double a lt, which is kind of off you write a job job, escape ish language that complains about where the same.

  • And that is another one called the same script, a script which is a soup set off typescript that complains about the weather sanely So, yeah, I'm interesting.

  • See how they they do this and how this can work out.

  • Like maybe this could be a good starting point for writing.

  • Job is great.

  • And see how this goes like back and forth phone led the same way.

  • All of this discussion about, uh, the many fold possibilities here reminded me of an ongoing conversation that folks were having about how we preserve the on ramps to Web development.

  • It used to be that you just get started, you do a little bit of HTML.

  • You could do your CSS and JavaScript right there and you're already in.

  • And it's straightforward and easy.

  • And now we're getting into this polyglot language world we're getting into.

  • Complex build chains were getting into complex frameworks.

  • Um, Lin, I know you do a lot of thinking about how to explain code concepts to people.

  • I know that this is a surprise to question because it just came up.

  • Now.

  • I didn't prep you on this, but Do you have thoughts on how we make keep making this accessible to folks?

  • That is a question that has come up a number of times because people are worried that when you introduce something like Web assembly, does everyone then have toe learn Web assembly in order to be a Web developer?

  • And I think that the answer is no, Um, I think that we can.

  • Actually, all of the Web developers can benefit from Web assembly without ever having to learn it.

  • If we have people like the reactor core developers re implementing core parts of react than people who are using it won't actually have Thio know anything about Web assembly.

  • They'll just see that the, you know Dom defying algorithm is going faster because the AP eyes that are on top of it will stay the same.

  • Um, And so I think that, um, we can provide kind of this ladder.

  • Basically add another few rungs to the ladder that you don't actually need to climb if you want to.

  • You can climb those extra rungs and learn how to do Web assembly development, but that you don't need to to have the same level of proficiency that you do today and actually benefit from Web assembly without having to learn it.

  • Yeah, I have thoughts.

  • I agree.

  • I think as we like, this industry is still super young.

  • Um, you know, you don't, uh, and and as we professionalized and go deeper, it's the learning curve is going to step in and like, that's not in this not an argument to stop development.

  • You know, uh, and I think it's an argument for more people at every level, particularly intermediate thio to do to produce content, to teach each other.

  • I'm a big proponent of learning in public what, you know, whatever you just learn.

  • You are the world's most recent expert at Even though you may be, you may not have, like 100% of the knowledge or you, maybe me, maybe incomplete and missing out some of the history of of something but your best place to explain to other beginners as well, because you're you have beginner's mind, and that's something that experts don't.

  • So I think that we should have more of that Awesome.

  • I think we're getting close to where we're gonna have to wrap up for the next speakers to come in.

  • But I want to go around potentially to each of our Panelists and ask you for a quick hit.

  • You know what is one of the things that you are most excited about coming in the future of Web development?

  • And that could be javascript specific.

  • That could be Web assembly specific.

  • That could be kind of global, big picture of where the platform is going, whatever layer you want to hit it and in whatever order, because that once again, I didn't prep you on this all right, throwing you a few curveballs.

  • But what is something that gets you really excited about the future of Web development?

  • Because from where I'm sitting, we're where it's at, Like, this is amazing.

  • The stuff going on in this industry is phenomenal.

  • And, you know, this is an exciting time to be alive.

  • I personally am very excitable on how far, uh, the web as a platform is going out off just for the Web, for example, Now you can create a Peter away and install it on your Windows machine.

  • So I'm very excited all that because, like as a Web developer, uh, I would like to do something more than just like websites.

  • So, yeah, I'm pretty excited about it.

  • No.

  • Um, so I do a lot off.

  • I spent a lot of my time in the react world ecosystem, I guess, And eso concurrent reactors.

  • Kind of like the next thing that's being released by the FBI team.

  • And it's seems to be like you think that we're kind of done with, like, rendering thing rendering like this of items on a page.

  • But there's so many nuances and ways toe the clarity of Lee make you know, user and declare user interfaces better.

  • And, uh, you know, I'm very much looking forward to the release of that over the next year.

  • I think that there were a bunch of things that I'm excited about.

  • I talked about a bunch of them in the talk yesterday, but I think the thing I'm most excited for is, um, Web assemblies integration with the garbage collector in the browser because I think that that opens the door to so many different use cases where we use Java script and Web assembly together, and where we use Web assembly for the parts of a nap that it really makes sense for and speed up a whole bunch of these abs.

  • I'm excited about tearing down barriers between the Web and all other platforms in both directions.

  • So Captain Lee, if you want to have or in the past, really, this has sort of change now.

  • In the past, if you wanted to have a an application available on desktop systems and N Quit and IOS and also the Web, you built one portable application core for these other platforms, and then individual user interfaces fall of them.

  • And then you built the Web version completely independent from all the West.

  • All you had to choose to not have that or not have the other ones.

  • And we're changing that where the Web platform can be one of the others, where you have a portable core and you build a Web specific user interface using Web technologies.

  • That's the one direction the other direction is bringing weap assembly to other use cases in similar ways to how note watch JavaScript of the use cases and to the decree that weapon developers get more comfortable with using weapons.

  • MD.

  • And not all of them have to, of course, but those that do.

  • Um, we open new worlds for them.

  • We open the ability to go into tiny Nisha's, where jobs good would not be the right language and apply their abilities there and really blurring the lines between these very different platforms.

  • That's what I'm really excited about.

  • All right.

  • So as we wrap up, I want to get a hand for all of our Panelists here.

  • They're pretty amazing.

  • Yeah.

  • I mean, I don't know how I got so lucky to get to pick the brains of these types of folks, but it's it's a pretty amazing thing.

  • And if you like hearing from folks like this every week, take out your phone right now.

  • Look up J s party.

  • You can listen on the web.

  • If you really don't want to subscribe, you can listen wherever you want.

  • Um, and we bring content from conferences.

  • We have regular guests.

  • We've had new folks like John Rezek on the show.

  • We've had folks just incredible stuff.

  • And, you know, I I listen to every episode, not just because I'm on the show.

  • A lot of times, I'm not on the show, and I just I'm like, all right, I gotta hear what they said.

  • That's amazing.

  • Eso check it out.

  • Thank you all for coming.

  • Thank you.

  • Thank you.

All right.

字幕與單字

單字即點即查 點擊單字可以查詢單字解釋

B1 中級

JSParty在2019年夏威夷JSConf大會上直播,講述JavaScript的未來。 (JSParty Live at JSConf Hawaii 2019 on the Future of JavaScript)

  • 2 0
    林宜悉 發佈於 2021 年 01 月 14 日
影片單字