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 the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
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 and ...
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 allows developers to create scalable single-page web applications by incorporating common
idioms An idiom is a phrase or expression that typically presents a figurative, non-literal meaning attached to the phrase; but some phrases become figurative idioms while retaining the literal meaning of the phrase. Categorized as formulaic language, ...
, best practices, and patterns from other single-page-app ecosystem patterns into the framework. Ember is used on many websites including
HashiCorp HashiCorp is a software company with a freemium business model based in San Francisco, California. HashiCorp provides open-source tools and commercial products that enable developers, operators and security professionals to provision, secure, run ...
,
DigitalOcean DigitalOcean Holdings, Inc. () is an American multinational technology company and cloud service provider. The company is headquartered in New York City, New York, USA, with 15 globally distributed data centers worldwide. DigitalOcean provides ...
,
Apple Music Apple Music is a music, audio and video streaming service developed by Apple Inc. Users select music to stream to their device on-demand, or they can listen to existing playlists. The service also includes the Internet radio stations Apple M ...
,
Square, Inc. Block, Inc. (formerly Square, Inc.) is an American multinational technology conglomerate founded in 2009 by Jack Dorsey and Jim McKelvey and launched its first platform in 2010. It has been traded as a public company on the New York Stock Exch ...
,
Intercom An intercom, also called an intercommunication device, intercommunicator, or interphone, is a stand-alone voice communications system for use within a building or small collection of buildings which functions independently of the public telephon ...
,
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. ...
,
Groupon Groupon 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 soon af ...
,
LinkedIn LinkedIn () is an American business and employment-oriented online service that operates via websites and mobile apps. Launched on May 5, 2003, the platform is primarily used for professional networking and career development, and allows job se ...
,
Live Nation Live Nation Entertainment, Inc. is an American global entertainment company and monopoly that was founded in 2010 following the merger of Live Nation and Ticketmaster. The company promotes, operates, and manages ticket sales for live entertainme ...
,
Ghost A ghost is the soul or spirit of a dead person or animal that is believed to be able to appear to the living. In ghostlore, descriptions of ghosts vary widely from an invisible presence to translucent or barely visible wispy shapes, to rea ...
,
Nordstrom Nordstrom, Inc. () is an American luxury department store chain headquartered in Seattle, Washington, and founded by John W. Nordstrom and Carl F. Wallin in 1901. The original Wallin & Nordstrom store operated exclusively as a shoe store, and ...
, and
Twitch Twitch may refer to: Biology * Muscle contraction ** Convulsion, rapid and repeated muscle contraction and relaxation ** Fasciculation, a small, local, involuntary muscle contraction ** Myoclonic twitch, a jerk usually caused by sudden muscle con ...
. 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 a music, audio and video streaming service developed by Apple Inc. Users select music to stream to their device on-demand, or they can listen to existing playlists. The service also includes the Internet radio stations Apple M ...
, a feature of the
iTunes iTunes () is a software program that acts as a media player, media library, mobile device management utility, and the client app for the iTunes Store. Developed by Apple Inc., it is used to purchase, play, download, and organize digital mul ...
desktop application. The Ember trademark is owned by Tilde Inc.


History

In December 2011, the
SproutCore SproutCore is an open-source JavaScript web framework. Its goal is to allow developers to create web applications with advanced capabilities and a user experience comparable to that of desktop applications. When developing a SproutCore applicati ...
2.0 framework was renamed to Ember.js, to reduce confusion between the application framework and the widget library of
SproutCore SproutCore is an open-source JavaScript web framework. Its goal is to allow developers to create web applications with advanced capabilities and a user experience comparable to that of desktop applications. When developing a SproutCore applicati ...
1.0. The framework was created by Yehuda Katz, a member of the
jQuery jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax. It is free, open-source software using the permissive MIT License. As of Aug 2022, jQuery is used ...
,
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 p ...
and
SproutCore SproutCore is an open-source JavaScript web framework. Its goal is to allow developers to create web applications with advanced capabilities and a user experience comparable to that of desktop applications. When developing a SproutCore applicati ...
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 addons. ; Stability : This is the idea that backward compatibility is important and can be maintained while still innovating and 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. Primary technologies used to create them include: * Custom Elements: APIs to ...
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 necessa ...
'' (CoC), and the ''
don't repeat yourself "Don't repeat yourself" (DRY) is a principle of software development aimed at reducing repetition of software patterns, replacing it with abstractions or using data normalization to avoid redundancy. The DRY principle is stated as "Every piece o ...
'' (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 ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
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. 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, declarative one-way data-flow, tracked properties, and automatically updating
templates Template may refer to: Tools * Die (manufacturing), used to cut or shape material * Mold, in a molding process * Stencil, a pattern or overlay used in graphic arts (drawing, painting, etc.) and sewing to replicate letters, shapes or designs Co ...
.


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 cabbage family (family Brassicaceae, genus ''Brassica'') whose large flowering head, stalk and small associated leaves are eaten as a vegetable. Broccoli is cl ...
, running the command ember new generates a new Ember app with the default stack. This provides: * A standard file and directory structure * Development server with live reload * A testing framewor * 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 can be installed by typing ember install . Over two thousand addons are currently available 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. Specific additional features include list comprehensio ...
,
LESS Less or LESS may refer to: fewer than,: not as much. Computing * less (Unix), a Unix utility program * Less (stylesheet language), a dynamic stylesheet language * Large-Scale Scrum (LeSS), a product development framework that extends Scrum Other ...
, Sass, Compass and Mocha.


Ember Data

Most Ember applications use Ember Data, a data-persistence library providing many of the facilities of an 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 or REST may refer to: Relief from activity * Sleep ** Bed rest * Kneeling * Lying (position) * Sitting * Squatting position Structural support * Structural support ** Rest (cue sports) ** Armrest ** Headrest ** Footrest Arts and entert ...
ful
JSON JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
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 toward 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 Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code ou ...
,
Ruby A 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 sa ...
,
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
, Go, .NET and
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
. Connecting to a Java-
Spring Spring(s) may refer to: Common uses * Spring (season), a season of the year * Spring (device), a mechanical device that stores energy * Spring (hydrology), a natural source of water * Spring (mathematics), a geometric surface in the shape of a ...
-based server is also documented. The first stable version of Ember Data (labelled 1.13 to align with Ember itself) was released on 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 current and a ...
and
Google Chrome Google Chrome is a cross-platform 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 ...
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 addon created by the Ember core team that gives Ember developers the ability to run their apps in
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code ou ...
. This feature allows end users to see HTML and CSS right away, with the 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 cross-platform 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 ...
. 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 a number of steps were taken to mitigate issues around upgrading to the 2.0 release: *All major 2.0 features were in fact introduced early and spread out over a number of releases in order to reduce many of the issues caused by upgrades. *Most features that were removed are still available through addons. 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 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 simplify both the development ...
.


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 addon. *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 improves the user experience for people using screen readers.


Sponsorship

Unlike other projects such as
AngularJS AngularJS 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 simplify both the development ...
(
Google Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. ...
) and
React REACT or React may refer to: Science and technology *REACT (telescope), a telescope at Fenton Hill Observatory, New Mexico, US Computing * React (JavaScript library) , a JavaScript library for building user interfaces, from Facebook ** React Nati ...
(
Facebook Facebook is an online social media and social networking service owned by American company Meta Platforms. Founded in 2004 by Mark Zuckerberg with fellow Harvard College students and roommates Eduardo Saverin, Andrew McCollum, Dustin M ...
) 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 services provider. It is headquartered in Sunnyvale, California and operated by the namesake company Yahoo Inc., which is 90% owned by investment funds managed by Apollo Global Man ...
,
LinkedIn LinkedIn () is an American business and employment-oriented online service that operates via websites and mobile apps. Launched on May 5, 2003, the platform is primarily used for professional networking and career development, and allows job se ...
and
Bustle A bustle is a padded undergarment 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 skirt from dragging. ...
.


References


Further reading

* Regularly updated. * Regularly updated. *


External links

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