Sorry that this got so long. In short: it is about the aspects that made me (a JS framework noob) decide to go with Ember, which I think might be interesting in the context of this question.
I am new to this forum (so hello world) and also quite new to Ember. I come from a backend stack for which I am still enthusiastic about. 2014 for me felt a a lot like finding some fat-client-framework in the JS world that I can imagine to build a similar level of trust in.
So I wrote little (as in between demos and live code, but far from enterprise) SPAs in Knockout, Knockback, Backbone (w/ Marionette), Dart (w/ Polymer), Angular and Ember. Their scope was usually a hand-full of routes as well as consuming and posting from/to REST-APIs.
Writing those small first apps has a lot to do with surfing the web and reading about the pros/cons. So what I often read is that Ember’s documentation wasn’t good. If this has been an issue before, I must say that I like the Guide and API section as well as the ember cli docs very much. In my opinion (and in those use cases I am learning about in my current state) they are superior to Angular’s.
On the other hand, Angular by having so many users, has many books (published and self-published) out there. E.g., I like Safari and Packt Publishing as online libraries and often look to Leanpub for what they have. There are so many publications about Angular, even whole books devoted to aspects of the framework (like directives, services). Getting a comparable amount of publications out there (including books/booklets about more specialized aspects of the framework) could help in building trust.
What pushed me as a noob towards Ember are these aspects:
1 core team solutions
2 ember cli
3 readability
4 community
5 roadmap
Core team solutions:
The most annoying fact experimenting with Angular was, that it made me – the noob – choose between a bunch of third-party components on the model layer as well as having a de-facto standard router from contrib-land. To be clear, choice is good (and Ember has alternatives form contrib as well), but having components for aspects like data, routing and more complex layouting needs directly planned and maintained by the core team seems like a must to me.
Ember CLI:
This is the biggest selling point in my opinion.
- It makes it easy for new devs not to worry about whether their file layout follows best practices.
- It comes with auto-configured dev server and lets you directly jump to the first line of code.
- It has the build tools integrated.
- It supports the POD structure (which I hope will become the default).
- It comes with a free solution for app and environment configuration .
- It obviously has the potential to become a widely used package manager for contrib packages.
- It delivers infrastructure for test scenarios.
- It is obvious that its scaffolding can house larger projects.
Readability:
Not having to carry around all those arguments related to DI makes the code more readable and easier to write.
Community:
Angular is (enormously) huge, but this doesn’t mean that all the other frameworks are small. Ember (like backbone and co.) do have a very active community. Resources like this forum or SO show that you can get decent help rather quickly.
Roadmap:
Following some talks on Youtube and reading here, I notice that with HTMLBars there is a very concrete strategy to lift some of the currently weaker(?) parts like rendering speed or a more generalized approach to animation. That the people behind the framework actively address such issues (on a core level) instead of leaving it to third party and/or encouraging workarounds makes me confident that the project has a future.
Now, there are some concerns (most probably due to my lack of experience), like e.g. the file size of even a plain production build from ember cli (> 500kb?). But I guess a part of it is caused by transpiling ES6 to current-day JS(?), so this might eventually become less when delivered to ES6 browsers. For small addons to existing services plain jQuery (maybe supercharged with Backbone) will remain perfectly valid solutions.
But for a bigger web application context, because of all the reasons above (and some solely personal preferences like the framework’s interpretation of M/VT/RC ) I will go with Ember on apps that call for a big framework. And I am very curious how gaining experience will influence the initially very positive impression that I have.