Hi, I'm Oliver Metturst, and I'm going to talk about WinterTC and how it helps you. So JS runtimes today, Node is of course the biggest and most well-known. There's also Deno and Bund and others, which are slowly emerging. They're all built on existing JS engines, and they're all meant to run on the server. There are also edge runtimes like Worker Deep from Cloudflare or Deno Deploy.
So each runtime has their own priorities, so there are of course many different runtimes. Those runtimes' APIs are basically just Node. Node's APIs are great, but there's no standard. The only standard is Node's documentation, which is good, but some of the details can be very hit on this. So WinterTC is working on standardizing this, because using the same interface without a standard can cause bad interop. If you look at Deno or Bund, they're still having Node compile problems, which is half just Node's engineering work and half because there's no spec. Most of it is just finding bugs in the wild.
This helps avoid vendor lock-in, because instead of having to either rewrite your entire app or write it just for one company's APIs, just having one universal API is basically the dream, because you can just write once and run anywhere. Some of Node's APIs are kind of becoming outdated and can't be changed because of backwards compatibility. And some runtimes are having their own versions along with having Node's, which just isn't great. So WinterTC is working on this. It used to be WinterCG around late last year, but we moved from a W3C community group to an ECMA technical committee, because it helps us work more closely with TC FinnyLine, who write the JavaScript proposal, who help make the JavaScript specifications, and overall is a better fit.
So the effort is mostly write specs, defining which web API should be included, like say URL, WebAssembly, because all of those APIs aren't actually in the JavaScript spec. So currently, runtimes just include whatever everyone else is including without a definitive list anywhere, which is one of the main specs WinterTC is working on. There are some thoughts and proposals for existing web APIs, like say Fetch, some changes, like say cross-origin restrictions, don't apply to the server because that security issue doesn't exist here. Yeah, there are also some of the TC's own specs and proposals, like say the CLI API, but those are still very emerging and coming through. So the common minimum API is essentially the flagship spec, which is including the subset of which web APIs should be in server-side JS runtimes. So it could be anything from Base64 with ATOP and BTOA, to Console, to Crypto and Fetch. And there are other emerging APIs, like the CLI API, which is trying to make a standard, not node API way of doing, say environment variables or arguments. And a few other APIs, which are still very work in progress. And you can get involved at wintertc.org or join the Matrix room. There are some specs here already, and you can see the specifications, like the minimum common API. You can see there's a definitive list of everything which a server-side runtime should include, which previously did not exist. And yeah, all the work is on GitHub. And there's a Matrix room where you can talk and help out with spec PRs or suggestions for ideas of what to do. So thanks.
Comments