As part of a focus on refining my JavaScript skill set, I’ve flagged a number of books I’ve had on my shelf literally for years waiting to be read. My goal here is to first and foremost regroup on the basics, the foundational knowledge I feel I need to take on the more advanced projects I’ve got rolling around in my head later this year. The first book I’ve (finally) read is JavaScript Rocks! by Amy Hoy and Thomas Fuchs.
Sad as it is, I’m not even sure when I purchased this book and beyond that I can’t say when it was originally published but based on the copyright on the site it was around 2009. I’ve got this disposition in believing that books aren’t nearly as useful as, say, blog posts when it comes to the technology I work with. While that may be the case, I’ve also changed my thought process to embrace the fact that while a blanket statement like that was once likely true, the technology we’re working with is not only improving at breakneck speed, the foundational knowledge behind it is as well.
I was originally clued into JavaScript Rocks! by way of zepto.js which calls itself The Aerogel-weight jQuery-compatible JavaScript Library. A bit of a mouthful, but I was taken aback the first time I saw Zepto. I don’t know how much weight my opinion carries, but I’d like to think that Zepto had at least some influence on the recent changes in jQuery 2.0 in modularity and focus. It’s really quite an inspirational project that made quite a big wave amongst us JavaScript developers. Zepto is built and maintained by Thomas Fuchs, which lead me to keep him on my radar. I started following him on Twitter, seeing what he was writing about, and then I found out he was one of the two main people behind Freckle. It didn’t take long to realize this guy was way smarter than me. When I saw that he and his Freckle partner Amy Hoy put together this book, I quickly snagged a copy.
Getting to the book… er, books
JavaScript Rocks! is an all-ebook distribution that arrives as four books that work together to form an encompassing approach to more performant JavaScript. As part of the deal though, you also get some really neat tools that Thomas and Amy have put together to let you replicate the tests they’ve performed in the book. This is a terrific feature for a number of reasons. The four Parts of the book are as follows:
- Part I: Understanding & Measuring Performance
- Part II: Loadtime
- Part III: Runtime
- Part IV: Understanding & Measuring Performance
While each Part builds upon the one before it, I think each is as strong as the next on it’s own. Code samples abound, the authors guide you through a punch list of quick and dirty topics that get to the point and move on to the next. I really like the lack of fluff in the book in that each chapter is built upon bite-sized concepts that likely have a code sample and benchmark to focus on and analyze.
Overall reaction
I’m a happy customer to have purchased and read this book, and I’m a better developer for having done so. The approach is definitely different than other technical books, both Thomas’ and Amy’s personalities definitely come through with consistent quippy one-liners that break the mold of technical books being more dry than entertaining. I know that some people prefer an ‘all business’ approach, so unless you can put the small jokes aside I might suggest avoiding this title.
When I first began reading the books and noticed that all of the benchmarks used to support their claims consisted of older versions of IE, Firefox 2, 3, and 4, and a mention of Safari 4 being brand new I was a bit nervous that the content of the books was essentially worthless since it was basically written in what we can consider a different era of JavaScript development. I quickly realized that’s not the case. Thomas’ and Amy’s approach is exactly what I look for in authors; the provision of information that can stand the test of time to the best of it’s ability. The content in these books focuses on the technical reasons why one approach is better than the other, or why certain patterns will cause you trouble down the line. They’re not focusing on browser quirks specific to those available at the time, they’re chucking honest-to-goodness foundational advice for writing more performant JavaScript. I thought it was great.
Even though the books were written some time ago, I think they’re basically as applicable today as they were then. I’m no mastermind, but I definitely learned a number of things about how I can improve overall performance of my JavaScript on my next project. They called out a few bad habits I’ve developed with logic behind why it’s a bad idea. I was able to read the background surrounding why certain approaches are considered best practice. While these tips may very well have been ground-breaking-bleeding-edge pieces of advice a few years ago, they’re still applicable to us today.
I’d also like to touch on the awesomeness that is electronic delivery. Not only do they provide four solid pieces of work, segmented and focused onto each respective category, a ‘Goodies’ folder is also provided. It includes a ton of stuff to play around with, essentially allowing you to recreate their benchmark tests in the browsers of today so you can compare the results right on your own computer as you’re reading the text. It’s awesome.
If you’re looking to get back to basics with JavaScript, I think JavaScript Rocks! would be a great thing to add to your To Read list.