Slide 1

Slide 1 text

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