JAVASCRIPT IS EVERYWHERE?
COOL, LET’S LEVEL UP PROGRAMMING
FEDERICO BUILES
@FEBUILES
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
MOTIVATION
Slide 4
Slide 4 text
Our capacity to create new
things is limited by what our
computers can do.
Slide 5
Slide 5 text
What our computers can do is
[only] limited by what we can
tell them to do
Slide 6
Slide 6 text
What we can tell them to do is
limited by... us?
Slide 7
Slide 7 text
bar charts, our effort vs.
computer
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
This protocol is what allows
us to express ideas to the
computer
Slide 10
Slide 10 text
One part of this protocol are
programming languages
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
Having a better protocol
allows us to create greater
things
Slide 13
Slide 13 text
JAVASCRIPT
Slide 14
Slide 14 text
JAVASCRIPT IS EVERYWHERE
Slide 15
Slide 15 text
JAVASCRIPT IS EVERYWHERE
BROWSER
Slide 16
Slide 16 text
JAVASCRIPT IS EVERYWHERE
SERVERS
Slide 17
Slide 17 text
JAVASCRIPT IS EVERYWHERE
EDUCATION
Slide 18
Slide 18 text
JAVASCRIPT IS EVERYWHERE
ELECTRONICS
Slide 19
Slide 19 text
EVERYWHERE IS JAVASCRIPT
0_0
Slide 20
Slide 20 text
TOMORROW’S LANGUAGES ARE
DIRECTLY INFLUENCED BY THE
LANGUAGES WE USE TODAY
Slide 21
Slide 21 text
Mandatory cliché quote: “The best
way to predict the future is to
invent it."
Alan Kay
Slide 22
Slide 22 text
JavaScript is a mainstream
language and it’ll affect the
future of programming
Slide 23
Slide 23 text
JavaScript is a mainstream
language and it’ll affect the
future of programming
Let’s try to improve a bit.
Slide 24
Slide 24 text
3ABSTRACTION
ACTORS
FUNCTIONAL
PROGRAMMING
Slide 25
Slide 25 text
ACTORS
FUNCTIONAL
PROGRAMMING
1ABSTRACTION
Slide 26
Slide 26 text
[1] We Really Don’t Know How to
Compute
http://www.infoq.com/presentations/We-Really-Dont-Know-How-To-Compute
[2] Up and Down the Ladder of
Abstraction
http://worrydream.com/LadderOfAbstraction/
Slide 27
Slide 27 text
ABSTRACTION
ACTORS
FUNCTIONAL
PROGRAMMING
2
Slide 28
Slide 28 text
“According to Carl Hewitt, unlike previous
models of computation, the Actor model was
inspired by physics including general relativity
and quantum mechanics.”
Wikipedia
Slide 29
Slide 29 text
ACTOR
SEND MESSAGES
SPAWN ACTORS
PREPARE FOR NEXT
MESSAGE
Slide 30
Slide 30 text
SEND MESSAGES
SPAWN ACTORS
PREPARE FOR NEXT
MESSAGE
ACTOR
Slide 31
Slide 31 text
SEND MESSAGES
SPAWN ACTORS
PREPARE FOR NEXT
MESSAGE
ACTOR
Slide 32
Slide 32 text
SEND MESSAGES
SPAWN ACTORS
PREPARE FOR NEXT
MESSAGE
ACTOR
Slide 33
Slide 33 text
ACTOR
SEND MESSAGES
CREATE ACTORS
PREPARE FOR NEXT
MESSAGE
CONCURRENTLY
Slide 34
Slide 34 text
“This will take a
while. I better
spawn 10k agents
and let the others
know about them”
Slide 35
Slide 35 text
“This will take a
while. I better
spawn 10k agents
and let the others
know about them”
SEND MESSAGES
CREATE ACTORS
PREPARE FOR NEXT
MESSAGE
Slide 36
Slide 36 text
“This will take a
while. I better
spawn 10k agents
and let the others
know about them”
SEND MESSAGES
CREATE ACTORS
PREPARE FOR NEXT
MESSAGE
Slide 37
Slide 37 text
“This will take a
while. I better
spawn 10k agents
and let the others
know about them”
SEND MESSAGES
CREATE ACTORS
PREPARE FOR NEXT
MESSAGE
Slide 38
Slide 38 text
THE ACTOR DOES NOT KNOW
WHO THE SENDER OF A
MESSAGE WAS
Slide 39
Slide 39 text
NOW YOU’RE FORCED INTO ASYNC.
THE ACTOR DOES NOT KNOW
WHO THE SENDER OF A
MESSAGE WAS
Slide 40
Slide 40 text
ACTOR
IDENTIFIED BY AN ADDRESS
Slide 41
Slide 41 text
No content
Slide 42
Slide 42 text
[1] A Universal Modular ACTOR
Formalism for Artificial Intelligence
http://worrydream.com/refs/Hewitt-ActorModel.pdf
[2] The Future of Programming
http://worrydream.com/dbx/
[3] Erlang & Scala