Which is better/? AngularJS or EmberJS

“Oh no, not another ‘which is better thread’” I hear you say. “It depends on your particular problem domain” is the often heard exclaimation. But wait, this thread really does have a purpose other than asking which package is warmer and fuzzier.

Well, I admit I don’t know much about AngularJS except that its written by Google. I have watched a few youtube videos on EmberJS so I know a little more about it but not a lot more.

They both seem to be about sepeation of concerns, business logic and presentation logic. AngularJS claims to be a bit more ‘declarative’ and less ‘imperative’ which sounds interesting to me. On the other hand EmberJS is said to be more ‘magical’. Maybe that’s why rails devs are more comfortable with it.

So I’m wondering which one people use and prefer and why? Yes, I know everyone’s experience will be different and the problems we are solving with it too. However I like hearing about anecdotal experiences and surely Sitepoint can benefit from doing the occasional review of popular frameworks. After all, Google loves content, remember :wink:

So what’s your thoughts?

So… I have only a semi-helpful post. :slight_smile:

Not that long ago, I set out to try three or four JS frameworks and pick one. Angular and Ember were at the top of my list to try. I tried Angular first because I had been hearing so much buzz about it. And… well… I never got around to trying anything else. :stuck_out_tongue: Angular made me so happy that I just kept doing more and more with it.

That being said, I’m still very interested to finally sit down with Ember one of these days. My impression is that Ember may leave me at least as satisfied as I was with Angular.

A great many articles that try to compare frameworks show a clear preference or bias, but this article is one of the better and more objective I’ve found. Angular and Ember are pretty much neck-and-neck. Although — and this is a really cool thing this article did — we can assign weights to each area in which the frameworks were measured. So, for example, I weighted productivity and community the highest, followed by features and flexibility. After I assigned my personal weights, then Ember pulled ahead of Angular.

Short answer: It seems like you can’t make a bad decision here. They’re almost neck-and-neck in their goodness, and probably either one will leave you feeling happy about your choice.

Yes, that is an interesting link. He seemed to be a bit negative of backbone.js (which I hadn’t considered using that framework but I may revisit). Then some commenter said that it needed to be considered along with it’s plugin marionetteJS. I will have to look in to that. My initial concern is that when you start getting a few levels deep (ie: plugins of plugins) you risk diluting the community.

Another one in the family is knockout.js. I didn’t like how it puts all the data it needs in data-foo attributes throughout the HTML, that was pretty gross and in many cases for stuff like generating HTML via looping through some values, I’d rather that was done with an HTML templating system than 100% with data-foo clutter.

Ok, so I take that is a recommendation against :wink:

I can’t recommend against Knockout, I haven’t used it much and lots of people don’t care how attributed their markup becomes anyway :stuck_out_tongue:

knockout is a really good data-binding tool, it’s not a framework. It’s only opinion is MVVM and the fact that you litter your html with data-* attributes all over, which isn’t much worse than ng-* all over. :slight_smile:

It’s quite powerful in what you can do and has a concept similar to directives by building custom bindings.

anyway, I don’t like it much myself. it’s powerful, i use it daily on my project but debugging is a pain in the neck.

Agreed with ng- being just as bad.

I’d like to know more about debugging problems though. Knockout might be in my almost-immediate future : )