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

Friendly Elm (怖くないElm)

Yosuke Torii
November 04, 2016

Friendly Elm (怖くないElm)

An introduction to Elm, spoken at #10 市ヶ谷Geek★Night「型のあるフロントエンドの世界〜フロントエンド・フロンティア〜」 http://ichigayageek.connpass.com/event/43149/

Yosuke Torii

November 04, 2016
Tweet

More Decks by Yosuke Torii

Other Decks in Programming

Transcript

  1. 3 Who I am * Yosuke Torii * @jinjor *

    Works Applications Co., Ltd. * Contributor of Elm
  2. 4 Who I am * Yosuke Torii * @jinjor *

    Works Applications Co., Ltd. * Contributor of Elm
  3. 6 Q. How many folks have heard of Elm? Q.

    How many folks have written any piece of code in Elm?
  4. 7 Q. How many folks have heard of Elm? 45

    Q. How many folks have written any piece of code in Elm? 5
  5. 8 Elm is a FP Language * Generates JavaScript *

    Static Typing * Everything is Immutable * Fast rendering via Virtual DOM
  6. 10 How strong is Elm's type? Strong Haskell Elm Scala

    Java TypeScript JavaScript Ruby Python Flow
  7. 11 How strong is Elm's type? Strong Haskell Elm Scala

    Java TypeScript JavaScript Ruby Python Flow No Runtime Errors
  8. 14 Lots of complex UIs! * Copy / Cut /

    Paste * Undo / Redo * Selecting * Dragging * Zooming * Searching * Context Menu * Clipboard * Keyboard Shortcuts * Auto Saving * Co-editing
  9. 15 After several months... * Started using in our company

    (Still continuing development) * Open Source (WorksApplications/office-maker)
  10. 19 Refactoring with confidence * Regressions rarely happen * No

    fear with large/frequent changes * No untouchable code any more!
  11. 21 Elm is friendly for FP beginners ✓ FP for

    Front End developer ✗ Front End for FP programmer
  12. 22 No need to learn Haskell VS * Monad and

    other terminologies from Category theory * Type classes in general use The most difficult parts do not exist in Elm
  13. 23 Elm is getting even simpler 0.16 (2015/11) * More

    friendly compile error messages * Remove some record operations * Remove multi-way if 0.17 (2016/05) * Remove Signals (which was the most defficult) * Simplify main function 0.18 (2016/11) * More friendly compile error messages * Remove backticks * Remove [1..4] syntax * Remove primes in variable name
  14. 24 Elm is getting even simpler 0.16 (2015/11) * More

    friendly compile error messages * Remove some record operations * Remove multi-way if 0.17 (2016/05) * Remove Signals (which was the most defficult) * Simplify main function 0.18 (2016/11) * More friendly compile error messages * Remove backticks * Remove [1..4] syntax * Remove primes in variable name