Yehuda Katz - Ember.js in Philadelphia

Mozilla, Google, pushing boundaries of the browser, making js more efficient.

Still too much js over the wire (discourse.org is 284kb).

Ember Patterns

  • Models should stick around for a while during the lifecycle of the application.
  • Controller is transient, doesn’t need to stick around.
  • Template/view what has focus, etc.

Garbage Clean-Up

Define your object type so Ember can clean up efficiently.

URLs

The killer feature of the web.

  • Even single page apps should expose URLs.
  • Sharing URL is key feature of web.
  • The URL is the UI of the web.

Use of URLs

  • Bookmarking
  • Sharing
  • Emailing
  • Cmd-click

“If your app doesn’t have URLs it’s not a web app.”

Building apps in terms of URL state exposes use of URL sharing in unusual places.

Build app with URLs exposed by default.

“It’s never been a better time to be a web developer… except maybe sometime in the future”

asm.js compiles C to JavaScript. What?!

Web Components

Used to build better abstracitons where you can build your own HTML element class

Future Proof

  • Ember is just HTML, builds upon HTML, binds to DOM Via HTML
  • effort into Ember.js is about future proofing design
  • “future proof yourself, future proof your frameworks”

Coming Down the Pipeline

  • Modules
  • Classes
  • Object.observe
  • Array.observe
  • Proxies
  • Web Components

Wrap-Up

Object and array observers coming soon in chrome, Ember will be moving toward these patterns.

Angular.js compares every object to every object in DOM when something changes.

You don’t have to get/set is a plus but the hit on performance is a big minus.

Ember is not sacrificing short term performance for convenience. Ember will wait for features like proxies to ship in browsers before jumping the gun.

Don’t forget the feature that made the web in the first place: URL.