Whither Prototype or jQuery

The fact and fiction of why I choose Prototype over jQuery

FACT: I like Prototype better. It fits the way I program perfectly. I like prototypes, I like programming in a somewhat functional style. I don’t think of things in a DOM-centric way. I’m OK with having client-side state.

FICTION: jQuery is the “emo” framework. Apparently it (was) the “new wave” framework. Either way, I will always hold it against John Resig that he chose Devo hats as the logo.

FACT: jQuery is a fine framework if you think in terms of the DOM or don’t do much back-end programming.

FICTION: To become proficient at Prototype, you have to punch the first jQuery user you see every day. I have never punched a jQuery user. Attempts to verbally duck punch them have met with minimal success.

FACT: Dollar functions are sexy. Clearly one of the best abuses of a programming language grammar, ever.

FICTION: You can’t write unobtrusive JS with Prototype. I wrote a tutorial for Advanced Rails Recipes on how to do that with Dan Webb’s lovely LowPro library.

FACT: We can all agree, YUI is really unpleasant to look at. ENOUGH.with.the.fourteen.dots.before.I.can.do.something.useful!

FICTION: Sam Stephenson is an artificial intelligence akin to GLaDOS. I’ve met Sam twice. He did not attempt to coerce me into an incinerator.

Now that we’ve got the record straight, I’ll leave you with a comparison. To my jaded, biased and stubborn eyes, trying to use jQuery feels limiting. But I think that’s particular to my experience and preference. No doubt, if jQuery were a musical instrument, it’d be akin to Stevie Ray Vaughn’s guitar “First Wife”: suited to its user, iconic and specifically built to its purpose. If you were to try and play a Beethoven piano sonata on First Wife, it just wouldn’t come out right. However, your basic baby grand piano is equally suited to Beethoven or B. B. King. So in my tortured metaphor, Prototype is a piano — harder to play well, but more rewarding once you do.

Published by Adam Keys

Telling a joke. Typing.