What’s so special
about Elm?
Ossi Hanhinen
Futurice
@ohanhi
Slide 2
Slide 2 text
What we used to do
Slide 3
Slide 3 text
jQuery
Hello Tampere
Tampere
event
listener
change
Slide 4
Slide 4 text
jQuery
Hello Tampere
Tampere
event
listener
change
Ajax
change
Slide 5
Slide 5 text
React
Just the UI
Redux
Predictable state
Slide 6
Slide 6 text
Single State
Model
View
map
Slide 7
Slide 7 text
Single Update
Action Update
View View
Model
Slide 8
Slide 8 text
Single Update
Action Update
User View
Model
View
Slide 9
Slide 9 text
I thought this talk was
supposed to be about Elm!?
Slide 10
Slide 10 text
React is JavaScript
Slide 11
Slide 11 text
Elm is Elm
Slide 12
Slide 12 text
Functional Programming
Slide 13
Slide 13 text
Is your function pure?
Slide 14
Slide 14 text
Is your function pure?
Slide 15
Slide 15 text
In Elm all functions are pure
Slide 16
Slide 16 text
Currying and Partial Application
Slide 17
Slide 17 text
Demo:
Currying
Slide 18
Slide 18 text
Functional Reactive Programming
Slide 19
Slide 19 text
Demo:
Interactive app
Slide 20
Slide 20 text
Language features
Slide 21
Slide 21 text
elm
Strong static
types
That don’t get in the way
Slide 22
Slide 22 text
Elm has guarantees
Slide 23
Slide 23 text
zero
runtime exceptions
Slide 24
Slide 24 text
Tools
elm-make - Build Elm and catch errors ahead of time
elm-package - Package manager that enforces SemVer
elm-reactor - Hot swapping and time-traveling since 2013
elm-format - Automatic code beautification
Slide 25
Slide 25 text
“Go and learn Elm. Seriously.
It is the simplest language I have
ever tried, and the team has put a
crazy lot of effort into making the
developer experience as nice as
possible.”
@ohanhi