Welcome back to the JavaScript for Everyone newsletter, folks. Please ignore the long, unkempt beard and wild-eyed look. Moreso than usual, I mean.
See, we're smack in the middle of the New England microseason I unaffectionally refer to as The Snows (emphasis mandatory). We're buried here, and more is getting dumped on us every few days. I'm worried I'll forever retain the habit of opening exterior doors by bashing into them with my shoulder. Every surface is too damp and the air is too dry at the same time, in seeming defiance of physics. The entirety of "outside" is forfeit, I am clawing at the walls, and a bad case of cabin fever is how one ends up with — just to pull a completely random example out of thin air — a 3D-printed rackmount server setup halfway assembled in myone's living room.
In an ongoing effort to keep me from disassembling household appliances, knocking down any load-bearing walls, or buying more vanity domain names, I've been working my way through some of the more locked-down TC39 proposals — the stuff already implemented in some browsers and almost certainly destined for the ECMAScript specification proper — and writing up primers on them so folks can stay a little ahead of the curve. The first is on the new Temporal object (that's object, not constructor, crucially) which I'm looking forward to using almost as much as I'm looking forward to not using Date.
The second is about the Explicit Resource Management proposal, which not only provides us with a consistent method for cleaning up after objects with finite lifetimes — an open file that eventually needs to be closed, for example — but a brand new using keyword for declaring variables that can take care of that cleanup for us. Spoilers, but as we speak I'm cooking up a little something about the ShadowRealm proposal. Is it of tremendous potential use? Yes! Am I writing about it partly because it's fun to say "shadow realm?" I'll never tell~!
Granted, none of these posts will get you too far in a vacuum. You can't make much sense of a shadow realm without understanding non-shadow realms — you can't fully understand the concept of implicit resource management without understanding how, say, WeakMaps work, and you won't get too far in understanding WeakMaps without understanding reference values and Symbols. JavaScript looms large, and it can seem unfathomably tall and unforgiving while you're still looking for the footholds you need to start the climb.
Well, I'm here to help with that too; I got nothin’ but time, here. Bundle up, take my be-mittened hand, and I'll guide you to, uh, the summit. Of JavaScript. Which is a mountain, is the idea— alright, yeah, fine, not my strongest metaphor. Listen, I'm just trying to psych myself up to go shovel the sidewalk yet again.
— Mat
