Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at CFUNITED 2010 (Landsdown, VA) with: Randy Brown

JavaScript Web Applications By Alex MacCaw

By Ben Nadel on

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.

Tweet This Great article by @BenNadel - JavaScript Web Applications By Alex MacCaw Thanks my man — you rock the party that rocks the body!



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

Reply to this Comment

@Drew,

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.

Reply to this Comment

@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.

Reply to this Comment

@WebManWalking,

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!!

Reply to this Comment

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.

Reply to this Comment

@Tom,

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.

@Jason,

Oh awesome stuff! Well worth it.

Reply to this Comment

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.

Reply to this Comment

@Bilal,

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 :)

Reply to this Comment

Post A Comment

You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.