Why I use Ember.js?

Ember is much more than a JavaScript Framework. A whole ecosystem has been born around it. So, putting aside technical aspects, what is good about Ember.js?

    1. Community
    2. Stability without stagnation
    3. Developed by product developers
    4. Push the web forward
    5. Standards
    6. Tooling
      1. Ember CLI
        1. Addons

In the last few days I've been asked more than a couple of times:

Why do you use Ember.js?

So, this are the reasons:

Community

The community is very active and there are new features and tools everyday. If you need help you can get it at StackOverflow, IRC, Github and Slack. There are tons of meetups around the world and if you can't assist to one, many of them are being recorded and uploaded to YouTube.

To find out more about the community check: Where is the Ember community?.

Stability without stagnation

You may have heard that not long ago it was announced that Angular 2.0 would be a rewrite from scratch and that it wouldn't be possible to migrate apps from version 1.x to 2.0. (later it was announced that a migration path might be provided, you can google more about that) I mentioned that because it ilustrates the concept of:

move fast and break things

The Ember philosophy is to provide stability without stagnation, and so far it has worked great. You can read more about this in Innovating Fast And Slow: EmberJS Insists, "We Don't Need To Break The Web"

The framework is being built with lots of compatibility layers between versions. The core team members build their own apps, so no one can afford to break backward compatibility. This allows you to use new features as soon as they are realeased. Upgrading your projects from one version to another won't take more than a day, usually a couple of hours.

Developed by product developers

The framework is developed and maintained by people that are actually making a living out of it. Most of the people behind the project work as freelancers, consultants or at companies that sell products based on Ember. This means that features and changes are done based on the needs of applications that are being used on a daily basis.

There isn't a single large corporation trying to steer the wheel, changes happen fast and with a focus on increasing productivity and quality overall.

Push the web forward

There is a big effort to make available modern technologies and techniques. There is a heavy bet on ES6, ES7 and web components. The sooner we start using them, the sooner will make mistakes and learn from them.

The work done with Ember is not only about improving the framework, but also about helping shape the future of the web. You can read more about this in The Extensible Web Manifesto.

Standards

Standards and conventions are used for everything: JSON API, default objects that are autogenerated, declarative data bindings, naming conventions etc. I read somewhere:

When you use a framework like Ember.JS is not for your own benefit, but for the benefit of others.

Once you start poking at others projects, may you need to customize or improve a project, you'll realize that thanks to the standards and conventions you almost won't need documentation. You'll be able to just get-it and start working with 3rd party code bases.

Tooling

This is an aspect of Ember where other frameworks simply can't compete. You have access to tools like:

A Chrome and Firefox addon for easy debugging of Ember apps.

A persistance layer that allows you to easily communicate with any source of information.

Ember is built with testing in mind, its designed to have a good testing story.

Ember CLI

Ember CLI is the recommended tool for Ember development, is not mandatory, but almost everybody uses it. It puts together several node modules and integrates them nicely so you can hit the ground running when starting a new Ember app.

Its built with Broccoli.js at its core, that is the build tool that will concatenate and minify your files, its your assets pipeline. It provides fast rebuilds and live reloads.

Addons

By using Ember CLI you also get access to the addons system that allows us to easily share code across projects and teams. You can find and leverage a bunch of code at emberaddons.com.

Although this last section was a bit technical, what it shows is that the community doesn't stop at having a good framework.

We all care about making the life of the developers easier.