Skip to main content
Ben Nadel at CFUNITED 2009 (Lansdowne, VA) with: Cara Beverage
Ben Nadel at CFUNITED 2009 (Lansdowne, VA) with: Cara Beverage ( @caraphernalia )

JavaScript Web Applications By Alex MacCaw

Published in , Comments (11)

Last week at the TechCrunch Disrupt Hackathon, one of the presenters (assumedly Alex MacCaw) mentioned that he had recently authored the book, "JavaScript Web Applications." The book sounded interesting so I made a note to buy it off O'Reilly when I got home. And, let me just say that I'm glad I did because this book is awesome!!! Although it's still considered an "early release" edition and is missing a few sections at the very end, this book is jam-packed with wonderful information regarding the architecture of complex JavaScript-powered web applications.


JavaScript Web Applications by Alex MacCaw - Book review by Ben Nadel.  

I've been programming JavaScript for years. And, although I am continually learning new technical tricks and practices, I like to think of myself as a pretty decent JavaScript developer. At least, from a technical standpoint. When it comes to architecture, on the other hand, I feel very much like a novice trying to feel his way around in the mirky fog of complexity.

For years, I've wondered why there's been such a huge discrepancy between the server-side world and the client-side world. Programming is not a novel profession and I've often questioned why the best practices on the server haven't been ported over to the client. This question has finally been put to rest; while the web development community has seen the birth of many client-side frameworks, I feel like this book is the first aggregation of all of these initiatives. JavaScript Web Applications by Alex MacCaw covers the end-to-end concepts of building complex JavaScript MVC (Model-View-Controller) applications from both a philosophical standpoint as well as from within the context of the major MVC frameworks (Spine, Backbone, JavascriptMVC).

This book is not for beginners. Although MacCaw has a jQuery primer at the end, the book is written with the assumption that the people reading it are moderately experienced JavaScript developers looking to take their client-side development to the next level. I read this book over the course of three days, and really, I'm only just beginning to feel the information sink in. Just looking over the Table of Contents, I'm kind of shocked at how much ground was covered. This is definitely a book that I'll have to re-read a few times before all the core components start to gel together in my mind.

In school, I was taught to understand JavaScript as a class-based language. And, although I haven't fully understood best practices of the prototype chain and class creation until recently, I have always looked at them [classes] as being important. As such, I knew that this book was going to be quality when on page 21, MacCaw states:

Classes in JavaScript often get a bad rap, criticized as not being part of the "JavaScript way," a term that means essentially nothing. jQuery is effectively neutral when it comes to structural methodology or inheritance patterns, which can lead JavaScript developers to believe they shouldn't consider structure; that classes aren't available, or shouldn't be used. In reality though, classes are just another tool, and are as useful in JavaScript as in any other modern language.

This passage raised my expectations high and I'm happy to say that I was never disappointed.

Not only is JavaScript Web Applications by Alex MacCaw a great book from both a technical and architectural standpoint, I also found it to be quite inspirational. As I was reading it, I kept thinking about how cool it was going to be to put these techniques into practice. The book really got my creative juices flowing; and even now, as I write this review, I can't wait to start building some sort of sample app in order to help bring these ideas to life.

Reader Comments


There are no classes in JavaScript or the class keyword wouldn't throw an error... somebody famous should rename objects used to create other objects to create less confusion on the topic



It's funny - I think this is one of those situations where trying to "remove" confusion actually creates more confusion :) Perhaps semantic clarity in this context is a Pyrrhic victory.

After all, JavaScript does have constructors, instance methods, "class" methods, and inheritance. I wonder how much we actually gain trying to make sure people don't refer to this as a class construct.


@Ben: Too bad that Early Releases are not also available at the iBookstore yet.

Did you get the ePub or PDF version?? If ePub, when you look at it in iBooks, does it show up in the Books or PDFs collection? Or does it create an ePubs collection?

All of these great books lately are part of a big conspiracy to keep us from getting rich.



The O'Reilly Media site gives you an option to download this book in either PDF or ePub version. I got the ePub version, threw it into iTunes and it synced right over to the iPad no problem. It shows up in the iBooks collection.

Now, what I'm *really* irritated about is that I purchased a different ePub book from Borders Books and I can't view it without the use of Adobe Digital Editions. That right there is highway robbery!!


Ben, have you investigated the JavaScript MVC framework called Backbone.js? I've just started looking at it myself, but it seems to provide just enough MVC functionality to be very helpful without requiring or enforcing any other libraries, styles, or back ends.



Alex actually covers Backbone.js in the book. Apparently he [Alex] is the author of Spine. In the book, he walks through building small sample apps using Spine, Backbone, and JavascriptMVC. It looks like some really cool stuff.

Taking what he has done in the book, I'd love to take it and run with it a bit outside of any existing Framework. In the long run, probably a foolish move since these MVC frameworks seem very well thought out. But, I like to find the "wrong" way to do things before I go, "Ooooh, so that's why they do it that way :)".

But, in general, I love everything they are talking about.


Oh awesome stuff! Well worth it.


I ordered this on Amazon. Release is predicted to be in September. I may cancel and order from O'Reily.
Also ExtJS 4 had a good MVC framework you can use with their projects.



The version on O'Reilly is like 99% complete. Honestly, the few sections that were missing were not critical ones (in my opinion). I feel like I got total value out of the first release (although I think a new release was just issued).

I'm gonna be playing around with some MVC right now :)

I believe in love. I believe in compassion. I believe in human rights. I believe that we can afford to give more of these gifts to the world around us because it costs us nothing to be decent and kind and understanding. And, I want you to know that when you land on this site, you are accepted for who you are, no matter how you identify, what truths you live, or whatever kind of goofy shit makes you feel alive! Rock on with your bad self!
Ben Nadel