A Quick History

Evan Czaplicki

  • Elm creator
  • Elm is an extension of his senior thesis
  • Worked at Prezi; works at NoRedInk as Open Source Engineer


  • Elm is very young -- Proposed in 2012
  • Every new version is not guaranteed to support Elm apps written under previous versions
  • Elm 0.18 was released Nov 14, 2016.

Paradigm Shift

Imperative Programming

  • What you're used to
  • The steps the computer must take to solve a problem
  • Sometimes used synonymously with the term "procedural"

Declarative Programming

  • Describing what the program must accomplish, as opposed to how to accomplish a task as a series of steps
  • Examples: SQL, Regular Expressions, and Functional Programming

Functional Programming

  • A type of Declarative Programming
  • Composing the solution to a problem as a set of functions to be executed
    • You carefully define the input to each function and what each function returns
    • Avoids state and mutable data
  • Pure functions maintain no state
    • They only depend on the input they are given when called

Elm Development

How it works

What it's used for

  • Creating client-side web applications

Why do people like it?

Elm in CPL


  • Version 0.18
  • Only the basics
  • Try to get you thinking differently