My favorite thing about using Ember so far is probably the ember-cli, which makes it quick and simple to generate all the routes and components you add to your app. When you’re working on bigger projects, you’ll find yourself in some patterns of adding a CSS here, a JS there, a handlebar template somewhere else, each time a new part of the site begins construction. I like that the CLI throws everything into the correct place for me, with options such as
--pod even making components a beautiful and self-contained folder.
Speaking of components, I really like the way these things are structured in Ember. I think my favorite tasks are the ones where I get to work on a new component. Working on the structure, properties (be it static or computed), and then being able to just call it to stick it anywhere on the site is quite enjoyable.
Routing is also something Ember really nails down in my opinion. I like the way they approach the URLs, history, and templating when it comes to creating an application. Once I understood how the `` worked, nesting became so much more clear.
I think my number one gripe with Ember is this: learning Ember is hard. Even after all these months, I feel like there’s so much I still don’t understand, more nuances for me to discover, and just an underwhelming amount of “aha” moments to make me feel like I’m progressing. Even with the Rock and Roll book, or the other Ember 101 book I used to help learn it, there’s a point in the book where I begin to stare blankly and wonder: “Wait, how did that work?” The infamous “learning curve” is real. I’m sure it’s gotten a lot better since the early Ember days, and perhaps frameworks are just a little too intense for my mind to grasp with ease, but I still wouldn’t call learning Ember easy, by any means.
I repeatedly compare Ember to Meteor, seeing as how the latter was the first framework I really got the hang of (I had tried Angular before that, and also had trouble with it). Pumping out Meteor apps felt so much easier to me, and learning it definitely did not feel as burdensome. There are many differences between the 2 frameworks of course, Ember’s opinionated structure, for example, is a double-edged sword that helps keep code consistent yet adds another layer of things to learn before stuff actually works.
Another thing that makes working with Ember slightly more painful is the performance on Windows. Node-based frameworks seem to have issues in general, as I can recall Meteor having similar issues early on (however, it drastically improved in later versions) but working on larger Ember apps now can be hard to work with when your application takes 2-3 minutes just to boot up. There are some tweaks available, but even then it seems like Linux/macOS are always going to be ahead in the performance game, which is a shame for all us Windows web developers.