Placeholder Image

Subtitles section Play video

  • Hi, I'm Miles Borns.

  • I worked for Google as a developer advocate for Google Cloud Platform.

  • Been participating in T C 39 for just over three years.

  • My name is Michel Sabah.

  • If I work in Apple on the JavaScript core engine been attending T C 39 since 2015.

  • Maybe my name is Mark Miller.

  • I started on T C 39 in 2007 while I was a Google.

  • About two years ago, I left to form a goer.

  • Eh?

  • Quiches.

  • A block train.

  • Start up where we're going to be running JavaScript on Blockchain on.

  • And I've been doing a lot of work to make the language better able to support more disciplined and more secure programming.

  • I'm AKI Braun.

  • Um, I work at people.

  • I work at Braintree at PayPal.

  • Um, I have been on the committee since 2017 and I have been co chair.

  • This will be my second year.

  • Hi, I'm Rob Palmer.

  • I work for Bloomberg, where I lead the Java script, infrastructure and tooling team.

  • I've been on the committee since 2000 and 18 and just this week, I became one of four coaches like AKI here.

  • Hi.

  • My name's Shane car.

  • I've been on Sisi 39 since 2018.

  • I am, uh I'm working at Google on the internationalization engineering team.

  • Um, and I leave the lead the internationalization subcommittee for T C 39 focusing on making job scripts.

  • Ah, language.

  • That's very friendly for for international first applications.

  • And hi, I'm Justin Original.

  • I also work for Google.

  • Uh, I work on the AMP project, and I'm one of the core maintainers on Babel.

  • How so many impressive people in the room?

  • Um so the first question that pretty much a lot of people have asked is what is the organization behind T c 39 what actually is t c 39?

  • Any one of you can answer that, I'm sure.

  • Very well.

  • Um Okay, So T C 39 is the 39th technical committee of ECMO International.

  • Expert International is a standards body.

  • Um, they are who publishes the MUS Crypt standard once a year, which you may think about, you know, yes.

  • 2015 changed a lot of things.

  • Sure, but every year now it gets published.

  • 3 16 17 yesterday, 20 will be published in July.

  • Yeah, yeah.

  • Um, so we gotta is, uh, organization made up of member organizations is a standards body that large corporations, small companies and nonprofits and universities can all join.

  • And once ah, organization has joined Acma, they can send delegates.

  • That's what we all are delegates to Ah, to technical committees.

  • I don't know if that actually explains what's behind.

  • Ah, he's very Internet.

  • That answers.

  • That answers the question pretty well.

  • Um, so I'm sure you get a lot of features, requests and features that are proposed everything.

  • How does a feature move through the committee through the proposal process?

  • Um, we have a stage process in the documentation of stage one through stage.

  • For there is a stage zero.

  • Um, computer scientists, we don't know how to count.

  • We start counting it zero instead of one.

  • Um, but a stage zero stage one is this is an idea that that someone thinks would be good to add to the language in stage One proposal basically says the committee think this is worthwhile to consider adding the language.

  • Stage two is now in the step where you're gonna look.

  • Att spec Tex s o.

  • How you specify it.

  • You define semantics and things like that.

  • Stage three is where it's implemented.

  • Bye.

  • Least two imitations and implantation doesn't necessarily have to be, for example, the engine jobs convention site of a browser.

  • It could be, for example, of Babel in implementation.

  • It could also be there's ah, embedded engine called excess.

  • Um, it could be in that engine as well and stage for it's in the language stage for synonymous with its in the standard.

  • And we say something stage for until it's producing that standard.

  • So their Stage four proposals that would be part of the 2020 years 2020 um, and after 20 twenties out we won't call them stage, for they're just in the language.

  • That's basically the process to go through.

  • It's typically done by a champion that's going to take it or champions.

  • There could be more than one person, more than one delegate that's going to take it through.

  • That whole process, there's some debating on is this.

  • The stages is something that we think is worthwhile are people use it.

  • What use cases.

  • Also, the semantics of this Mannix mesh well with the rest of language.

  • So on and so forth.

  • So that's basically the process that we go through to put something in the language.

  • So, uh, for a wee consistently say, it's worth noting that, um, our standard for whether or not we're gonna tackle something in the first place isn't Is this new, uh, syntax or a P I something that we want to add?

  • It's Is there a problem that we're going to solve, which I think is ah, maybe a different approach than a lot of people assume that we make to making changes.

  • Language?

  • It's it's we's.

  • We identify problems that need solving, and from there we decide how we're going to do that.

  • So I first heard about optional chaining, which I think is stage for now.

  • Now, Um, I first heard about that, I think when it was stage zero, which was, like, three ish years ago or something 2016.

  • And so is that typical for something to take that long to go through Stage zero to stage.

  • For how long does something typically take?

  • Years?

  • Um, so I was actually one of the co champions on optional chaining.

  • Thank you.

  • The actually saw their Google internal documents suggesting optional chaining back in, like, 2012.

  • Uh, the fact that we have on Lee finally produced the spec tax for it and tried to go to the staging process.

  • Starting in, like, 2016 or so, Um, the I think there was a little bit of infighting About what?

  • The scope of what we wanted to do with optional changing And how far like the optional nous of the chain is, um, where ends whether or not should be undefined there?

  • No.

  • Um, so that took a little bit of time, extra time in order to work through.

  • Um, but then once we actually add, like, a concrete idea, we knew all the solution to it.

  • It only took, um, maybe three meetings to go from the stage to stage three and then the stage for, um So once we actually have agreement about overdoing, it's pretty quick, but it's getting that initial idea hammered out that took forever.

  • Yeah, and I just had to that really quickly.

  • So as Justin mentioned, we meet multiple times a year.

  • So we have six meetings a year every other month.

  • Um, generally a future.

  • If it goes for stage advance in advancement only goes one stage per meeting.

  • Um, and so in theory, and this is not generally in practice, but kind of the fastest you could go through the whole process.

  • Um, would be, like, eight months.

  • Um, has anything ever gone in eight months?

  • I don't know if it's gone that fast, but I have seen proposals, for example, that air for very verily, clearly defined, um, features that come in a stage two because they've come with a really, really clear use case.

  • The spec text has already written.

  • It is not controversial that this is something that we need.

  • Um, I'm spacing on the exact when I know that a delegate make Samuel had a couple catch went through very quickly up.

  • She'll catch just I'm a bit puzzled by the process.

  • Implication there.

  • I don't remember anything s so to speak, coming in his stage to just that it rapidly advanced stage.

  • There's a few examples from the internationalization point of view where we bring things directly in its stage two, which sort of subways for how to proposals work on internationalization.

  • So we have a subcommittee where we were we review internationalization Pacific features.

  • This is things in the insult object.

  • So Intel number for Mitt until date format until cool later.

  • Those kinds of things, and we review you know, the those proposals and check the use cases and check the implements ability of them before we bring them to the full committee.

  • So we frequently have proposals that come directly and at stage two because we've already done a lot of this vetting before we bring them to the larger committee.

  • Um, and you know, it means that sometimes we can have proposals that go through the process faster, be because of that, um, for prefer intell.

  • I find that the biggest bottleneck for us is getting the implementations, because in the internationalization AP, eyes tends to be to tend to have a lot of dependencies and are more difficult to implement sometimes because you know, they very greatly from, you know, language to language and, um, region to region.

  • Um, so So we tend to have a lot of proposals that gets stuck in stage three, um, and then say it's age three for a year or more before the browsers have all have have implanted them.

  • Um, whereas whereas I know a lot of other proposals to get stuck in stage one, stage two.

  • And one thing I was just gonna add really quickly is there is somewhat of an ambiguity in the stage.

  • Is, um And so the conversation that Mark and I were having right now is actually a very healthy debate that can often happen around like there is the reality of how things go through.

  • But then our understanding of how that applies to the stages convey Ari.

  • And so it is not uncommon were a group of people who like being pedantic.

  • It is not uncommon that during a meeting we may actually stop and discuss the process and ensure that we're being fair to the process that we're following all the criteria in I at least like to think that it is, to an extent, a living thing.

  • And we want to be flexible, and we want to have a process that creates a great language.

  • Um, so, you know, even just this past week, I think probably almost 1/3 of the committee time in the three meetings that we had were discussing a variety of different process changes that were exploring, um, for a number of different reasons, including potentially introducing Maur remote work that we could do arm or ways of meeting in between meetings because one of the things that can't happen, um, for good or for bad.

  • Um, if you bring something for stage advancement and someone points out something that you hadn't thought of between the two meetings something and get delayed for two months, which is why things can take three or four years.

  • So we're actively trying to think of different working modes that we can use to minimize the possibility of that happening.

  • So speaking of all of this process, and you mentioned the actual implementation part, uh, how does the implementation process work?

  • And how do you actually know that things are being implemented correctly?

  • You can use my mike if it doesn't work.

  • And so one of the key criteria, or actually landing in this speck and getting it into stage four is that we have conformance tests.

  • So the main project for that is that test 262 um, and that has a number of maintainers broke, moved on a lot of work on that I'm Oh, yeah, a ton.

  • A ton of work there with Leo Vulture in particular contributing.

  • And so having that all implementations go through should be our percent compliant with that.

  • Ideally, I think you can see a lot of the stats that this store still while I wait to go there.

  • Oh, yeah, there was a project.

  • Oh, you can You can see them for yourself at test 262 dot report, it's ah website that shows each of the engines and how many tests what their compliance looks like on and all of you in the room can help with this as well, because whenever a feature is released, it normally comes out in browsers in early versions like canary versions.

  • Maybe it's behind a flag.

  • So if you enable these in your browser's on, then try to make their If you find any issues, you find any bugs.

  • Or maybe you just got feedback.

  • Maybe you like it.

  • Maybe you don't Please do it.

  • Please do provide that feedback A.

  • Ll.

  • The proposals have a repo on get tub so you can raise an issue there.

  • And that's always massively appreciated.

  • Wait, You see, a lot of people are reporting riel life things.

  • There we can file an issue on the brains of bug trackers as well.

  • So you say, Please, please do try an experiment in heaven.

  • Our organization is T C 39 on Get hub and you can see every proposal we're talking about and, uh, the agendas for every meeting we're doing and a few other things.

  • So it's the easiest way to actually participate in the process back to the implementations during stage tree.

  • That's where these augmentations are being done.

  • And quite often, we quite often it's often the case that we find that we're under specified about certain semantics.

  • And so implementation a will do something.

  • One way implementation be will do something slightly different.

  • And it's during that that process, either using test to 60 or the test that those invitations right to validate their own imitation.

  • We find there are some discrepancies, and we work through those discrepancies and unify things, and we're going through a proposal now where there's a little unification around that.

  • But that occasionally happens, and that's why we have that implantation stage or stages primary focus on implantation that we make sure that we're compliant with each other.

  • We compared with each other as well as compliant with respect, says I always like to talk about weaknesses as well.

  • A strength A test 262 is an amazing piece of work, but it's important.

  • Understand that it consists of very, very detailed unit tests that go through the spec kind of in order and try to make sure touch everything in the speck individually is a unit test.

  • What it is not is an integration test.

  • Languages have lots and lots of non local and non orthogonal interaction between features, and we have repeatedly seen non conformance that was not detected by Test 262 at the non orthogonal interaction of different language features.

  • So going forward, one of the things that that I was very much like to see, uh, is, uh, some creative thinking on how to bring more integration test to testing the language on how to do that without a combinatorial explosion.

  • I think it's an interesting problem.

  • So are these repose that you've all mentioned is that the best way to interact with the committee?

  • Are there other ways that individual developers can get involved outside of being a delicate from their company?

  • here so many ways you can get involved.

  • We have a discourse instance at yes dot discourse, stop group where you can ask questions.

  • You can see discussions.

  • Um, of sort of potential ideas.

  • Oh, are you kick around some thoughts, you might have a language.

  • There's also, of course, get hub.

  • Each proposal is at she's through nine slash proposal hyphen.

  • The proposal name, and you can see all of them at T C 39 slash proposals.

  • Um, you couldn't contribute yourself as long as you have filled out our royalty free intellectual property rights agreement, which sounds like a mouthful.

  • But let me tell you, my organization has rather cautious attorneys, and they're like, not school.

  • So yeah, school, uh, way also are on IRC were on free note at T C 39.

  • Um, forgetting any I'm on Twitter all the time.

  • We got her.

  • We got our twitter handle back, but I don't actually know who uses it.

  • So So contact you on Twitter specifically.

  • OK, it's fine.

  • Great.

  • Actually, a lot of us do follow looking for tea through nine hashtag to see what people are saying and thinking about this stuff.

  • We're working on.

  • So it actually is a pretty decent way to get our attention.

  • Um, we also have, ah, processes the committee known as invited experts.

  • So if you're working on like, open source libraries are working on things that directly impact the standards that we're working on, there is a process in which you could be invited to come and attend a meeting.

  • Um, we I'm working on one proposal right now for module attributes where I believe, but I could be mistaken.

  • But I believe one of the people working on it is not a delegate.

  • One of the champions is someone from the ecosystem who helps maintain babble, whose building out examples of the implementation, Um and e I won't lie like it is a little bit of a black box to figure out how to get involved.

  • But, um, when you find those contacts in all these people who you see on the stage now can be in a place where you can start there.

  • Um, but if you have ideas and you can get a champion excited about it, there's definitely a lot of ways that you can help directly in creating proposals and potentially even come to the meeting of the Open Jazz Foundation, in particular is a member as a nonprofit, and we have within the Open Jazz Foundation a $40,000 a year travel budget to cover travel for people within the foundation.

  • We've actually paid for individuals who are not members of large companies who have been invited as experts to go and attend the meetings because the travel can be cost prohibitive.

  • But there are ways to do it.

  • And I think as a group, one of the things we do want to dio hopefully in the near future is try to make some of this better documented so folks can figure out how to get involved.

  • Andi Yeah, another interaction point is that there's a set of calls there set up so running regularly for things like tooling.

  • We get the tools, vendors or multiple together, like a typescript apple.

  • If you have an interest in maintaining tools there, you could join yourself.

  • There's also a framework school where, for example, will react, Um, view and all these contributors come on to talk about him.

  • Hey, the new pro new proposals coming up.

  • Hey, they may be shaped or where they might impact leave these groups on.

  • There's also the educators call.

  • This is a little bit people who are teaching the language.

  • So if you're if you have a responsibility for teaching people that your company on interest in that, please do join on, then you'll hear about a We knew those is coming up on.

  • And if you have concerns, maybe a feature is going to be hard to teach people.

  • Maybe it's going to confuse them, then that's an excellent way to provide feedback and talk to other humans.

  • Speaking of that is there with all of the new things being added, is there a risk of the language being too cryptic for new developers?

  • Do you have a thought?

  • Yes.

  • OK, yes.

  • Um, I, uh it's it's a continual battle.

  • Uh, but this committee, I think, has been engaging in the battle well.

  • But there's an inherent problem in the dynamics of any standards committee, which is, uh, there's two things being battled.

  • There's two things.

  • Intention one is for any new feature, the benefit of the feature individual.

  • And then there's the overall cost.

  • On the complexity of the language is a hole and when you're the promoter of a particular feature and and even if you're not the promoter when in the room were discussing the feature, we're very naturally are focused on thinking about the feature, in which case were generally thinking about um, uh, uh, the value of the feature.

  • It's very hard to maintain vigilance to guard the overall complexity budget of language.

  • And as the language gets bigger, the danger increases because each additional thing added is a smaller fraction addition.

  • So it's easier not to see the danger.

  • There's also some of the best.

  • I think two years we've had a presentation about syntax, complexity.

  • There's all of these very funny slides about how cryptic can you make your code?

  • Um, Leo presents this every time.

  • Last year it was just filled with so many question marks.

  • I like to do like triple destined Turn Aires and classes just to be like, Did you know you could do that?

  • And then people's brains hurt and go.

  • One of the other protections we have in the committee from the language becoming too complex is that in more recent years, previously on the committee was populated with mostly implementers Onda few of you other people.

  • In recent years, the membership has grown quite a lot and said their net now a lot more users of JavaScript and bold.

  • And so it was a lot more regular, uh, Web Web developers their toe actively speak up if they believe that things are getting out of hand.

  • So for new features to come in, how often does it come from the's just Web developers out in the wild?

  • How many?

  • How often do they come from community requests?

  • And how often do they come from internally in the committee or elsewhere?

  • I think for until, um, we, uh, um, we have a get hub depository, which is get hub dot com slash t c 39 slash ECMO for 02402 is the number of the insults specifications.

  • Um, and we get feature requests from from from users on and the more users that request a feature, the more interesting that feature becomes, um, for for for us to prioritize and implementing Ultimately, um, you know, um, these proposals are driven by the members of ECMO International.

  • So for the fourth e intell objects, these features generally have to be features that, in my case, Google clients need, um, but those are quite often aligned closely with the features that that regular Web developers need.

  • So it's really good to get signals on what features users are requesting.

  • And at least for Intel, the way that we do that is by engaging with users on Get up, which also Segways back to the earlier question about how can you get involved if you go to our good, huh?

  • Age.

  • We have a calendar with our monthly meetings.

  • We have a monthly to our phone meeting, which you can, um, you can subscribe to that calendar if you're interested and, um, Thailand to those meetings.

  • So, uh, I think my my claim subjectively is that at least 80% maybe 90% of new features in the last three or four years have been done by developers and not implementers.

  • I think that's been the case recently.

  • I believe before that there is implemented storm or wanting to add certain features, as as engine developers of language of'em developers.

  • I thinkit's switched in like the last five years, and I guess one thing I can add as well, um, especially when we talked about stage when we talked about the difference between coming with solutions versus coming with problems.

  • And so I think that while the solutions may not be exactly what, um, developers from the ecosystem had in mind or even necessarily what we had in mind as we just like as we're still discovering the problem space, the problems that were coming to solve our very much problems that developers air running into I mean, I think some of the work that we've done around modules is a really great example of that.

  • Like being able to write modular code very much a developer problem.

  • Um, what kind of reared solutions we need to come up with because of history?

  • Um, you know, that may not be something anyone would have ever come up with in a vacuum, so it's a bit of a balance there.

  • So with all of these things coming into play, what are what are the goals for the committee, especially in, like, the next five years?

  • What is JavaScript identity in the next five or so years or more?

  • If there are so many different answers, I've genuinely curious.

  • Honestly.

  • So, uh, I think one of the most important things about the nature of the committee, uh, is that people on the committee represent different constituencies and have different perspectives in different long term visions.

  • Ah, back, I think, three years ago, now, uh, the, uh, there was a set of presentations specifically soliciting from committee members who wanted to present on this what their long term vision for JavaScript Waas.

  • I did one of those.

  • It's up on YouTube.

  • I recommend it.

  • But the important thing about the diversity of goals on the committee, combined with the consensus process, is something really magical.

  • Happens as we all negotiate with each other is something will seem very good for some goals and will conflict with other girls.

  • And when that conflict is unresolved, that can prevent it from going forward.

  • But the thing that's being proposed is it's It's not that there's a particular technical solution that somebody is trying to move forward.

  • They're trying to solve a problem, and when you run into those conflicts, it forces the people who want the feature to figure out how to redesign the feature so that it doesn't step on any of the other goals and often these air goals that those people would not have had in mind if it was not for the the discussions in the room and the need to achieve consensus.

  • Well, I think we have a very, very good process.

  • And and the language, as it moves forward, really does succeed at advancing many different visions of the language.

  • I think one of these it's also going going on now is that, um, say, like, three years ago, node was really involved in the conversation at T C 39.

  • No, now very much is we also have embedded devices that are using Java script.

  • There's a new T c T c 53 Um, and you know you're talking about JavaScript for very, very small constrained devices, not necessarily wearables, but certainly that's one of the targets.

  • And that's kind of a different ecosystem.

  • Marks involved in in JavaScript on Blockchain.

  • So you're five years ago, JavaScript was about the browser, and pretty much that's about it, and we sell this monitor mantra.

  • Don't break the Web.

  • You can't have a breaking change.

  • But the conversation is now involving other ways of job.

  • Script is being used and I think that that's, um like I said, coming before the last three years and I think that's going to continue to be the case moving forward.

  • Let us not forget my favorite places that JavaScript is running satellites and space and whirlpool washing machines.

  • So I think for myself and Michael kind of touched on it.

  • Um, selfishly, my my hope for the language over the next many years is that we have a lot of different places where we're gonna want run JavaScript very much liketo have a language that we can run everywhere.

  • One of the biggest risks that we have in the way that we standardize things is we don't standardize absolutely everything.

  • There are things that are left up for the hosts in the implementers to make decisions on really obvious one.

  • Is this specify?

  • When you import a module, how do you turn that special fire into a path on the file system and then resolve that actually get the resources?

  • The language doesn't actually know anything about a file system, So this is left up to the host.

  • In the end, better to figure out which becomes a place where we can have contention between a thing like node and the browser on.

  • And that's something I've been doing.

  • Ah, lot of work on with a note.

  • But I'd very much like to see us move towards having developers.

  • The people in this room be ableto kind of write code once and running at all these different environments and not need to know all of the different intricacies.

  • And that's not to say there won't be unique AP eyes across these environments.

  • But the core language should not be getting in the way of that.

  • I'll take a stab.

  • Um, so, uh, from the from the internationalization engineering perspective our team at Google is is is looking forward to building an item, then framework not just for JavaScript.

  • Also for other lions side applications, including Android and IOS.

  • And watch a lesson.

  • Wear less and flutter and fuchsia.

  • Um, and we're sort of starting with Java script as one of the most popular guy in sight platforms that the web platform in general, um, ends, then sort of taking some of some of the lessons that we learn here and then applying those to the other platform.

  • So, um, er sorted.

  • So, um I sort of see Java script as sort of the leader and how you can build a great heights and unfriendly platform.

  • So I think you can probably tell from some of the answers here that wide range of answers, that there is no singular vision.

  • There is no dictator that decides exactly what it's going to be.

  • Uh, AKI keeps us, uh, on time.

  • She's, uh, very good.

  • But that's also also another thing is that job script is not owned by any one person or company.

  • I think that's a really big thing about the reason that it's special reason that lots of people come together to invest in the language.

  • People invest their careers into it at their spare time.

  • Equally companies, thes features, they're coming out.

  • They don't come for free.

  • Companies are choosing toe direct investment because they think that Java script is a safe investment for the future on and will continue to grow in a bowl and building on that.

  • Perhaps the real JavaScript is the friends we made along the way.

  • Ah, so having talked about why this this composition of lots of different goals has been so beneficial for JavaScript on now also tell you just a bit about division I've been pursuing.

  • When I joined the committee, the standard JavaScript was Atmos script three, Uh, and the committee waas um, most of the committee was trying to standardize on ECMO script for when I joined the committee, I joined the rebellion against a script for, um, one of my proudest accomplishments on the committee is helping to kill likeness script for no.

  • And, um and, uh, uh, uh, The thing that we were designing instead the underdog was a time Agnes crypt 3.1, became a rescript, fought an ECMO script.

  • Five is a rare accomplishment, a rare kind of accomplishment on a standards committee, which is its subtracted.

  • Uh, it gives the user's a better language by making it smaller, Um uh, and specifically the introduction of strict mode.

  • You can't break the old sloppy code, but the strict mode was an opt in to create a simpler language that was better by because it left out so many miss features.

  • So the shirt that I'm wearing today really does express my vision, which is starting from big, messy JavaScript find different subsets of it that can be enforced subsets that by staying within those subsets, you can have an improved developer experience.

  • You can program in a more disciplined manner.

  • You program in a more secure manner, and you can compose programs that are written separately with with less danger that that will have inadvertent interference with each other.

  • So in particular, I've been working towards the vision we call SCS, secured in a script, which is one of the circles on this on this T shirt.

  • That's a great shirt I would like to see.

  • Do you have that graphic on Twitter somewhere where we could look for it?

  • I don't know that we have it on Twitter, but we have the yet.

  • Yeah, yes, it'll it'll get something.

  • Sure it's and the Jesse repositories.

  • Jesse is the one of the smaller languages here that, um, we use it.

  • Igor IQ.

  • It's not something we're proposing is a standard, but that's worth it's graphic.

  • So a few of you mentioned having JavaScript run everywhere across different platforms and space of washing machines everywhere.

  • So because it's being targeted by so many different devices, so many different compilers, so many different things.

  • How does that affect the design at all of how you have to move forward because it's starting to be everywhere and be targeted by so many things.

  • One of the reasons we have implements or start implementing these features that Stage three's because we actually want their feedback about whether this is something that's possible in their engines.

  • Because we had a feature.

  • Not every language or not every engine can actually do the future, then that's not really a feature.

  • You can't depend on it anymore.

  • Um, so that's the reason One of the reasons we require to implementations before going to Stage four is just to make sure that everyone has had time to actually look at it, try to implement it, and it's actually possible.

  • Well, that was a concise enough answer.

  • Nobody else words.

  • Okay, um, if no one else has anything to add on to that, I'm so for For the internal space, Um, there's sort of two places that you can do internationalization in in your client's ID code.

  • You can either do it in.

  • You can either ship the Java script directly to do the date formatting, for example, or you can use the browser engine so By putting this into the job into the JavaScript engine, we are actually able to make the the JavaScript code.

  • They have to ship a lot smaller.

  • And then that's one of the motivating factors for having insulin.

  • The standard library of the language.

  • And it's it's implemented in a separate specifications, so you can have a conforming JavaScript implementation without the Intel object.

  • But at least for browser applications, this is a very important feature.

  • So this is one way that we're able to provide this future for for browser users and not necessarily require it for all implementations of Acma 262 which is the main language.

  • How often I know we already talked about, like how features come in from from different places.

  • How often do features come in based on other languages on other things, like I don't know, See C sharp pearl, anything.

  • There appears to be a lot of that recently, Um, you see, sharp, um, Ruby, um, things like that that we're adding those and, um, in a lot of cases, that's syntactic sugar.

  • And were we already have the capability, you know, think about like aero functions.

  • We function function for a long time now.

  • Aargh functions because that's one way of people like brain functions.

  • We have another language, Um, and there's, I think there's a little bit of a danger here that we have to be careful because if we take every construct and every other language that we already have some way of doing that in JavaScript, we added.

  • And so now you have multiple ways of doing the same thing may become confusing.

  • So ruby that it may become Ruby.

  • Well, it's always a good thing.

  • Yeah, yeah.

  • So, um, there is a lot of, uh, Genesis of of ideas for jobs, your proposals for Java script that we see that do come for other languages and go back to that discussion earlier.

  • Where there's, you know, people on the committee says, Okay, this is what the syntax will look like, Possibly if we do this for all languages and southers this weighing the balance of how much?

  • Because mostly they're syntax kind of proposals.

  • What is the syntax budget we have?

  • You're running out of special characters and having three characters in a row for a keyword.

  • I'm starting to get to be a little bit too much is the Is this feature worth it?

  • And so that's the discussion you have and again, Mark said.

  • It's not just that feature, but that in collective with all the other pictures and one thing to add on top also, um, the motivation may not come from other languages, but I think it's definitely an important thing for us to, as part of a research is, if we've identified a problem, we look at the solutions that other languages have come up with.

  • Um, maybe they come up with a great solution that we can copy.

  • But they may have also come up with a solution that absolutely didn't work, which we can learn from and not make the same mistakes.

  • Um, so I think that any champion who is really doing their due diligence is looking at other languages.

  • Um, for at the very least, inspiration when designing things within JavaScript.

  • The phrase prior art comes up a lot of proposals like a lot, but it's good research.

  • Well, we did have a question from Twitter, and the question was, what is the difference between T.

  • C 39 groups like W three C?

  • So there are a number of different standards organizations that standardized different things.

  • So T C 39 exists with an enigma and focuses on the core language in just the language and a really great example that can show a difference.

  • Here is the consul object.

  • Um, most people myself included, debugged by Consul logging.

  • It's really easy.

  • And it works.

  • And you put emoji in there and the networks like Oh, um, but the JavaScript language doesn't have any sort of idea of system calls.

  • It doesn't have this idea of printing, so it doesn't have any output.

  • You can execute and run things and put it out.

  • Consul has no place within the language.

  • If we wanted to implement Consul in the language, we'd have to also implement, like our own colonel for interacting with the system, which I don't think Mark would be happy about it.

  • I'll give it to you accidents to Adam on that process.

  • But Consul is standardized at the what working group.

  • What working group standardizes a number of different things, including the l object, and these are things that traditionally were implemented in the browser.

  • Um, fetch is another standard that was made at what working group, But you're seeing other run times such as Node and Denno and Cloudflare Edge workers adopting these Web standards that are not from T C 39 to make part of their run time.

  • Um, we talk about implementers and engines that's like V eight or J s Corps, Um, or Spider Monkey.

  • These are the JavaScript engines inside of the browsers, but a product like chrome is made up of a lot of different parts, of which the JavaScript engine is just one.

  • There's the whole rendering layer.

  • There's everything that has to do with accessing all the system bits.

  • So W three C, for example, is where HTML is specified between W three C and what working group CSS is specified at W.

  • Three.

  • C.

  • Webb assembly has specified a W three c, and these organizations have a different fast track to international standardization.

  • They have completely different governance models.

  • My understanding at W.

  • Three C, where I've not done a ton of work, is that each working group charters their own charter and operates completely differently.

  • So the CSS Working group in what working group, a CSS working group in Web assembly, working group operate completely differently.

  • Um, I do think that especially with division that I proposed earlier, there is a need now more more than ever for these various organizations to be working together and thinking about a shared vision.

  • Um, and I think an interesting problem for the next couple of years will be starting to think about like, Hey, where are neutral spaces where we can all collaborate?

  • Michael's working on a proposal for built in modules, for example.

  • And a big question is, Well, who owns the built ins where those built ins come from?

  • How do we categorize those built ins?

  • And you need a lot of trust between different groups if we're gonna expect other people to kind of respected in the flip side is there is a risk that if t.

  • C 39 tries to spend over specify an overstep that people won't want to implement the speck, Um, that is, thankfully something that's never happened.

  • But it is a very real risk.

  • I think that every member on our committee takes at the we have a really large responsibility.

  • Um, everything works right now because people are happy and working together.

  • But that is fragile and could fall apart if we don't take that responsibility seriously.

  • Want Thio explain a interesting historical accident that I love story time that, um that really set us up for success.

  • Really Just got lucky here.

  • Uh, the first A few decades of javascript existence, there was only one host which was the browser.

  • And you think about a language that's on Lee being used for one purpose.

  • And the thing that is looking back on that kind of miraculous is that the language does not have many browser concepts in it and doesn't have any browser io in.

  • Even when the language was evolving on Lee under pressure to serve one host, it did not the balance the boundary between the language as computational and the host as providing Io was maintained.

  • Uh, there's, I think, the only explanation for this historically, because people didn't appreciate that that property until there were multiple hosts.

  • Historically, the only explanation that I can see is what's called Conway's Law.

  • Uh, Conway's law, uh, is that an organization can only create technical artifact whose communications structure reflects the communications structure of the organization.

  • Um, the language was under Acma the browser was under W three C.

  • Uh, that organizational split, I think, more than anything is responsible for the language and the browser not getting too entangled.

  • Even when nobody was viewing the lack of entanglement as a virtue that needed to be maintained.

  • That's a really cool story, because I didn't know about the separation as much until you start talking about it.

  • And that was great.

  • Well, we're slowly running out of time.

  • One last thing.

  • Do any of you have a favorite JavaScript joke?

  • One at one of my favorites, for example.

  • Now, not that I had any other ready or anything.

  • Uh, was, uh there is a developer that said, Hey, what is this?

  • And the other developer said, Oh, I tried to call about it earlier, but I was in a bind.

  • Uh, what is this?

  • Find?

  • Call.

  • Okay, anyway, do y'all have any others?

  • Yes.

  • Do you want to hear in a synchronous joke?

  • Yes.

  • Hey, it's good.

  • You promise?

  • Um okay.

  • One.

  • How do you fix the jog?

  • JavaScript bug.

  • You console it.

  • Well, I think with that we're done.

  • Thank you all so much.

  • This is awesome.

Hi, I'm Miles Borns.

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it