Hacker News new | ask | show | jobs
by johncagula 4669 days ago
For the uninitiated, could someone please explain what we use Ember (and related frameworks like Angular.js) for?

For example, I build a Rails app to handle models, views, and controllers on the backend. Then I can use HTML/CSS/JS to write a frontend to interface with the Rails app. Why do we need another MVC framework on top of Rails?

1 comments

When writing a single-page app you only need a RESTful API on the backend, much like developing for mobile, to sync your models from the client.

Ideally, the models would be shared between client and server without the need for duplicating code. There has been a few steps in that direction in node.js, but it's an ongoing problem that hopefully we'll figure out in the next couple years.

Thanks for your response.

To clarify, when you say RESTful API, do you mean the client-side MVC framework issues API calls to a server which then updates the backend (database?).

I guess this model is client-centric while the typical Rails app is server-centric (MVC logic executes on the server and then serves the relevant HTML/CSS to the client).

Any particular advantages to the client-side framework over the server-side framework?

The main advantage would be performance, plus maintainability for complex UIs. Navigation can be nearly instant, since you're only making specific requests for data from the server, instead of shuffling html and reloading dozens of assets all the time.

There are trade-offs, of course: it is a tad more complex than the old way, but that is offset by simpler implementation in the server. Network round-trips are minimized, but you use a lot more memory and CPU on the client, and need more extensive testing. It's a great fit for webapps, not so much for more content-oriented websites.