Ember.js Introduction

What is Ember.js

Ember is a JavaScript front-end framework designed to help you build websites with rich and complex user interactions.

It allows building client side JavaScript applications by providing a complete solution which contains data management and an application flow.

EmberJS was developed by Yehuda Katz. It was initially released in December 2011. EmberJS was also formerly known as SproutCore MVC framework.

Why Use Ember.js

  • Ember.js is an open source JavaScript framework under MIT license.
  • It provides the new binding syntax using the HTMLBars template engine which is a superset of the Handerlbars templating engine.
  • It provides the Glimmer rendering engine to increase the rendering speed.
  • It provides the Command Line Interface utility that integrates Ember patterns into development process and focuses easily on the developer productivity.
  • It supports data binding to create the link between two properties and when one property changes, the other property will get upgraded with the new value.

Advantages and Disadvantages of Ember.js

Advantages:

  • Convention over configuration. Instead of providing detailed configuration for the various routes in your application, Ember.js favors following naming conventions and automatically generating the resulting code, earmarking configurations only for cases where convention is not followed.
  • Client-side rendering and structure to scalable web applications beyond the view layer.
  • URL-support.
  • Ember’s object model facilitates Key-Value Observation.
  • Nested UIs.
  • Minimizes DOM.
  • Works well with large application ecosystems.
  • Strong data layer integrates well with Java.
  • Fully-fledged templating mechanism (Handlebars templating engine built upon the popular Mustache templating engine) reduces the overall amount of code written. It knows nothing about DOM and relies instead upon straight text manipulation, building the HTML document dynamically.
  • Uses observers to change values, which results in only rendering the values being changed.
  • Avoids “dirty checking” by using accessories.
  • Faster boot times and inherent stability.
  • Performance focus.
  • Friendly docs and API.

Disadvantages:

  • Ember.js lacks the reuse of components at Controller level.
  • There is a lot of outdated content and examples that no longer work.
  • Steep learning curve.
  • Handlebars pollutes the DOM with many <script> tags, which it uses as markers to keep the templates up to date with your model.
  • Cumbersome when going outside its typical uses.
  • Ember’s object model implementation bloats Ember’s overall size and call stack while debugging.
  • The most opinionated and heaviest of the frameworks.
  • Overblown for small projects.
  • Testing story seems vague/incomplete.

Leave a comment