Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The future of JavaScript
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Lucas Santos
July 10, 2023
Technology
96
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The future of JavaScript
Lucas Santos
July 10, 2023
More Decks by Lucas Santos
See All by Lucas Santos
The Hitchhiker's Guide for an Amazing API with TypeScript
khaosdoctor
0
120
Escalando globalmente com TypeScript e JavaScript na Klarna
khaosdoctor
0
220
TypeScript tips that could save your life
khaosdoctor
0
250
É hora de falar sobre Deno
khaosdoctor
0
93
JS Software testing for beginners
khaosdoctor
0
100
Ambientes dinâmicos com GitHub Actions
khaosdoctor
0
69
The Dark Side of JavaScript
khaosdoctor
0
97
Integrating Containers Into JavaScript
khaosdoctor
0
86
Entendendo o ecossistema de containers
khaosdoctor
1
1.1k
Other Decks in Technology
See All in Technology
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
680
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
1.8k
関東Kaggler会発表資料
takoi
1
200
Pavlokで始める電撃駆動開発
sgrsn
0
180
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
370
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
6.9k
Digitization部 紹介資料
sansan33
PRO
2
7.7k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
6
1k
PLATEAU で バーチャル花火大会
tatsuya1970
0
110
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.2k
Exploring anti-patterns in Rails
aemeredith
3
460
Crafting Experiences
bethany
1
240
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
740
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
330
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
270
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
230
Transcript
The future of JS it's not about what it is,
but what it could be
who am I_ {twitter, youtube, linkedin…}.lsantos.dev software engineer_
[email protected]
agenda_ - How JS actually evolves - What's coming next
- 👍 - stage 4 proposals - 🤩 - stage 3 proposals - 🤔 - stage 2 proposals - 👀 - stage 1 proposals - Final remarks and refs
How JS evolves?
JS is actually not JS
What is JS
What is JS
What is JS
What is JS this is JavaScript
What is JS this is JavaScript
What is JS this is JavaScript
What is JS this is JavaScript these are the caretakers
TC39 is organized in stages
there are 5 stages (or 4)
summary - Stage 0 - Draft - Stage 1 -
Better draft - Stage 2 - Definition - Stage 3 - Refinements - Stage 4 - Shipping 🚀
warning
Stage 4 things that are shipped!
RegEx unicode sets mode
aka: the v flag
RegEx v flag
RegEx v flag
RegEx v flag
RegEx v flag https://lsantos.dev/v8-regexp-v
RegEx v flag https://lsantos.dev/mdn-regex-set
Change array by copy
change array by copy
change array by copy
change array by copy
change array by copy https://lsantos.dev/mdn-array-copy
Stage 3 things that are done
temporal
temporal
temporal
temporal https://blog.lsantos.dev/temporal-api/
temporal https://lsantos.dev/tc39-temporal
what's the status?
testing temporal
explicit resource management
aka: using
using
using
using
using constructor called
using constructor called conn[Symbol.dispose]() called as scope ends
async using
async using https://lsantos.dev/tc39-using
JS native decorators
JS native decorators
JS native decorators
JS native decorators
JS native decorators
JS native decorators: class methods
JS native decorators: class assessors
JS native decorators: class fields
JS native decorators: classes
we cannot decorate parameters https://lsantos.dev/tc39-parameter-decorators
more resources https://lsantos.dev/tc39-decorators
more resources https://lsantos.dev/tc39-decorators https://blog.lsantos.dev/javascript-decorators/
Other proposals
other proposals - New methods to Set https://lsantos.dev/tc39-set-methods
other proposals - (async)Iterator helpers https://lsantos.dev/tc39-iterator-helpers
Stage 2 things that are getting there
throw expressions
throw expressions
throw expressions
throw expressions https://lsantos.dev/tc39-throw
immutable structures
records: immutable objects
records: immutable objects
records: immutable objects
tuples: immutable arrays
tuples: immutable arrays https://lsantos.dev/tc39-records
JSON.parseImmutable
pipeline operator
pipeline operator
pipeline operator
pipeline operator https://lsantos.dev/tc39-pipeline-op
iterator ranges
Iterator.range
Other proposals
other proposals - Array grouping https://github.com/tc39/proposal-array-grouping
other proposals - parseImmutable https://github.com/tc39/proposal-json-parseimmutable
other proposals - map.upsert https://github.com/tc39/proposal-upsert
Stage 1 things
types in JS
types in JS https://lsantos.dev/tc39-js-types
do expressions
do expressions https://lsantos.dev/tc39-do-expr
pattern matching
pattern matching https://lsantos.dev/tc39-pattern-matching
Other proposals
other proposals - Function memoization https://github.com/tc39/proposal-function-memo - Reversible split https://github.com/tc39/proposal-reversible-string-split
- slice notation https://github.com/tc39/proposal-slice-notation - operator overloading https://github.com/tc39/proposal-operator-overloading - object pick/omit https://github.com/tc39/proposal-object-pick-or-omit - parameter decorator https://github.com/tc39/proposal-class-method-parameter-decorators - structs and mutexes https://github.com/tc39/proposal-structs - Intl.MessageFormat https://github.com/tc39/proposal-intl-messageformat
refs_ - https://lsantos.dev/tc-39-type-annotations - https://lsantos.dev/tc39-process - https://lsantos.dev/tc39-stage-1 - https://lsantos.dev/tc39-stage-2 -
https://lsantos.dev/tc39-stage-3 - https://lsantos.dev/tc39-stage-4 - https://lsantos.dev/ecma-262
This talk: https://lsantos.dev/whats-next-for-js
thank you_ lsantos.dev