function updateUserScore(user, points) {
user.points += points
}
Slide 61
Slide 61 text
No content
Slide 62
Slide 62 text
Elm only has immutable data.
Slide 63
Slide 63 text
updateUser user points =
{ user | points = user.points + points }
Slide 64
Slide 64 text
No content
Slide 65
Slide 65 text
Solutions
Callbacks
Flux
Redux
Observables
Slide 66
Slide 66 text
Button
ButtonClicked
Update
Button
Model
Slide 67
Slide 67 text
Constraints versus guidelines.
Slide 68
Slide 68 text
All Programs
Good Programs
Elm Programs
Slide 69
Slide 69 text
Constraints can guide you towards
better design.
Slide 70
Slide 70 text
“ The competent programmer is
fully aware of the strictly limited
size of their own skull.”
- Edsger W. Dijkstra
Slide 71
Slide 71 text
Caveats
• Smaller community
• Server rendering is not easy (but improving)
• No React Native
• Elm does best when it runs everything
• Early days still
Slide 72
Slide 72 text
Elm React Native
http://ohanhi.github.io/elm-native-ui.html
Slide 73
Slide 73 text
Browser apps are growing.
Slide 74
Slide 74 text
JS tooling is evolving.
Slide 75
Slide 75 text
Elm is what it is evolving towards.
Slide 76
Slide 76 text
Resources
• elm-lang.org
• elmlang.herokuapp.com
• devchat.tv/js-jabber/175-jsj-elm-with-evan-
czaplicki-and-richard-feldman
• Effects As Data
• Let's Be Mainstream
• just bug me on twitter @jergason