Episode 85: TC39: How the JavaScript Sausage Gets Made with Mark Cohen

Enjoy the Vue - A podcast by The Enjoy the Vue Team

Categories:

Support us on Kofi! Design by committee usually has a bad connotation but when it comes to specifying JavaScript, making sure a new feature doesn’t break the internet is just too big a task for one person. Today on the show we invite Mark Cohen to talk about what it is like being on the board of TC39, the institution which standardizes the JavaScript language under the ECMAScript specification. We kick things off with some history behind TC39 before diving right into some of the debates around how to implement new features within the committee and the larger JavaScript community. From there, Mark weighs in on the main goal of TC39, that of ensuring cross-browser functionality, talking about why it is such a challenging but necessary project. We also speak to Mark about their current focus of championing the move toward pattern matching in JavaScript, getting into some of the ideas being bounced around as far as syntax and all the possibilities this feature will enable. Our discussion doesn’t end there though, as we pick Mark’s brain about the processes the TC39 follows for seeing a proposal through from idea to implementation, and also hear about how they adhere to the ‘don’t break the web’ principle. So for all this and more on Enjoy the Vue, tune in today! Key Points From This Episode: Introducing Mark, their affinity for programming languages, and how they got involved with specifying JavaScript. The origins of JavaScript in the TC39 group created under Ecma International. The role of plenaries at TC39 and how the group comes to decisions via consensus. What the pipe operator is and the different sides in the debate for its syntax. Examples where big contributors to languages felt insulted by communities or decisions. Cool assignment operators like Python’s walrus and Rust’s turbofish. Whether ‘design by committee’ is a bad thing in the case of JavaScript. Mark’s perspective that the main goal of the committee is to ensure cross-browser functionality. How TC39 is preventing browser wars using the test 262 suite. The desire for pattern matching in JS and why Mark is championing this. How similar implementing pattern matching in JS would be to reusing switch statements. The intricacies of the syntax and keywords of JS pattern matching and what will be possible. Four phases of TC39 proposals and how they apply the ‘don’t break the web’ principle. The failed array.prototype.flatten project and what led to the ‘smooshed gate controversy’. Where to find Mark online. This week’s picks! Tweetables: “The primary charter of the committee is to make sure that things work across browsers.” — @mpcsh_ [0:22:12] “Companies still want control of the web and control of the users of the web, right? But there's a lot more protection now. One of the big invisible ways that this happens is a tool that the committee maintains called test 262.” — @mpcsh_ [0:25:30] “I'm championing the pattern matching proposal.” — @mpcsh_ [0:27:29] “So that phrase, 'don't break the web’ is a common refrain among the committee. It basically reflects our infinite backwards compatibility mandate.” — @mpcsh_ [0:46:33] Links Mentioned in Today’s Episode: TC39 resources: TC39 Homepage/Spec TC39 GitHub TC39 Discourse TC39 Matrix Proposals: Pattern matching Temporal Record & tuple Pipeline operator Ecma International test262, TC39 (GitHub) Walrus Operator What is Rust's turbofish?, David Pedersen State of JS SmooshGate FAQs, Mathias Bynens Where to Find Mark Online: Twitter: @mpcsh_ Github: @mpcsh Blog/website: mpc.sh This weeks picks: Mark Cohen Headphones: ÆON 2 Noire, Dan Clark Audio Crafting Interpreters, Bob Nystrom Baba Is You, Hempuli Oy, Arvi Teikari (PC, Switch, iPad, Android) The Fifty: Mt Stimson, Cody Townsend (YouTube) Alex My Awesome Jamstack Conf talk, Alex Riviere (Jamstack Conf 2021) Ari Moosewood Restaurant Cooks at Home, Moosewood Collective Oscar Slay the Spire, MegaCrit (Microsoft Windows, macOS, Linux, Nintendo Switch, PlayStation 4, Xbox One, iOS, Android) Tessa Dumpster Fire - This is Fine Vinyl Figure, 100% Soft x KC Green What's new in WSL 2, Microsoft On Your Side, Nathan Fielder (This Hour Has 22 Minutes, CBC) Support Enjoy the Vue