I actually posted over here about how to improve the Docs, before I'd read this thread. So let me address my thoughts on this topic.
I'm exactly the target audience that would have used Angular instead of Ember. In fact, I'm about 4 weeks into Ember and very close to calling it quits and moving to Angular. I'll start from the beginning.
I'd say I'm an expert in PHP, jQuery and WordPress. I work at a digital agency, and work on WordPress powered sites almost 6 days a week. I'm in charge of a team of 3, with a network of freelancers. I hate VIM, we use Coda, the GitHub App, and generally stay out of Terminal.
WordPress just rolled out a JSON API, so we are starting to move to using WordPress as an API to power an MVC frontend. I spent a few months going into Ember v. Angular v. Backbone v. Flatiron. I would have gone with Angualr, except they blew up v1 and I'd have to start again with v2 at the end of the year, so I figured I may as well learn Ember now, and then switch to Angualr 2 if need be later.
The Google thing was a non-factor, seems like Ember gets hung up on that.
So far, the major pain points for me trying to get into Ember have been Pre-compling templates, Authentication, Routes v. Controllers (they seem to do all the same things!), Views v. Components (all examples use Views, Ember teams says to use Components), and Animations (not mentioned in documentation at all). I'm also struggling to find a list of all the action hooks (I'm not even sure that's the right name for them - beforeModel etc) and what sequence they get called in (would it be too much to see something like this).
The steep learning curve. No one above has touched on why this is so steep, but for me its easy to see why. Here is a list of technology you need to be very familiar with in order to build a simple signup/login/save-something app.
- Rails (so many examples say "Ruby gem" and it makes it seem like you need to know Ruby just to install something).
- Ember CLI or Ember Templates
- Ember Data (the docs make it seem like ED is the best way to go, it's not even at v1!)
- jQuery RSVP promises
- Setup a .htaccess (or equivalent) file to route everything to index.html
- How to config CORS on your API server
The above list is insane, you are not making it easy on people to get into Ember. Could you imagine a job posting asking for the above skill set? What would the salary be? Compare that to WordPress: PHP, HTML/CSS and maybe jQuery.
Now, it seems to me the best thing Ember could do is start figuring out ways to cross things off that list. Here are my suggestions:
Give up on the "everything in index.html" examples. They are disingenuous and not helping your cause. Having templates in separate .hbs files are the proper way to do things, so start owning up to that. I know the Ember core team are very adamant on how build tools are such common place these days, but the simple fact is they aren't. If you've come out of PHP, then you've never used them. If you improved the build process, you'd cross 3 things off that list right away. My wish: Build a simple plugin to Coda that compiles templates on save. Now I don't need Ember-CLI, Node or Grunt, and I can host everything on any Apache server.
Better "Ember Way" documentation/examples
The example app is way too simple for real life. No one is building a blogging app with no authentication. Authentication is a major pain point that you need to get over very early on in a build, and there is no clear indication from Ember about how best to do it.
@rafalp hit the nail on the head (see what I did there?). The docs don't come at it from the right angle, help us build something useful, don't show us all the fancy stuff Ember can do on Day 1. My wish: 2 or 3 simple apps well documented showing signup/login/save-something, each more feature complete than the next. They should show the current best practice on how to do things.
Then something like the WordPress CODEX. Start the docs from the point of view: "So you are looking to build something. When a user requests a Ember page, first this happens, then this, then this etc etc.).
See this for more details.
Don't talk about Ember Data yet
It's not ready for prime time, and it adds a whole other level of learning at an early stage of a persons Ember onboarding. You'd be way better off talking about simple ways to connect server side APIs manually. The concepts are easier to learn (it's just AJAX returning a JSON object), and those lessons only make it easier for you to understand ED later when you are ready.
From what I understand so far, the same could be said for models. I got real hung up on defining models in Ember, when really if the server returns JSON objects formatted correctly, you don't even need to define anything.
Angular makes a big deal out of this, because it's what people in the real world want. The first thing anyone will want to do (even before authentication), is have a drop down menu or animation between routes. Ember makes a big deal out of being a "real world framework", you need to give some official direction on how to do basic animations. My wish: Something way simpler than Liquid Fire, that allows me to slide in a menu, and animate between routes.
Stop talking about Rails/Ruby/Node
The PHP audience is massive, and the way WordPress is going will only encourage people to go the MVC way. But the more I see Ruby gem this, or Rails this or Node that, I just start thinking "wow, I have to learn so much just to use Ember!". You should be server agnostic, and not require Node/NPM/Grunt to use something that is essentially a giant plugin to jQuery.
Get way into StackOverflow
Forget about IRC, your only helping nerds . StackOverflow posts last forever, and serve as a stop gap for incomplete documentation. The voting nature of it also makes me feel confident that something is best practice, more so than a blog from a year ago.
And having read the above thread, I'd urge you not to get hung up producing video tutorials. That's such a frontend developer mentality (the days of Flash are over!). Clear direction on best practice from the core team, solid StackOverflow presence, solid example apps, and great supporting documentation is more than enough. WordPress got massive doing just that, can't remember ever seeing a WordPress tutorial video.