

Ask HN: Should I learn Angular or Ember? - rayalez

Hi!! After gaining some competence at Django, I&#x27;ve decided to learn one of the frontend frameworks. Seems like Angular vs Ember is the choice.<p>Angular is more popular, but I don&#x27;t care about that, I am looking for what is more powerful, elegant, and future-proof. Not for a particular project, but for the sake of learning the core key concepts.<p>So I want to ask - which one should I learn?
======
lastofus
As a mostly backend Django dev who's only done front end with jQuery, I've
been asking myself this same question but looking at other options as well. So
far my conclusions have been

Angular: Hesitant because of the recent 2.0 announcement. It also doesn't
doesn't seem to play as nice with other libs like jQuery. Also just don't like
the feel of using it (this is a personal pref though)

Ember: Looks great, but rather complex and heavy handed. Between working for
multiple clients concurrently, I don't feel like I have the time and mental
capacity to really dig in at the moment. May consider in the future.

Backbone: Seems like a nice framework to organize your code + routing. Am
wanting two-way bindings though.

React: One look at JSX and my brain goes 'yuck'

Knockout: I'm heavily leaning towards this at the moment. Seems like the
perfect balance between shallow learning curve, playing well with other libs,
and offering way more than what jQuery does.

~~~
pjungwir
Having done a couple Angular projects now (and not really loving it), I
started learning Knockout on the strength of this thread:

[http://www.reddit.com/r/programming/comments/2kl88s/angular_...](http://www.reddit.com/r/programming/comments/2kl88s/angular_20_drastically_different/)

So far I'm really impressed! I appreciate how focused it is, how it is "more
library than framework," and how nicely it plays with other Javascript
libraries. And unlike Angular, you can really get up to speed in an evening,
so trying it out is an easy investment.

I'm curious what you're combining with it? I think I will use:

\- sammy.js for routing

\- knockout.mapping for making API calls

\- Bootstrap

\- jQuery+Underscore for general utilities

\- Maybe this for d3 graphs:
[https://github.com/hoonzis/KoExtensions](https://github.com/hoonzis/KoExtensions)

Anything else?

~~~
lastofus
It's been awhile since I've done any greenfield projects. As such, I'm usually
stuck with some ancient/crappy libs. I'm definitely a fan of Bootstrap and
jQuery though. I've also been looking into sammy and ko mapping as well, but I
haven't had to do a SPA recently (but one is on the horizon)

------
geoffpado
I recently went through the same process, took a look at both… and ended up
falling in love with React
([https://facebook.github.io/react/](https://facebook.github.io/react/)), in
case you wanted another option to throw in the mix. :P

I agree with un3n, though: learn the basics of each and decide for yourself.
Both projects have really great tutorials and beginner resources. Everyone
learns differently, everyone has different values and opinions. Despite this
being the Internet, there doesn't have to be one true end-all, be-all answer.

------
wmil
Angular scales up fairly smoothly from a small widget on a site to a full SPA.
It has two major downsides.

\- you're on your own for a lot of app structure

\- it expects you to know javascript quirks about object references,
prototypical inheritance and how to read JS stack traces

So Ruby on Rails developers find it quite unfriendly -- few conventions, very
different rules about passing data around.

Ember.js has more structure, but it's difficult for a new user to use without
something like EmberCLI ([http://www.ember-cli.com/](http://www.ember-
cli.com/)) to generate the basic app. It's incredibly frustrating without it
since nothing will work until everything is named correctly.

Personally I find it's much easier to get things done in Angular.

However because you can learn Angular by muddling through the docs the
community isn't very deep. Ember developers need to keep in touch with each
other to understand the ideas behind the framework and changes to it.

So Ember meetups are much more interesting.

------
sergiotapia
EmberJS hands down and the reason is quite simple for me.

There are many ways to write an 'angular app' but really only one correct way
to write an 'ember app'.

When you begin work on an existing Ember App do you want there to be
conventions, or just some gun-ho cowboy stuff? It was a non-decision for me,
and I went with Ember.

Remember: Rails caught on like wild-fire because of it's mantra convention
over configuration.

~~~
jf22
>Remember: Rails caught on like wild-fire because of it's mantra convention
over configuration.

And Ember didn't... well, not compared to Angular anyways. ;)

------
un3n
Why not both? At least enough to understand what each framework does well and
why someone would want to use one over the other. I'm not a web dev, but from
what I've seen angular seems to be more widely used so if you're heading down
that path I guess you will be more likely to see angular at some point.

------
gasping
> powerful, elegant, and future-proof

ReactJS. It's totally unlike Angular and Ember in a good way. You will not
regret it.

