Episode 92: (Un)breaking JavaScript with Yulia Startsev
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.
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 [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 [0:33:19]
“It’s significantly more difficult to remove something than it is to add something.” — @codehag [0:52:10]
Links Mentioned in Today’s Episode:
- tc39: How We Work (GitHub)
- SmooshGate: The ongoing struggle between progress and stability in JavaScript, Jacob Friedmann
- SmooshMonkey
- Reduce/Reduce Conflict, gnu.org
- JavaScript Records & Tuples Proposal, tc39 (GitHub)
- Record & Tuple Tutorial, tc39
- Kolates? (non-English programming language conference)
- Function.caller (deprecated), MDN
- Why was arguments.callee removed from ES5 strict mode?, MDN
- Temporal Proposal, tc39
- Symbol.species (please don’t use), MDN
- Companies scramble to defend against newly discovered 'Log4j' digital flaw, Jenna McLaughlin (NPR)
- CommonJS, Wikipedia
- Run to completion scheduling, Wikipedia
- English Linguistic Imperialism in Programming, Hannah Chung (PagerDuty)
- Coding Is for Everyone—as Long as You Speak English, Gretchen McCullough (WIRED)
How to find Yulia on the internet:
- Twitter: @codehag
- Github: codehag
- Twitch.tv: codehag
- Compiler Compiler, Yulia Startsev (YouTube)
- Mozilla Hacks: Yulia Startsev
This week's picks:
- Yulia Startsev
- Sophie from Mars, YouTube
- The Ballad of Himbo Geralt: A look at Netflix' The Witcher | Witchermania, Sophie from Mars
- Lang Jam, JT (GitHub)
- Advent of Code 2021 in APL #1!, code_report (YouTube)
- Functional vs Array Programming, code_report (YouTube)
- Alex
- Santa Monica, Board Game
- Ari
- Golden Girls, ABC (on Hulu)
- Tessa
- Body pillow
- Teacup, Smarto Club (Xbox Series X and Series S, PlayStation 4, Microsoft Windows, Nintendo Switch, Xbox One, PlayStation 5)
- Hellbound, Netflix
- Jorts
- Jorts update