Also if you can recommend learning resources, such as online courses, books, podcasts and etc.
Hi @MarkusDoron, welcome! As with anything in life the answer is a little more complicated than a simple yes or no, so let’s break it down (note that these are more from the perspective of a beginner, not necessarily the same as an overall framework pros/cons list):
Pros (for a beginner)
- Great guides and community: the official Ember.js Guides are a really great resource and include framework guides, tutorial, and API docs. The community is also very helpful, warm and welcoming and you can always ask questions here or in the Ember discord
- Batteries included: Ember is a “batteries included” framework meaning it ships with a lot out of the box and the rest is usually easy to get via 3rd party package or Ember “addon”. This means you can write anything from a simple static page to a very complex data hungry beast-mode application without needing to make a bunch of extra decisions or a “meta framework” “Stability without stagnation”: one of the core goals of Ember is to keep it modern without doing any rug-pulling where you’re stuck rewriting an old app to upgrade rather than incrementally adopting new features and deprecations. So if you want to work on a long lived app it’s a really great choice.
- “Convention over configuration”: another core tenet of Ember philosophy is striking a balance between driving best practices through convention and making every single thing hyper configurable. We lean towards the former. This makes it a lot easier to pick up to some degree because you have to make a lot fewer decisions upfront and you know that these conventions are battle-tested and debated and very carefully chosen. It also makes it possible for the cli to do a lot for you with simple commands.
- Cool technology: on a technical level Ember has always had some really cool features which are cutting-edge in their own right. For example the “autotracking” reactivity model is arguably peerless in simplicity as well as performance. The rendering engine and choices behind statically precompiled templates are also cool if you want to dive in deep.
- Community Driven: Ember is community-driven and core-team piloted meaning anyone can make suggestions or write an RFC to propose new features. This can be refreshing and transparent vs dealing with big tech companies that “own” the framework (I won’t mention any names but they may or may not rhyme with “boogle” and “spacebook”)
Cons (for a beginner)
- Big framework: this is the flip side of the batteries included thing, because Ember has a lot of stuff out of the box it means there’s a lot to learn out of the box. Comparing, say, React and Ember doesn’t even really make much sense because React by itself is just the component/rendering layer. Many people and companies that use React or Vue end up building their own “meta framework” e.g. collection of other tools and plugins and libraries or “the batteries”. Because those core libraries are so small and focused on one particular concern (components components components) it can feel a lot easier to “learn React” even though you’re just learning one small part of the overall picture. So if you are strategic in how you tackle Ember concepts you can follow a similar journey but without all the headaches of deciding between, say, a bunch of different router libraries. But it’s important to call that out.
- Fewer resources: no point beating around the bush, while there are a lot of really big companies that use Ember and it’s extremely battle tested and cutting edge in many ways, it just doesn’t have the adoption footprint of React. This means there aren’t as many resources out there. That said, because Ember is batteries included and convention driven, the resources that are out there are going to be much more aligned with each other and consistent in patterns and practices than you would find in any other ecosystem where there are 100 different ways to do everything
So anyway I hope that’s a balanced and nuanced perspective for you. Overall I would say “yes”, especially if you’re looking to build complex or ambitious applications rather than one-off components or static pages.
A couple resources I’d recommend off the top of my head:
- The official guides and docs
- The official “Learn” page - part of the aforementioned docs but worth calling out on its own
- Rock and Roll with Ember - book by Balint Erdi - great book for starting out with Ember. The author keeps it up to date and does a great job of walking through all the steps for building out a real web app.
- MDN Ember guides - I’ve never fully run through these but seems like a nice modern walkthrough of building a todo app with Ember
- POC Cookbook - I probably shouldn’t even mention this since it’s very much in the POC/WIP phase but an oft-requested resource has been a cookbook and the learning team is working on building one out
- Youtube videos: I can’t endorse any specifically without experience with them but I know there are some out there. This one for example looks pretty solid at first glance.
- This discourse forum and the official Ember Discord are the best resources for asking questions and getting connected
I’d say be cautious using resources older than a year or two as they might be too outdated and confusing. I’m also going to paste in a list of resources from @NullVoxPopuli from Discord below:
- The Ember Tutorial
- How to think about Templates
- Rack and Roll with EmberJS
- Book: Pro Ember Data by @iamdtang
- @wycats is starting a video series
- @Shawn Chen’s Ember.JS tutorial for beginners
- @knownasilya YouTube tutorials
- Gavin Joyce painting game in 20 minutes
- The latest emberconf
- Ember Igniter
- Ember Atlas
- I’m probably missing a bunch of other community resources