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

Why you should consider Ember.js for your next project

891a8ee280b3722a080a7f7e47b53417?s=47 Balint Erdi
January 20, 2017

Why you should consider Ember.js for your next project

My talk given at AgentConf 17, in Dornbirn Austria, on January 20th, 2017.

891a8ee280b3722a080a7f7e47b53417?s=128

Balint Erdi

January 20, 2017
Tweet

More Decks by Balint Erdi

Other Decks in Technology

Transcript

  1. Why you should consider Ember.js for your next project Agent

    Conference, Dornbirn, 01/20/2017
  2. None
  3. Interrail?

  4. None
  5. None
  6. None
  7. Balint Erdi balinterdi baaz on Twitter https://balinterdi.com

  8. https://balinterdi.com/agentconf17

  9. My Ember.js story • January 2013 • Once I grokked

    it, I loved it • Became an Ember.js consultant and writer • Made a screencast series, wrote dozens of blog posts, held workshops, presented at conferences • Wrote a book for beginners • Still going strong
  10. None
  11. A framework for creating ambitious web applications

  12. A framework for creating ambitious web applications cozy

  13. None
  14. An open source SDK for the web

  15. Ember in 5 minutes

  16. Route Controller Template Component Model instantiates renders serves as context

    for instantiates Helper uses uses
  17. /bands/1/songs

  18. /bands/1/songs

  19. None
  20. Why Ember? 1. The power of conventions 2. Batteries included

    3. Incredible tooling 4. Testing 5. Backward compatibility as a tenet 6. Rich ecosystem of add-ons 7. Documentation 8. Reliable, regular release cycle 9. MIT license 10. Public RFC process
  21. 1. The power of conventions

  22. “Make decisions so your users don't have to.”

  23. Less time to get up & running on new projects

  24. Lower maintenance, hiring and consulting costs

  25. More team flexibility

  26. “It’s no secret that it has a steeper learning curve

    compared to some other frameworks but once you’ve got over that, it makes you a really productive developer with its conventions and opinions acting as useful guard rails. Features get delivered to the market quicker.” Why we love Ember at British Gas – British Gas
  27. 2. Batteries included

  28. Everything just works

  29. More time to concentrate on what matters

  30. Less bikeshedding

  31. The aggregate wisdom and consideration of several people & several

    years
  32. “Entrusting high-level architectural technology decisions to engineers who have limited

    experience in a domain often leads to bikeshedding and bad decisions —  and this showed in the side project we did.” Choosing Ember over React in 2016 – Instant 2FA
  33. 3. Incredible tooling

  34. Ember CLI

  35. $ ember new agent-conf

  36. ES2015 and ES2016 via Babel

  37. Generators

  38. $ ember g route cities

  39. $ ember g component city-selector

  40. Live reload

  41. Ember Inspector

  42. None
  43. 4. Testing

  44. $ ember g component-test city-selector

  45. $ ember g acceptance-test bands

  46. None
  47. $ ember test --server

  48. None
  49. On CI servers, run `ember test`

  50. 5. Backward compatibility as a tenet

  51. “No app left behind”

  52. Most things should keep working without anyone noticing

  53. “Stability without stagnation”

  54. Clear communication about deprecations

  55. “We had a smooth transition to the 2.x series when

    it came about as the transition path was well communicated in advance and there were addons that helped with the transition.” Why we love Ember at British Gas – British Gas
  56. A bridge to the future

  57. “They know that a team paralyzed with doubt about whether

    they’re coding using modern techniques won’t be able to focus on writing the best apps they can today. And this is why changes to the framework are always accompanied by an upgrade path for older apps.” Safety of the herd - Ryan Toronto
  58. Goodies for free

  59. HTMLBars rewrite (Ember 1.10 - 2015/02)

  60. Glimmer 1 rewrite (Ember 1.13 - 2015/06)

  61. Glimmer 2 rewrite (Ember 2.10 - 2016/11)

  62. Kind of like the JVM

  63. None
  64. 6. Rich ecosystem of add-ons

  65. None
  66. The world is an “ember install” away

  67. $ ember install liquid-fire

  68. $ ember install ember-simple-auth

  69. $ ember install ember-cli-mirage

  70. The addon eco-system is massive and the emberaddons website along

    with its ember observer score makes it easy to find the right one for your needs. Why we love Ember at British Gas – British Gas
  71. 7. Documentation

  72. Learning sub team

  73. Ember Guides

  74. Slack

  75. 8. Reliable, regular release cycle

  76. (borrowed from Chrome)

  77. Every 6-week there is a new release

  78. None
  79. Inclusion strategy for new features

  80. LTS releases

  81. SemVer

  82. 9. MIT License

  83. 10. Public RFC process

  84. (borrowed from Rust)

  85. New features/ modifications have to go through the RFC process

  86. Why? Alternatives. How do we teach this?

  87. Open Initial comment period Final comment period Close

  88. Case Study

  89. Deprecate Ember.K

  90. None
  91. None
  92. None
  93. Implementation work begins

  94. Add deprecation warning to codebase

  95. None
  96. Ember 2.11-beta release

  97. Provide an easy way forward

  98. None
  99. None
  100. Pearls of Wisdom

  101. “The cost of learning & training never disappears, but the

    key trick here is broadly sharing the cost. Each time you force developers to make a curation decision with multiple valid answers, you fragment the pool of people who can share this cost. (…) That is why I'm so happy with the massive level of investment the Ember community pours into shared solutions. Shared solutions are harder to create than one-offs, but they're incredibly valuable.” Strong Conventions Make Hiring Easier – Edward Faulkner
  102. “Software gives us the power to embed skills and knowledge

    into tools. Doing this is hard work and it takes time to iteratively improve. But there's an immense payoff when you put world-class, best- practice knowledge into the hands of every person who has something they want to create.” Lake Wobegon Web Development – Edward Faulkner
  103. “The result is a culture of "many tiny libraries" that

    gets the tradeoff backwards: by overemphasizing the implementation simplicity of each library, there is an explosion of total interface complexity for the programmer -- once you integrate a sufficient number of tiny libraries to deliver ambitious capabilities.” On Interface Complexity vs Implementation Complexity – Edward Faulkner
  104. “When people reject the idea of ambitious, powerful abstractions in

    favor of "a diverse ecosystem...[of] small, focused, simple and robust libraries" they are confusing implementation with interface. Yes, the implementation of a powerful abstraction should be separated into focused and robust libraries. But if its interface exposes all of those libraries, it will be a poor interface for getting things done.” On the irony of programmers who don’t like abstractions – Edward Faulkner
  105. “On the contrary: the complexity of the RFC shows that

    this is a problem complex enough to justify having one well-thought-out community solution. It's not the easy stuff that needs to be standardized, it's the hard stuff.” Edward Faulkner commenting on the Module Unification RFC
  106. “The whole point of Ember is to identify that kind

    of problem and solve it together. Even though general solutions are harder to find than one-off "it works for me" solutions, it is massively more valuable in the long run.” Edward Faulkner commenting on the Module Unification RFC
  107. “The whole point of Ember is to identify that kind

    of problem and solve it together. Even though general solutions are harder to find than one-off "it works for me" solutions, it is massively more valuable in the long run.” Edward Faulkner commenting on the Module Unification RFC
  108. None
  109. None
  110. Thank you! https://balinterdi.com/agentconf17

  111. References • Framework architecture image from Evan You’s “Vue.js the

    progressive framework”