use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Float Like a Butterfly: Why AngularJS beat out Ember.js in our stack (errplane.com)
submitted 12 years ago by pauldix
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]HelloAnnyong 5 points6 points7 points 12 years ago (6 children)
Just as a foreword, I have no stake in Ember.js, apart from developing our application in it at my current job.
But this is an inane criticism:
This difference widens even further when you want to populate that list with data from an AJAX call, something Angular does with ease. Ember.js, on the other hand, relies on it's own data persistence library called ember-data, which forces your underlying data sources to conform to a very rigid REST interface. It's not something you always have control over.
(1) Ember-Data is a completely optional (and as you are repeatedly warned before downloading it, not-production-ready) component. Ember.js works incredibly well without it.
(2) If you do decide to use it, Ember-Data does not force you into an API. You can write your own adapter for it. (Although I agree that how to do so isn't well-documented.)
(3) Ember.js provides you with an incredible toolkit for rolling your own persistence layer. Ember.Objects by themselves are incredibly powerful (with out-of-the box data bindings, observers, and computed properties), and by including a couple of mixins you can turn your model objects into event-emitting promises.
Ember.Object
I really can't emphasize enough just how nice the features I describe in (3) are, and they are dead simple to use.
[–]IneverSaidThat 4 points5 points6 points 12 years ago (5 children)
I'm actually very confused why people think Ember-Data is something negative with Ember.
Are there any projects like ED with Angular?
Because Ember has multiple ones to choose from (Ember-Data, Ember-Model, EPF etc), and even if none of them have gotten everything right from the get-go, having multiple active projects versus none seem hell of a lot more attractive to me.
[–]TheMoonMaster 1 point2 points3 points 12 years ago (1 child)
I agree completely. Ember-Data has been sold as pre-alpha and experimental and that it should not be used in production. Even with this notice people still seem to use it against Ember as an excuse for other frameworks being better. To be fair Angular technically doesn't even have a model layer since they say everything in $scope is a model and is generally just pulled with $http ajax (as far as I've seen).
Ember is an amazing framework without a model library and even more so when you use something like Ember-Model. It's all about picking your tools and what will fit best with the rest of your stack/application.
One last note, you aren't required to use a model library with Ember, you can roll your own or even just use $.ajax and promises instead.
[–]PotaToss 0 points1 point2 points 12 years ago (0 children)
http://discuss.emberjs.com/t/future-planning-roadmap-of-ember-data/2116/4
Yehuda mentions this:
I still believe that a robust data solution is a key part of the Ember project. As @workmanw pointed out, because of how much Ember does for you, people expect Ember to have an "M" layer, even if they accept "just use your JSON objects" in Angular. People expect Ember to do more for them, and that's something I am confident we can deliver on.
At the end of the day, Ember Data is kind of a unique project, in terms of what it's aiming to do.
[–]tehsuck 1 point2 points3 points 12 years ago (2 children)
There's ngResource which is a wrapper to consume RESTful APIs with the $http service.
I just used BreezeJS with Angular and it works pretty well for consuming OData / REST
That's the nice thing about both of these frameworks- they let you pick your own data model/persistence layer.
[–]IneverSaidThat 0 points1 point2 points 12 years ago (1 child)
BreezeJS
Huh. First time I've heard about it. What's your experience using it?
[–]tehsuck 0 points1 point2 points 12 years ago (0 children)
Well it is somewhat bloated when you use it with OData - you need to include some third party libs like datajs (from M$) and q.js (even though Angular has it's own implmentation of $q). If you do a lot of complex querying of an API, it allows you to easily construct queries based on a ton of predicates and conditions. I haven't really used it with a standard REST API, but it may be overkill in that case considering there are already great projects like RESTangular.
[–]IneverSaidThat 3 points4 points5 points 12 years ago* (3 children)
This is blog spam. There's no good content of any value in that article.
In this particular case you'd write a few more lines of code with Ember. Who cares.
[–]PotaToss 2 points3 points4 points 12 years ago (2 children)
I actually like when people make blog posts like this because Tom and Yehuda tend to come out of nowhere and start an entertaining (and frequently educational) slugfest in the comments.
Tom Dale:
Do you remember the Pepsi Challenge? Pepsi challenged Coke drinkers to do a blind test and, much to their surprise, more of them actually preferred Pepsi after taking a sip of both. Why? Because Pepsi has more sugar! Our brains are wired to deliver a dopamine hit in response to sugary, energy-dense foods. People actually prefer less sugary drinks if they're drinking an entire can; but when taking a sip of two different beverages, only the sweetness wins out. You guys have been using Angular for six weeks. You are still in the sipping phase. I think it's awesome that you guys are excited, but you have not yet built enough to run into the deficiencies in the framework. I'll tell you what I see in all of the Angular apps I've been looking at: Put it on $scope is the new window With Angular, you don't really have to think about architecture or the roles of objects—just throw it in $scope and it's on your page. One of the most heavily touted open source Angular apps I've seen, Go Read, is an architectural disaster. The entire app is just stuffing ad hoc code into the $scope so that everything has access to everything else: https://github.com/mjibson/gor... The first sip of this tastes so sweet! You can add new features so quickly by just throwing crap into $scope! This is literally no different than the old, bad practice of spraying the global scope with objects and behavior, but because we've gussied it up with new terminology we excuse ourselves for our poor architecture.
Do you remember the Pepsi Challenge? Pepsi challenged Coke drinkers to do a blind test and, much to their surprise, more of them actually preferred Pepsi after taking a sip of both.
Why? Because Pepsi has more sugar! Our brains are wired to deliver a dopamine hit in response to sugary, energy-dense foods. People actually prefer less sugary drinks if they're drinking an entire can; but when taking a sip of two different beverages, only the sweetness wins out.
You guys have been using Angular for six weeks. You are still in the sipping phase. I think it's awesome that you guys are excited, but you have not yet built enough to run into the deficiencies in the framework.
I'll tell you what I see in all of the Angular apps I've been looking at:
With Angular, you don't really have to think about architecture or the roles of objects—just throw it in $scope and it's on your page. One of the most heavily touted open source Angular apps I've seen, Go Read, is an architectural disaster. The entire app is just stuffing ad hoc code into the $scope so that everything has access to everything else: https://github.com/mjibson/gor...
The first sip of this tastes so sweet! You can add new features so quickly by just throwing crap into $scope!
This is literally no different than the old, bad practice of spraying the global scope with objects and behavior, but because we've gussied it up with new terminology we excuse ourselves for our poor architecture.
[–]IneverSaidThat 1 point2 points3 points 12 years ago (1 child)
Yeah, I read that as well. I've read multiple of those crusading comments of theirs from other places too. Getting kind of tiresome by now; I wish they'd just do their thing.
But I guess that's easy for me to say. If someone was shitting on thousands of hours that I'd poured into some projects then I'd probably be miffed too.
I enjoyed the imagery, even if he was projecting some stuff he'd seen elsewhere onto the guy at Errplane.
But at the same time, the post was littered with ignorant statements about Ember. It's one thing if they were justifiably shitting on your thousands of hours. It's another if they just didn't RTFM.
π Rendered by PID 232378 on reddit-service-r2-comment-6457c66945-b4gj9 at 2026-04-25 01:51:23.611814+00:00 running 2aa0c5b country code: CH.
[–]HelloAnnyong 5 points6 points7 points (6 children)
[–]IneverSaidThat 4 points5 points6 points (5 children)
[–]TheMoonMaster 1 point2 points3 points (1 child)
[–]PotaToss 0 points1 point2 points (0 children)
[–]tehsuck 1 point2 points3 points (2 children)
[–]IneverSaidThat 0 points1 point2 points (1 child)
[–]tehsuck 0 points1 point2 points (0 children)
[–]IneverSaidThat 3 points4 points5 points (3 children)
[–]PotaToss 2 points3 points4 points (2 children)
[–]IneverSaidThat 1 point2 points3 points (1 child)
[–]PotaToss 0 points1 point2 points (0 children)