Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Beyond JavaScript
Search
Jakob Mattsson
October 01, 2011
Programming
1.2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Beyond JavaScript
Given at JSConfEU 2011
Jakob Mattsson
October 01, 2011
More Decks by Jakob Mattsson
See All by Jakob Mattsson
Forgotten Funky Functions
jakobmattsson
1
510
Forgotten Funky Functions
jakobmattsson
0
580
Your HTTP API is not RESTful
jakobmattsson
3
630
Creating JavaScript modules
jakobmattsson
1
460
Automated CSS Testing - jsday Verona
jakobmattsson
1
600
Promise to test it - jsday Verona
jakobmattsson
2
690
Hyper Island - MVP
jakobmattsson
0
260
How to *actually* use promises in JavaScript
jakobmattsson
7
2.8k
Automated CSS Testing - Not Just a Myth (JSConf.Asia)
jakobmattsson
6
700
Other Decks in Programming
See All in Programming
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
290
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
280
GraphQL の onError と Nullability のこれから
quramy
0
200
Getting Started with Vibe Coding
miccheng
0
180
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
160
LLM 101
dalinaum
0
470
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
150
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.7k
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
170
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
360
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
230
Groovy as a human and AI friendly programming language
paulk
0
180
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
560
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
70
68k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
570
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
460
Discover your Explorer Soul
emna__ayadi
2
1.3k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
370
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
How to build a perfect <img>
jonoalderson
1
6.2k
Rails Girls Zürich Keynote
gr2m
96
14k
Prompt Engineering for Job Search
mfonobong
0
570
Transcript
Beyond JavaScript @jakobmattsson jakobmattsson.se
Everything is fucking dynamic
JavaScript is not JS
Static checking was good - Casting was evil
New perspectives
Combine the best of two worlds!
It failed
Open up a new set of possibilities
The dynamic languages disappoints
list.select { |x| x > 0 } filter (> 0)
list list.filter(function(x) { return x > 0 })
&& ||
EVERYTHING IS AN OBJECT!!!
What can Blub do?
What can Blub do?
What can Blub do? What can’t Blub do?
It’s not about a particular solution
It’s about doing as little as possible
A dynamic language should be moldable
The best part
But this conference is about JavaScript!
None
1. Full of stupid shit
1. Full of stupid shit 2. Platform for everything
1. Full of stupid shit 2. Platform for everything 3.
Has amazing ideas
Call by name
&& = lazyfunction(a, b) { if (execute(a)) { if (execute(b))
{ return true; } } return false; }; Call by name
Operators on steroids
v = a + b unless x > y Operators
on steroids
v = a + b unless x > y =>
(x > y).unless(v = a + b) Operators on steroids
Syntax unification
list.filter(> 0) Syntax unification
msg = { name: ’<’, arguments: [ { value: 0
} ] }; Syntax unification
filter = lazyfunction(msg) { var r = []; this.forEach(function(e) {
if (e.send(msg)) { r.push(e); } }); return r; } Syntax unification
We are not there yet
Safety? Performance?
What can Blub do? @jakobmattsson jakobmattsson.se What can’t Blub do?