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
Beyond JavaScript
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Jakob Mattsson
October 01, 2011
Programming
1.2k
2
Share
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
480
Forgotten Funky Functions
jakobmattsson
0
540
Your HTTP API is not RESTful
jakobmattsson
3
610
Creating JavaScript modules
jakobmattsson
1
430
Automated CSS Testing - jsday Verona
jakobmattsson
1
570
Promise to test it - jsday Verona
jakobmattsson
2
640
Hyper Island - MVP
jakobmattsson
0
230
How to *actually* use promises in JavaScript
jakobmattsson
7
2.7k
Automated CSS Testing - Not Just a Myth (JSConf.Asia)
jakobmattsson
6
670
Other Decks in Programming
See All in Programming
実用!Hono RPC2026
yodaka
2
280
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
1.9k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
320
From Formal Specification to Property Based Test
ohbarye
0
530
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
910
【26新卒研修】OpenAPI/Swagger REST API研修
dip_tech
PRO
0
110
PHPでローカル環境用のSSL/TLS証明書を発行することはできるのか? #phpconkagawa
akase244
0
120
의존성 주입과 모듈화
fornewid
0
150
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
2.2k
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
4
950
JOAI2026 1st solution - heron0519 -
heron0519
0
160
Kingdom of the Machine
yui_knk
2
1.2k
Featured
See All Featured
It's Worth the Effort
3n
188
29k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.4k
Technical Leadership for Architectural Decision Making
baasie
3
350
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
350
Are puppies a ranking factor?
jonoalderson
1
3.3k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
280
sira's awesome portfolio website redesign presentation
elsirapls
0
230
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
180
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
Designing for humans not robots
tammielis
254
26k
Bash Introduction
62gerente
615
210k
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?