Upgrade to Pro — share decks privately, control downloads, hide ads and more …

You Should Try Elm

Nathan
March 03, 2017

You Should Try Elm

An introductory talk about the Elm programming language and its virtues.

Nathan

March 03, 2017
Tweet

More Decks by Nathan

Other Decks in Technology

Transcript

  1. What is Elm? • Elm is a programming language which

    compiles into JavaScript • You can use it while creating any client side application • Similar, in a way, to CoffeeScript • It’s really great! • http://elm-lang.org/ .elm .js
  2. Why Should I Develop Software? 1) Move in the same

    direction as your neighbours 2) Remain close to your neighbours 3) Avoid collisions with your neighbours
  3. Why Should I Develop Software? Simple Building Blocks → Useful

    Behaviour • Easy • Impact • Legacy
  4. Why Should I Develop Software? Simple Building Blocks → Useful

    Behaviour • Easy • Impact • Legacy • Personal Satisfaction
  5. Why Doesn’t Everyone Develop Software? Simple Building Blocks → Useful

    Behaviour • Easy • Impact • Legacy • Personal Satisfaction • Hard • Failure
  6. Why Doesn’t Everyone Develop Software? Simple Building Blocks → Useful

    Behaviour • Easy • Impact • Legacy • Personal Satisfaction • Hard • Failure
  7. Why Doesn’t Everyone Develop Software? Simple Building Blocks → Useful

    Behaviour • Easy • Impact • Legacy • Personal Satisfaction • Hard • Failure
  8. Why Should You Try Elm? • Community • Beginner Friendly

    Environment (the compiler talks!!) • No runtime exceptions!! • Works in small doses • Different style – it’s good for you
  9. No Runtime Exceptions • Problems are caught by the compiler

    before runtime • Type checking – by inference and by declared types • Pure functions and immutable data (everything is simple)
  10. Works in Small Doses • JavaScript Interoperability • Embed an

    Elm application into a single html element • Embed JavaScript driven components (like a datepicker or selectize input) in Elm* *This looks like it can get kind of hairy unless the JavaScript component is mostly autonomous
  11. Good Resources • Evan introducing the language: https://youtu.be/oYk8CKH7OhE • The

    Elm Architecture (and the whole guide): https://guide.elm-lang.org/architecture/ • Introductory talk where I got the examples from: https://youtu.be/3FNKaGm3gk0 • Intermediate Talk About Types – Making Impossible States Impossible: https://youtu.be/IcgmSRJHu_8 • Slack: http://elmlang.herokuapp.com/ to get an invite • Exercism: http://exercism.io/languages/elm/about
  12. What might prevent you from using Elm in production? •

    Availability of libraries • Difficulty implementing alongside entrenched JavaScript • The ceremony involved in strict functional programming • Complexity increases over the short term ... Start small