Episode 92: (Un)breaking JavaScript with Yulia Startsev - a podcast by The Enjoy the Vue Team

from 2022-05-30T06:00

:: ::

Support us on Kofi! (https://ko-fi.com/C0C86NYJW)
Have you ever wondered if it's worth breaking the internet? No? Well, today's guest has! Tune in as we chat with Yulia Startsev, a software engineer for Mozilla, and a compiler for JavaScript. We dive into the conversation with who uses semi-colons (and when and why), followed by an anecdote from Yulia about Smoosh and the potential to break the internet. Yulia talks us through the considerations when naming a new JavaScript function, and the promising changes around immutability. We also learn how to remember the difference between the splice and slice functions, and why pattern matching is such an exciting prospect. We hear about the four stages of deciding to change JavaScript, why most programming languages are written in English, and why certain popular functions like caller and colleague were deprecated. We wrap up the episode with a summary of what the array by group function does, who funds the updates to JavaScript, and what Yulia’s fantasy changes to the web would be! So, for all this and so much more, tune in today.Key Points From This Episode:
Welcome to today’s guest, Yulia Startsev, an engineer at Mozilla and compiler for JavaScript. A discussion around semicolons and who’s pro and who’s against (and who’s neither!).
Why it’s important not to break the internet: a funny anecdote about SmooshGate. The considerations to take into account when naming a function. 
What’s coming to JavaScript: Immutability. Why Tuples are such an exciting prospect and their role in wrap-around vs incomplete infinite grids. 
How the team understands the difference between splicing and slicing. How Yulia and the JavaScript team come up with new names. 
The idea behind pattern matching, and how it will reduce the cognitive load on developers. The four stages of deciding to accept a change to JavaScript. 
Why most programming languages are written in English. Why the caller and colleague functions were deprecated. 
Array by group: what it is, why it’s interesting, and the readability issues it is facing. Things the team would love to add to or change in JavaScript. 
When Yulia is willing to break the web. Who funds the updates and changes to JavaScript. 
Yulia’s fantasy changes to JavaScript, and why these are far in the future. Where you can find out more about Yulia!
Today's picks: from board games to body pillows to YouTube essayists. Tweetables:
“Pattern matching is a proposal I am quite excited about, switch in case statements are very interesting in JavaScript. By interesting, I mean, broken.” — @codehag (https://twitter.com/codehag?ref_src=twsrc%255Egoogle%257Ctwcamp%255Eserp%257Ctwgr%255Eauthor) [0:27:23]“[Pattern matching is] very exciting. It's very, very powerful, which makes it a little scary because using an overpowered tool for something that doesn't need that level of power can lead you to making mistakes that you wouldn't make with a less powerful tool.” — @codehag (https://twitter.com/codehag?ref_src=twsrc%255Egoogle%257Ctwcamp%255Eserp%257Ctwgr%255Eauthor) [0:33:19]“It’s significantly more difficult to remove something than it is to add something.” — @codehag (https://twitter.com/codehag?ref_src=twsrc%255Egoogle%257Ctwcamp%255Eserp%257Ctwgr%255Eauthor) [0:52:10]
Links Mentioned in Today’s Episode:tc39: How We Work (https://github.com/tc39/how-we-work) (GitHub)
SmooshGate: The ongoing struggle between progress and stability in JavaScript (https://medium.com/@jacobdfriedmann/smooshgate-the-ongoing-struggle-between-progress-and-stability-in-javascript-2a971c1162dd), Jacob FriedmannSmooshMonkey (https://bugzilla.mozilla.org/show_bug.cgi?id=smooshmonkey)
Reduce/Reduce Conflict (https://www.gnu.org/software/bison/manual/html_node/Reduce_002fReduce.html#:~:text=A%20reduce%2Freduce%20conflict%20occurs,zero%20or%20more%20word%20groupings.), gnu.orgJavaScript Records&Tuples Proposal (https://github.com/tc39/proposal-record-tuple), tc39 (GitHub) 
Record&Tuple Tutorial (https://tc39.es/proposal-record-tuple/tutorial/#:~:text=What%20is%20Record%20%26%20Tuple%20%3F,a%20deeply%20immutable%20primitive%20value.), tc39
Kolates? (non-English programming language conference)Function.caller (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/caller) (deprecated), MDN
Why was arguments.callee removed from ES5 strict mode? (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee#why_was_arguments.callee_removed_from_es5_strict_mode), MDNTemporal Proposal (https://github.com/tc39/proposal-temporal), tc39
Symbol.species (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/species) (please don’t use), MDNCompanies scramble to defend against newly discovered 'Log4j' digital flaw (https://www.npr.org/2021/12/14/1064123144/companies-scramble-to-defend-against-newly-discovered-log4j-digital-flaw), Jenna McLaughlin (NPR)
CommonJS (https://en.wikipedia.org/wiki/CommonJS#:~:text=CommonJS%20is%20a%20project%20with,outside%20of%20the%20web%20browser.&text=programming%20with%20Node.-,js.,browsers%20don't%20support%20CommonJS.), Wikipedia
Run to completion scheduling (https://en.wikipedia.org/wiki/Run_to_completion_scheduling), WikipediaEnglish Linguistic Imperialism in Programming (https://www.pagerduty.com/eng/english-linguistic-imperialism-programming), Hannah Chung (PagerDuty)
Coding Is for Everyone—as Long as You Speak English (https://www.wired.com/story/coding-is-for-everyoneas-long-as-you-speak-english), Gretchen McCullough (WIRED)How to find Yulia on the internet:
Twitter: @codehag (http://twitter.com/codehag)Github: codehag (https://github.com/codehag)
Twitch.tv: codehag (https://twitch.tv/codehag)Compiler Compiler (https://www.youtube.com/watch?v=gPcHBzWXq1E&list=PLo3w8EB99pqJVPhmYbYdInBvAGarDavh-&index=1), Yulia Startsev (YouTube)
Mozilla Hacks: Yulia Startsev (https://hacks.mozilla.org/author/ystartsevmozilla-com)This week's picks:
Yulia StartsevSophie from Mars (https://www.youtube.com/channel/UCJmlCcnfMlyPA2oSbb072QA), YouTube
The Ballad of Himbo Geralt: A look at Netflix' The Witcher | Witchermania (https://www.youtube.com/watch?v=yO9ZGr84Xg4), Sophie from MarsLang Jam (https://github.com/langjam/langjam), JT (GitHub)
Advent of Code 2021 in APL #1! (https://www.youtube.com/watch?v=DNYxfoCEVEM), code_report (YouTube)Functional vs Array Programming (https://www.youtube.com/watch?v=UogkQ67d0nY), code_report (YouTube)
AlexSanta Monica (https://www.alderac.com/santa-monica/), Board Game
AriGolden Girls (https://www.hulu.com/series/the-golden-girls-a6e5db1c-ab70-451d-8b8c-2fba9ea29248), ABC (on Hulu)
TessaBody pillow
Teacup (https://whitethorngames.com/teacup), Smarto Club (Xbox Series X and Series S, PlayStation 4, Microsoft Windows, Nintendo Switch, Xbox One, PlayStation 5)Hellbound (https://www.netflix.com/title/81256675), Netflix
Jorts (https://twitter.com/AITA_online/status/1470862918908624908)Jorts update (https://twitter.com/Rainbowmazin/status/1470871686996283394)

Further episodes of Enjoy the Vue

Further podcasts by The Enjoy the Vue Team

Website of The Enjoy the Vue Team