Ember.js
   HOME

TheInfoList



OR:

Ember.js is an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
web framework A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build a ...
that utilizes a component-service
pattern A pattern is a regularity in the world, in human-made design, or in abstract ideas. As such, the elements of a pattern repeat in a predictable manner. A geometric pattern is a kind of pattern formed of geometric shapes and typically repeated l ...
. It is designed to allow developers to create scalable single-page web applications by incorporating common
idioms An idiom is a phrase or expression that largely or exclusively carries a figurative or non-literal meaning, rather than making any literal sense. Categorized as formulaic language, an idiomatic expression's meaning is different from the lit ...
, best practices, and patterns from other single-page-app ecosystem patterns into the framework. Ember is used on many websites including
HashiCorp HashiCorp, Inc. is an American software company with a freemium business model based in San Francisco, California. HashiCorp provides tools and products that enable developers, operators and security professionals to provision, secure, run and co ...
,
DigitalOcean DigitalOcean Holdings, Inc. is an American multinational technology company and cloud service provider. The company is headquartered in New York City, New York, US, with 15 globally distributed data centers. DigitalOcean provides developers, ...
,
Apple Music Apple Music is an audio and video streaming service developed by Apple Inc. Users can select music to stream to their device on-demand, or listen to existing playlists. The service also includes the sister internet radio stations Apple Musi ...
, Square, Inc.,
Intercom An intercom, also called an intercommunication device, intercommunicator, or interphone, is a stand-alone voice communications system for use within a building, small collection of buildings or portably within a small coverage area, which funct ...
,
Discourse Discourse is a generalization of the notion of a conversation to any form of communication. Discourse is a major topic in social theory, with work spanning fields such as sociology, anthropology, continental philosophy, and discourse analysis. F ...
,
Groupon Groupon, Inc. is an American global e-commerce marketplace connecting subscribers with local merchants by offering activities, travel, goods and services in 13 countries. Based in Chicago, Groupon was launched there in November 2008, launching ...
,
LinkedIn LinkedIn () is an American business and employment-oriented Social networking service, social network. It was launched on May 5, 2003 by Reid Hoffman and Eric Ly. Since December 2016, LinkedIn has been a wholly owned subsidiary of Microsoft. ...
,
Live Nation Live Nation Entertainment, Inc. is an American multinational Entertainment industry, entertainment company that was founded in 2010 following the Mergers and acquisitions, merger of Live Nation (events promoter), Live Nation and Ticketmaster. It ...
,
Ghost In folklore, a ghost is the soul or Spirit (supernatural entity), spirit of a dead Human, person or non-human animal that is believed by some people to be able to appear to the living. In ghostlore, descriptions of ghosts vary widely, from a ...
,
Nordstrom Nordstrom, Inc. () is an American Luxury goods, luxury department store chain headquartered in Seattle, Washington, and founded by John W. Nordstrom and Carl F. Wallin in 1901. The original store operated exclusively as a shoe store, and a seco ...
, and Twitch. Although primarily considered a framework for the web, it is also possible to build desktop and mobile applications with Ember when utilizing a hybrid app pattern. The most notable example of an Ember desktop application is
Apple Music Apple Music is an audio and video streaming service developed by Apple Inc. Users can select music to stream to their device on-demand, or listen to existing playlists. The service also includes the sister internet radio stations Apple Musi ...
, a feature of the
iTunes iTunes is a media player, media library, and mobile device management (MDM) utility developed by Apple. It is used to purchase, play, download and organize digital multimedia on personal computers running the macOS and Windows operating s ...
desktop application. The Ember trademark is owned by Tilde Inc.


History

In December 2011, the SproutCore 2.0 framework was renamed to Ember.js, to reduce confusion between the application framework and the widget library of SproutCore 1.0. The framework was created by Yehuda Katz, a member of the jQuery,
Ruby on Rails Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pa ...
and SproutCore core teams.


Design

According to the company, Ember was designed around four key ideas: ; Web applications : Ember sets out to provide a solution to the client-side application problem. ; More productivity : Ember is one component of a set of tools to provide a development stack. Ember CLI provides an application structure and build pipeline with an add-on. ; Stability : Ember aims to prioritize backward compatibility and allow it to be maintained while still evolving the framework. ; Future web standards : Ember was an adopter of standards around JavaScript and the web, including promises,
web components Web Components are a set of features that provide a standard component model for the web allowing for encapsulation and interoperability of individual HTML elements. Web Components are a popular approach when building microfrontends. Primary t ...
and ES6 syntax. Yehuda Katz, one of Ember's co-founders, is a member on TC39, which is the committee responsible for future versions of the JavaScript language. Like Ruby on Rails, Ember follows ''
convention over configuration Convention over configuration (also known as coding by convention) is a software design paradigm used by software frameworks that attempts to decrease the number of decisions that a developer using the framework is required to make without nec ...
'' (CoC), and the ''
don't repeat yourself "Don't repeat yourself" (DRY) is a principle of software development aimed at reducing repetition of information which is likely to change, replacing it with abstractions that are less likely to change, or using data normalization which avoids r ...
'' (DRY) principle. It has been described as a highly opinionated framework built to be very flexible.


Concepts

According to the company, Ember consists of five key concepts: ; Routes : In Ember, the state of an application is represented by a URL. Each URL has a corresponding "route object" that controls what is visible to the user. ; Models : Every route has an associated model, containing the data associated with the current state of the application. While one can use window.fetch to load
JSON JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
objects from a server and use those objects as models, most applications use a model library such as Ember Data to handle this. ; Templates : Templates are used to build the application's HTML and are written with the HTMLBars templating language. (HTMLBars is a variation of Handlebars that builds DOM elements rather than a String.) ; Components : A component is a custom HTML tag. Its behavior is implemented using JavaScript, and its appearance is defined using HTMLBars templates. Components "own" their data. They can also be nested and can communicate with their parent components through actions (events). Other component libraries, such as Polymer can also be used with Ember. ; Services : Services are just singleton objects to hold long-lived data such as user sessions. : Ember also provides
dependency injection In software engineering, dependency injection is a programming technique in which an object or function receives other objects or functions that it requires, as opposed to creating them internally. Dependency injection aims to separate the con ...
, declarative one-way data-flow, tracked properties, and automatically updating templates.


Ember software / Addons

Ember.js is one component of a complete front-end stack built and supported by the Ember core team.


Ember CLI

Ember-CLI aims to bring convention over configuration to build tools. A command line utility based on
broccoli Broccoli (''Brassica oleracea'' var. ''italica'') is an edible green plant in the Brassicaceae, cabbage family (family Brassicaceae, genus ''Brassica'') whose large Pseudanthium, flowering head, plant stem, stalk and small associated leafy gre ...
, running the command ember new generates a new Ember app with the default stack. This provides: * Standard file and directory structure * Development server with live reload * Testing framework * Dependencies managed via npm. * ES6/ES7+ syntax support (using Babel) * Asset management (including combining, minifying, and versioning) Other features include: *Blueprints, which are code generators for creating models, controllers, components, and so on that are needed in an application. Custom blueprints can also be created. *Addons, which provide the ability to extend the features of Ember CLI,. Addons are installed by typing ember install . Around two thousand add-ons are currently available (as of 2018) including add-ons for
CoffeeScript CoffeeScript is a programming language that compiles to JavaScript. It adds syntactic sugar inspired by Ruby, Python, and Haskell in an effort to enhance JavaScript's brevity and readability. Some added features include list comprehension an ...
,
LESS Less or LESS may refer to: Computing * less (Unix), a Unix utility program * Less (style sheet language), a dynamic style sheet language * Large-Scale Scrum (LeSS), a product development framework that extends Scrum Other uses * -less, a priv ...
, Sass, Compass and Mocha.


Ember Data

Most Ember applications use Ember Data, a data-persistence library providing many of the facilities of object-relational mapping (ORM). However it is also possible to use Ember without Ember Data. Ember Data maps client-side models to server-side data. It can then load and save records and their relationships without any configuration via a
REST REST (Representational State Transfer) is a software architectural style that was created to describe the design and guide the development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of ...
ful
JSON JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
API that implements the JSON API specification, provided certain conventions are followed. However it is also configurable and can work with servers through the use of adapters and addons. JSON API has server library implementations for
PHP PHP is a general-purpose scripting language geared towards web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by the PHP Group. ...
, Node.js,
Ruby Ruby is a pinkish-red-to-blood-red-colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapph ...
, Python, Go,
.NET The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
and
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
. Connecting to a Java- Spring-based server is also documented. The first stable version of Ember Data (labeled 1.13 to align with Ember itself) was released on June 18 June 2015.


Ember Inspector

The Ember Inspector is an extension currently available for the
Mozilla Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curren ...
and
Google Chrome Google Chrome is a web browser developed by Google. It was first released in 2008 for Microsoft Windows, built with free software components from Apple WebKit and Mozilla Firefox. Versions were later released for Linux, macOS, iOS, iPadOS, an ...
web browsers for debugging Ember applications. Features include the ability to see which templates, components, and views are currently rendered, see the properties of any Ember object with a UI that computes bindings and computed properties, and access one's application's objects from the console. If Ember Data is used, one can also see the records loaded for each model. * The Object Inspector allows viewing and editing of the runtime contents of Ember Objects and Classes. * The View Tree visually displays the structure of the rendered Ember application. * The Routes tab allows one to determine and follow the router state and the URLs used to represent routes. * The Data tab shows the models in the application and the records loaded for each model. * The Info tab displays dependency versions. * The Deprecations tab allows for stack traces of deprecation warnings that do not trigger exceptions. * The Promises tab allows for the tracing of code through asynchronous operations. * The Container tab is used to check which objects have been loaded. * The Render Performance tab is for determining what is slowing down an Ember application.


Fastboot

Fastboot is an Ember CLI add-on created by the Ember core team that gives Ember developers the ability to run their apps in Node.js. This feature allows end users to see HTML and CSS right away, with JavaScript downloading in the background and taking over once it has fully loaded.


Liquid Fire

Liquid Fire provides animation support for Ember applications. Features include animated transitions between routes and between models within a single route. It provides a DSL for solidifying spatial route relationships, cleanly separated from view-layer implementation details. An example would be to animate a screen transition so that the new screen appears to slide in from one edge of the browser.


Release process

See the releases blog for the full list of releases and detailed changelog.


Release cycle

Ember follows a six-week release cycle, inspired by the rapid release cycle of
Google Chrome Google Chrome is a web browser developed by Google. It was first released in 2008 for Microsoft Windows, built with free software components from Apple WebKit and Mozilla Firefox. Versions were later released for Linux, macOS, iOS, iPadOS, an ...
. Starting with Ember 2.0, related projects supported by the core team have their releases coordinated, and share a version number with Ember itself.


Upgrading and backward compatibility

Ember follows the
semantic versioning Software versioning is the process of assigning either unique ''version names'' or unique ''version numbers'' to unique states of computer software. Within a given version number category (e.g., major or minor), these numbers are generally assig ...
convention. In particular, breaking changes are only introduced at significant version numbers, such as 1.0, 2.0, etc. While new features can be added at point releases (1.1, 1.2...), and features deprecated, no breaking changes to the public APIs are introduced. Tooling was also under development in 2015 to help streamline the upgrade process. In addition to this process, several steps were taken to mitigate issues around upgrading to the 2.0 release: *All major 2.0 features were introduced early and spread out over several releases to reduce many of the issues caused by upgrades. *Most features that were removed are still available through add-ons. The process follows the core Ember principle of Stability without Stagnation and is in marked contrast to the upgrade plans of similar projects such as
AngularJS AngularJS (also known as Angular 1) is a discontinued free and open-source JavaScript-based web framework for developing single-page applications. It was maintained mainly by Google and a community of individuals and corporations. It aimed to si ...
.


Future development

Project status can be tracked via the core team meeting minutes. However, major changes to Ember go through the Request For Comment process. This gives the Ember community a chance to give feedback on new proposals. Notable RFCs include: *Engines. Engines allow multiple logical applications to be composed together into a single application from the user's perspective. Currently released as an experimental add-on. *Release cycle improvements. Among other things, it proposes changes to Ember CLI to support "svelte builds", which will strip out deprecated and unused features. *Outlet Focusing. Making Ember accessible by default. This RFC aims to improve the user experience for people using screen readers.


Sponsorship

Unlike other projects such as
AngularJS AngularJS (also known as Angular 1) is a discontinued free and open-source JavaScript-based web framework for developing single-page applications. It was maintained mainly by Google and a community of individuals and corporations. It aimed to si ...
(
Google Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
) and React (
Facebook Facebook is a social media and social networking service owned by the American technology conglomerate Meta Platforms, Meta. Created in 2004 by Mark Zuckerberg with four other Harvard College students and roommates, Eduardo Saverin, Andre ...
) which have the backing of one main company, Ember.js has a variety of sponsors and backers. These include users of the framework such as
Yahoo! Yahoo (, styled yahoo''!'' in its logo) is an American web portal that provides the search engine Yahoo Search and related services including My Yahoo, Yahoo Mail, Yahoo News, Yahoo Finance, Yahoo Sports, y!entertainment, yahoo!life, and its a ...
,
LinkedIn LinkedIn () is an American business and employment-oriented Social networking service, social network. It was launched on May 5, 2003 by Reid Hoffman and Eric Ly. Since December 2016, LinkedIn has been a wholly owned subsidiary of Microsoft. ...
and
Bustle A bustle is a padded undergarment or wire frame used to add fullness, or support the drapery, at the back of women's dresses in the mid-to-late 19th century. Bustles are worn under the skirt in the back, just below the waist, to keep the skir ...
.


References


Further reading

* Regularly updated. * Regularly updated. *


External links

* {{Authority control JavaScript libraries Ajax (programming) Software using the MIT license Web frameworks JavaScript articles needing attention