[001.1] Introduction

An introduction to Ember, some resources, and the prerequisites for installation.

Subscribe now

Introduction [09.09.2016]

Ember is an opinionated javascript framework for creating **ambitious** web applications.

Ember’s main site is at http://emberjs.com.

Most modern Ember applications are created with Ember CLI, which is a command line utility that also provides a project structure for your Ember apps.

The Ember community is very active and is one of the best resources for an aspiring Ember developer. They can be found on the community Slack channel, over at https://www.reddit.com/r/emberjs, and in the IRC channel at #emberjs on Freenode IRC.

Why Ember?

  • Ember has a terrific community
  • Ember also has a mature ecosystem with a bunch of addons
  • Ember's Router
  • Convention Over Configuration means:
    • If you hire an Ember developer to your team, they can onboard fast and contribute code almost immediately.
    • Your team can save time by not having to think about build tools; it's all baked in.

Why not Ember?

  • Although convention over configuration can be a selling point for many teams, it can also make Ember prohibitively difficult to deal with if you do not have the flexibility to go all in with the 'Ember Way'.
  • If you are looking to develop one small piece of UX or just a single component as part of a large app that is managed elsewhere, Ember might not be the right tool to use.
  • If you are just looking for a view layer or a smaller library, and don't want a true framework as heavy as Ember, you might be better choosing something like React.

Notes about the approach

All frameworks are always in a bit of a transition. Ember is no exception. As of this writing, Ember is at version 2.6. Everything written here should function, at a minimum, until the release of 3.0. However, there are some big changes in the works.

The biggest is that Ember is moving away from the use of controllers and adopting a component-first architecture. But this path cannot be fully implemented until routable components are available. As of 2.6, this has not happened. As a consequence, controllers are still necessary, and consequently, they are not deprecated. Controllers are still responsible for getting the model from the route, and for some handling of query parameters. As you build applications in Ember you should attempt to restrict controllers to these uses.

Finally, Ember has an emerging Module Based app structure that should eventually replace the Rails-type structure that currently exists, but not yet.

Prerequisites

As a matter of prerequisites for Ember CLI you will need Node.js, NPM, and Bower installed.

Today is a great day to survey those sites and get the prerequisites set up. Tomorrow we will install Ember CLI and go over a few basics.