Marathons, Pirates, and Moving Beyond jQuery

Do you know Chris Selmer? He’s one of the Senior Partners here at Intridea. He’s also a person that likes to run, even when nothing is chasing him. Its baffling, I know. Although, I guess I’m no better, as I’ve recently started going to the gym and picking things up just to put them down. Not my best decision. Regardless, Chris likes to run. Thanks to this little tidbit I was granted the fortune of attending Ruby Nation this month when Chris, who had already purchased a ticket to the conference, decided to sign up for a marathon to run an only-acceptable-while-in-a-car distance that very same weekend. Good for him, and good for me.

So what does this have to do with anything?

Well, it was at that conference that some things came together for me. By things, I mean some thoughts that had been lounging around in the back of my head for quite some time. I always knew they were there, but I hadn’t given them any attention. Until Ruby Nation that is. There were a handful of sessions that really brought these thoughts to the forefront.

The first session that caught my attention was our own Jerry Cheung’s presentation on Node.js (slides) where he gave a brief tour of Node and went over a handful of example scenarios where Node would work well alongside Rails. Then there was a Blake Mizerany's keynote in which he talked about being a polyglot, (someone who uses many languages). There was Chris Williams’ pirate-themed adventure called, “The Javascript Renaissance”. And finally, Ryan McGeary’s lightning talk on CoffeeScript (slides).

In addition to the conference, there were a number of things floating around the Twitterverse that also got my attention. There’s been an increasing trend of tweets either denouncing jQuery-only JS developers and/or their practices OR tweets praising some new JS tool/library. Another enticing find was a link to the talented Rebecca Murphey’s keynote presentation called, “The jQuery Divide”.

I’m guessing you’re probably starting to notice a theme here. It was the culmination of all these events that resulted this epiphany:

“Shit, I’m one of those jQuery-only jackasses. I need to do something about it.”

I tell myself that I write JS every day, but I don’t. I write jQuery. Don’t get me wrong, it gets the job done. But it never feels right. Now, jQuery and its DOM-centric approach (at least in common usage) aren’t all to blame. Its just as much my fault in that beyond the library, I know very little about the language. I intend to do something about it. I have a plan and I’m going to share it with you. First, here are my goals:

  • Gain a more thorough and detailed understanding of the JS language itself
  • Increase my exposure to the plethora of kick-ass new JS tools and libraries

Here’s how I plan to do it. First, with two books that have come highly recommended:

  • Javascript: The Good Parts by Douglas Crockford - I’ve had this for a while and read about half-way through it, but at the time I just wasn’t interested enough to finish it.
  • Javascript Patterns by Stoyan Stefanov

The second part of my plan is to spend a non-trivial amount of time with each of these:

  • Dojo - This seems to be the toolkit of choice when you want to move away from heavy DOM-dependency
  • Backbone.js - I like the idea of models and views on the front end.
  • Node.js - Having become so wrapped up in the Rails world, I’m interested in playing with a different web framework, or in this case, http parser.
  • Coffeescript - I know, I know. Its an abstraction from JS, but whatever. It's new and people seem to really like it or hate it (see the recent Rails 3.1 controversy) so it must be worth checking out.

So that's my plan. With some poking and prodding from our Community Manager, Renae Bair, I’ll eventually post one or more follow-ups on what I’ve learned and my general thoughts on the experience.