Reviewing the Heretical Guide to Ember.js

Philip Poots · 20 Jun 2013

Giles Bowkett released his latest ebook, ‘Heretical Guide to Ember.js’ yesterday, selling at $47 (USD) for an 108 page PDF. If you come from a background of server-side programming, are unfamiliar with GUI development, and have struggled with the paradigm shift that the concepts in Ember.js represent, you will save yourself a lot of head-scratching and brow-furrowing with this book.

Mr. Bowkett has done all that for you, so you don’t have to, and returned to tell the tale; descending into the bowels of Ember.js while thinking critically and writing (heretically) about his experience in his own lucid, entertaining and inimitable style. He introduces you to, and provides a critique of, Ember’s implementation of MVC.

“the book offers a heretical perspective on Ember MVC which, in my opinion, clears up a lot of the confusion”—p. 2

Mr. Bowkett

Those of you who are familiar with the writings of Mr. Bowkett are aware of his no holds barred approach and he certainly doesn’t pull any punches in his latest book. The good news is that you will be better off for it. Whether it be lambasting the creators for their lazy approach to one of the hardest problems in computer science or peeling back the facade to reveal inner workings central to understanding Ember.js, Mr. Bowkett does not disappoint.

“I’ll probably aggravate some Ember fanatics”—p. 4

The Book

The book itself is one-hundred and eight pages of text, code and screenshots. If there were a criticism to be made, it would be that taking out repeated code samples and images reduces it by about twenty-five percent*. Though, in fairness, they are central to the text and part of Mr Bowkett’s gradual, layered instruction, ensuring that each concept is presented clearly and in isolation.

Fig. 1 A chess board in the browser.

The Approach

Mr. Bowkett focuses intensely on the conceptual framework that Ember gives you at the expense of minor details. (Think, how do the parts fit together and what are they for, instead of, how do the individual parts work.) And this lends the book a certain longevity despite any changes that might happen in Ember’s API, making a mockery of those who voice concerns about purchasing a book on Ember before it has hit 1.0.

You are walked through a series of examples in ascending complexity, building a simple Hello World app, adding interactivity, moving on to a more involved GitHub Issues browser and finishing up by implementing a browser based chess game in Ember, complete with explanations and reflections along the way.

The Code

Code examples are used liberally and all of the code from the book is part of the download, split into handy snapshots. One of the projects is on GitHub as a complete application. The book was written with RC3 and does not deal with Ember Data.

Conclusion

This is a book with a specific audience and a specific goal: allow experienced developers to smash through the sharp learning curve and understand the foreign concepts quickly. I would recommend it especially to those with a good server side understanding of MVC and who have no GUI development background. It is like a zip fastener that will bind your mental model to Ember’s with a minimum of fuss. Complete beginners might not have the prerequisite knowledge of classical MVC or object-oriented design necessary to get the most out of it.

The scope is limited however, and doesn’t go into any great detail on other topics. At $47 you might find it a little steep, but if you factor in a week (or more) of evenings trying to get over the initial hump alone, the book is more than worth it.

To settle the debate at the bottom of Mr. Bowkett’s blog post, ‘Heretical Guide to Ember.js’ is the best book on Ember.js, because it’s finished, it’s focused, it’s fit for purpose, and it’s fun. ■

* An educated guess. Of course that criticism would only apply if you judge a book’s quality by its length, which is a ridiculous assumption to make anyway. I’d like books to take as few words as is necessary to teach me what I need to know.