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

Rethinking All Practices: Building Web Applications with Elm

Rethinking All Practices: Building Web Applications with Elm

React re-thought best practices for web and native development, but it is limited by the strengths and weaknesses of JavaScript.

Elm takes rethinking best practices even further by asking what a modern language designed for productive development should look like.

Signals and the Elm Architecture help you compose large complex applications out of small, understandable pieces. Elm's powerful type system and emphasis on pure functions and immutable data make refactoring and maintaining large applications faster and easier.

Elm and React share common ideas, and creating a new language helps Elm leverage those ideas in to a better development experience. Learn how Elm can make you a better React developer, and maybe, just maybe, take the plunge in to trying Elm yourself.

Jamison Dance

February 23, 2016
Tweet

More Decks by Jamison Dance

Other Decks in Programming

Transcript

  1. “ For most algebraic structures, including groups and rings, a homomorphism

    is an isomorphism if and only if it is bijective.” - Some Internet Rando
  2. Rethink Best Practices console.lol = console.log; for (var i =

    0; i < 100; i++) { console.lol('lol'); }
  3. Elm

  4. function foo(num) { if (num > 10) { return 'demo

    code is best code' } } console.log(foo(1).toUpperCase()) //
  5. function foo(num) { if (num > 10) { return 'demo

    code is best code' } } console.log(foo(1).toUpperCase()) //
  6. function foo(num: number): any { if (num > 10) {

    return 'demo code is best code' } } console.log(foo(1).toUpperCase()) //
  7. foo num = if num > 10 then "demo code

    is best code" else null
  8. foo num = if num > 10 then "demo code

    is best code" else "shoot"
  9. foo num = if num > 10 then Just "demo

    code is best code" else Nothing
  10. foo : Int -> Maybe String foo num = if

    num > 10 then Just "demo code is best code" else Nothing
  11. bar num = case foo num of Just str ->

    String.toUpper str Nothing -> "WELP"
  12. “ The competent programmer is fully aware of the strictly limited

    size of their own skull.” - Edsger W. Dijkstra
  13. “ The competent programmer is fully aware of the strictly limited

    size of their own skull.” - Edsger W. Dijkstra
  14. Caveats • Smaller community • Server rendering is not easy

    (but improving) • No React Native • Elm does best when it runs everything • Early days still