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
91
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
210
TypeScript tips that could save your life
khaosdoctor
0
240
É hora de falar sobre Deno
khaosdoctor
0
90
JS Software testing for beginners
khaosdoctor
0
100
Ambientes dinâmicos com GitHub Actions
khaosdoctor
0
60
The Dark Side of JavaScript
khaosdoctor
0
93
Integrating Containers Into JavaScript
khaosdoctor
0
85
Entendendo o ecossistema de containers
khaosdoctor
1
1.1k
Other Decks in Technology
See All in Technology
Mastering Ruby Box
tagomoris
3
150
「気づいたら仕事が終わっている」バクラクAIエージェント本番運用の裏側 / layerx-bakuraku-aie2026
yuya4
19
11k
トークン数だけでは測れない — Claude Code 組織展開の効果検証から学んだこと
makikub
0
140
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
2
1.6k
MIERUNE JCT 発表資料「宇宙から伊能忠敬ごっこ」
syuchimu
0
190
チームで進めるAI駆動アジャイル×ウォーターフォール
kumaiu
0
110
ポケモンの型をTypeScriptの型システムで表現してみた
subroh0508
0
360
Agentic Web
dynamis
1
190
運用を見据えたAIエージェント設計実践
amacbee
1
3.4k
Platform Engineering as a Product: Criteria for Improvement and Multi-Tenant Design
kumorn5s
0
530
noUncheckedIndexedAccess、3時間、1万円。 / noUncheckedIndexedAccess, 3 Hours, 10,000 JPY.
kaonavi
1
340
あなたの AI ワークスペースに、 専門コーダーを連れてくる - Amazon Quick Desktop 最新情報
kawaji_scratch
1
120
Featured
See All Featured
We Are The Robots
honzajavorek
0
240
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
850
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Mobile First: as difficult as doing things right
swwweet
225
10k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
エンジニアに許された特別な時間の終わり
watany
107
250k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Accessibility Awareness
sabderemane
1
130
The Spectacular Lies of Maps
axbom
PRO
1
790
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
400
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