Ember: Get More Done
Ember often gets lost amidst talks of other frameworks and tools like Angular, React, etc. and I think that’s incredibly unfortunate. Because of Ember, I’m the most productive I have been in years and building some of the best software I have ever written. It’s not that Ember is fundamentally better than other frameworks (but it is…), it’s that Ember makes decisions for me, it makes my workflow far less complicated, levels the playing field and gives me more time to spend building awesome software.
It’s Super Opinionated
Ember’s very opinionated stance on many aspects of web development is my favorite feature of the framework. It’s something you either love or hate. Frankly, both are valid opinions. Nobody wants to be told how to do their job, because murica', and I completely understand that sentiment.
There’s a school of thought that I subscribe to that as a human, we’re only capable of making a set number of decisions in a given day before we face overload. That applies for all decisions: what you eat, what you wear to work, decisions you make on the job, etc. The idea is that knowing you’ll hit cognitive overload eventually, the less decisions you can make, the better. This leaves more room for decisions that actually matter.
Ember makes a lot of my web decisions for me. I don’t have to waste brain cycles wiring together build tools like Grunt or Gulp. I’m not trying to determine the best way to interact with my API. A lot of those decisions have already been thought through for me (and by people who are a lot smarter). Sure, there’s part of me that wants to write everything myself, but that was the young me. The old me wants to build great software, fast. The less time I spend with all those little details (that the end user never cares about or sees), the more time I have for actually building my application and saving my finite decisions for those that actually matter.
Another side effect of these opinions is that as I spin up more Ember projects, the cognitive load of remembering what I was working on is significantly reduced. Because the semantics remain largely the same between projects, the context shift is very limited so my productivity increases dramatically.
Thought Leadership
The Ember community, on paper seems much smaller than that of say Angular, or React. Having spent little time with either, I have no room to think they don’t have good communities. However spending a lot of time working with Ember, I’m very impressed with how great the community is.
Head to the community page and you’ll find lots of ways to reach out to fellow Ember developers and even the Ember core team. Given that everyone is working with Ember in basically the same way you are, it’s easy to ask questions and get answers with little effort.
In addition to the core team being full of intelligent folks, iterations of Ember are very much community driven. People that use Ember every day can have a profound say on the direction of the framework and tools. While Angular just went through an entire rewrite, Ember feels like it’s just getting more mature and stable.
There’s an Addon for That
Eventually you’ll have to integrate other libraries into your application. Maybe Google Analytics, Adobe Typekit, some build tool, etc. With a huge addon community that is growing every day and tools like Ember Observer, I have never been unsuccessful finding an addon for the 3rd party software that I needed.
If you’re following closely, maybe you realize there’s a theme emerging: Stop thinking about the little details and start getting more done.
Get Shit Done
Software development is hard. Working with people, business owners, designers, managing agile stories, devops, it’s all a lot of work already. It’s also a tremendous amount of mental effort arguing with other developers over which tools to use, how to do X, etc. All I want to do is write awesome software for my users. Honestly, I don’t really care why Gulp is better than Broccoli or hearing about why React is the hotness. I need to get shit done.
Adopting Ember, going all in with JSON API, using the Lightning Deploy Workflow have all been revelations. My productivity has gone through the roof and I spent way more of my time doing what I love, building software and far less time debating tools and patterns.