Sep
9
2010

The Four Stages of JavaScript Grief

The typical beginning of an Enterprise Developer’s JavaScript education is involuntary in nature. In many cases an engineer with a strong background in Java, or other strongly-typed languages, is informed that their next project requires JavaScript. Like all forced actions, this will be a bumpy road. So bumpy in fact, that the Enterprise Developer will go through a grieving process as they leave behind their beloved strongly-typed language and plunge into the duck-typed world of JavaScript. This process of grief has four distinct stages.

Stage One : Doubt

Description

As I discussed earlier, the Enterprise Developer’s usual introduction to JavaScript is less than stellar. Rightly so, when a developer hears that the next ‘Big Project’ will be done in JavaScript, their first thoughts are of the skeptical variety.

Symptoms

  • Sufferer will indicate that the prospect of using JavaScript will certainly lead to folly.
  • Sufferer will be heard saying things like, “JavaScript? Isn’t that the thing hackers use to screw up your Back button so you can’t leave a page?”

Stage Two: Hate

Description

Forced to learn JavaScript, the former-Java programmer decides that their 10 years of working with Java is more than enough experience to dive right in. Frustration of the highest order soon follows.

Symptoms

  • Sufferer’s cubicle bookshelf is completely devoid of any books on JavaScript.
  • Sufferer has web browser tab open to W3 Schools.
  • Sufferer’s JavaScript code has been bent, battered, and forced to conform to the look-and-feel of Java.
  • Sufferer’s screams of frustration are easily heard over hum of white-noise generator.

Stage Three: Begrudging Appreciation

Description

The most important stage. If the Enterprise Developer does not quit in spectacular fashion, the only other choice is to request time from management for some much-needed JavaScript education. Once the fundamental aspects of JavaScript are learned, productive results soon follow. Our Enterprise Developer recognizes that JavaScript has some good stuff in it, has discovered a great JavaScript toolkit like Dojo, and is producing efficient, cross-browser code. To be certain, the developer still hates JavaScript, however, this emotion has been put in check for the good of the project.

Symptoms

  • Sufferer’s cubicle bookshelf contains both JavaScript: The Definitive Guide and Dojo: The Definitive Guide
  • Sufferer has become proficient at debugging problems with Firebug, and cannot fathom a world without it.
  • Sufferer’s code still looks a bit Java-ish, but contains healthy doses of lambda functions, asynchronous callbacks, and other JavaScript goodies.
  • Sufferer begins to think about problem solutions in terms of JavaScript. Periodic returns to the Java world begin to feel awkward.

Stage Four: Love

Description

The final stage of JavaScript grief is one of gushing adulation. Most developers will remain indefinitely in Stage Three, but there are exceptions. The developer that reaches the ‘Love’ stage of JavaScript Grief has completely looked past all of JavaScript’s short-comings and finds joy in its powerful concepts.

Symptoms

  • Sufferer’s cubicle bookshelf contains nothing but JavaScript books. Directly below bookshelf, sufferer will often build a shrine to Douglas Crockford and John Resig.
  • Sufferer’s interest in JavaScript has moved beyond the browser. Sufferer will actively look for ways to add JavaScript into other parts of a software stack, usually in annoying fashion.

Related Posts

About the Author: Dan Lee

Dan Lee is a Software Developer and Dojo enthusiast. He is the creator and co-developer of the ReminderFox Firefox add-on and the addictive iOS game, Rhymo. Find him on Twitter here. Any opinions expressed on this blog are his own, and not of his employer.

11 Comments + Add Comment

  • Hahaha!! That’s great! That sums up my experience with JavaScript. Now, I’m somewhere comfortably in between stage three and four. :)

  • As true today as it was in 1998 or so.

  • When the company signs me up for conferences, they put “Javascript Zealot” as my job title.

  • I think I’m between stage 2 and 3

  • Or proceed directly to stage 5, bliss, with a typed language that targets javascript.
    Try haxe, http://www.haxe.org, and retain the crucial component of static typing for large projects yet use all your favorite Javascript libs, e.g. Node.js and Dojo.

    http://github.com/blackdog66/bdog-dojo
    http://github.com/blackdog66/bdog-node

  • @backdog : My thought exactly. Only I would suggest to use Google Widget Toolkit instead. I am happy to know that I don’t have to consider JavaScript an option.

  • Can’t agree more. It takes a while to “get” JavaScript. More so if you’re a Java developer. I just recently wrote about this exact same thing. JavaScript can be very powerful and the pace of development is so incredible it becomes very enjoyable (http://www.streamhead.com/last-fm-api-javascript-experiments-40-lines-lots-of-fun/)

  • Forgot one

    Stage Five: enlightenment

    Javascript feels too verbose when compared to clojure, python and ruby. Migrates to coffescript (http://jashkenas.github.com/coffee-script/), and never more care about semi-colons, lack of classes, and other drudgery. Browsers still see javascript, but you realize you can live in a better place.

  • I am a server side Java coder that works with Javascript now and again.

    If I am being honest, I have always hated it and though it was a bit out of place in the Enterprise setting.

    But a couple of months ago, I was passing some json around and stopped to look at it. And it just hit me that its a thing of beauty !! So concise, flexible, powerful and simple all at the same time :)

    After soaking in Crockfords book and applying the good parts… I start to feel heavily constrained when going back to work in Java. I feel as though the language puts me in shackles. But when coding in Javascript, I feel liberated. I totally luv the stuff, so happy to be at stage 4 :)

  • That just made my morning a little better. It’s not very often I find myself LOL’ing in the office ;)

  • I seriously think you should start making a South Park cartoon-like episode on JavaScript :D

Leave a comment