Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Full-Scale Elm in Production

659 views

Published on

Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2pWj8Ra.

Richard Feldman introduces Elm, how it works, what differentiates it from the other front-end technologies, and gives practical advice for introducing it to an existing JavaScript codebase. Filmed at qconlondon.com.

Richard Feldman works as a Software Engineer at Noredink. He is the author of “Elm in Action” from Manning Publications, and the instructor for the Frontend Masters 2-Day Elm Workshop.

Published in: Technology
  • Protect your brain from memory loss with brain pill. find out more... ■■■ https://tinyurl.com/brainpill101
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Full-Scale Elm in Production

  1. 1. IN PRODUCTIONelmFULL-SCALE @rtfeldman
  2. 2. InfoQ.com: News & Community Site Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ elm-producton • Over 1,000,000 software developers, architects and CTOs read the site world- wide every month • 250,000 senior developers subscribe to our weekly newsletter • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • 2 dedicated podcast channels: The InfoQ Podcast, with a focus on Architecture and The Engineering Culture Podcast, with a focus on building • 96 deep dives on innovative topics packed as downloadable emags and minibooks • Over 40 new content items per week
  3. 3. Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide Presented at QCon London www.qconlondon.com
  4. 4. 2014 201620152013
  5. 5. 2 billion questions answered 100,000 lines of elm code 0 runtime exceptions IN PRODUCTION
  6. 6. Ellie
  7. 7. VIEW FUNCTION ARGUMENTS → VIRTUAL DOM
  8. 8. the elm architecture viewupdate Model Msg VDOM Elm Runtime
  9. 9. JavaScript React Elm DOM + globals components 1 immutable value APPLICATION STATE + stores
  10. 10. Object-Oriented vs Functional different paradigm to learn Elm has no components
  11. 11. Dynamic Types vs Type-Checked cheaper refactoring → less technical debt “if it compiles, it usually just works” more time in the console, less in the browser
  12. 12. IMPACT ON VELOCITY JS: Quicker to get something on the screen Elm: Higher overall velocity
  13. 13. Interoprerating with JavaScript Elm code talks to JavaScript the way it talks to servers JAVASCRIPT AS A SERVICE
  14. 14. MAINTAIN GUARANTEES JAVASCRIPT ECOSYSTEM while accessing the huge
  15. 15. npm much bigger than elm-package ecosystem publish JavaScript, binaries, etc. may also install keyloggers
  16. 16. elm-package installing packages can’t install keyloggers supports Elm code, not arbitrary JavaScript semantic versioning automatically enforced
  17. 17. elm-package less available off-the-shelf, more DIY write a wrapper around moment.js write a Date library in pure Elm long-term ecosystem quality
  18. 18. Full-Scale Elm Small-Scale Elm begins with
  19. 19. SHIP SOMETHING SMALL
  20. 20. GET IT INTO PRODUCTION
  21. 21. how will we... INTEGRATE it into our code? TEACH it to our teammates? BUILD and deploy it?
  22. 22. MINIMAL RISK MAJOR REWARD
  23. 23. how will we BUILD it? Sprockets (Rails) Webpack loader elm-make
  24. 24. ADVANCED BUILDS?
  25. 25. Server-Side Elm Server-Side Rendering Code Splitting What about...
  26. 26. “Why not use ______ instead?”
  27. 27. delight
  28. 28. “That should be an inspiration for every error message.” —John Carmack“That should be an inspiration for every error message.” —John Carmack
  29. 29. reliability
  30. 30. (optional types)(optional types)(optional types)
  31. 31. “just don’t use it” “also don’t use libraries that use it” any
  32. 32. any is considered part of best practices
  33. 33. LESS CRASHING THAN PLAIN JS ZERO RUNTIME EXCEPTIONS Elm
  34. 34. OCaml + BuckleScript Haskell (or GHCjs) Scala Clojure ClojureScript “Why not use a different FP language?”
  35. 35. optional typing ClojureScript
  36. 36. anything can be null ClojureScript
  37. 37. anything can run arbitrary JS code ClojureScript + BuckleScript
  38. 38. how will we HIRE anyone?
  39. 39. 11 developers hired in 2016 9 cited Elm as a reason for applying hiring was much harder before we used Elm!
  40. 40. Hiring for React, Redux, Immutable.js, Babel Hiring for Angular 2, TypeScript, Ramda Want to come write Elm full-time? WHICH JOB POSTS STAND OUT?
  41. 41. how will we TEACH it? more new hires already know React than Elm compiler aids beginner learning a LOT similar time to becoming prod contributor
  42. 42. guide.elm-lang.org RESOURCES How to Use Elm at Work elm-lang.org/blog
  43. 43. Kris Jenkins jenkster.com created elm-remote-data Luke Westby humblespark.com created Ellie TRAINING Brian Hicks aster.is created elm-benchmark
  44. 44. elmtown.github.io Elm Town Podcast
  45. 45. beginner-friendly community SLACK (5,000+ members, #beginners channel) elmlang.herokuapp.com REDDIT (weekly beginner questions thread) reddit.com/r/elm
  46. 46. St. Louis Zürich Chicago Seattle Utrecht Denver Copenhagen Hamburg DCHelsinki London Paris San Francisco
  47. 47. HOW CAN OUR TEAM DO THIS?
  48. 48. Full-Scale Elm Small-Scale Elm begins with
  49. 49. SHIP SOMETHING SMALL
  50. 50. GET IT INTO PRODUCTION
  51. 51. @rtfeldman
  52. 52. Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/elm- producton

×