I’ve been meaning to blog this for a couple of weeks now but for some reason (oh, that’s right, the little rug rat) the only time I find to write is when I’m sitting in airport terminals. Today I find myself in the glorious C concourse at MSP even though I’m taking one of my shortest hops of the year - all the way to Milwaukee! It’s just a good thing I married one of the most understanding women on the planet; after leaving her to play man up on the little one for the weekend, I’ve increased the challenge by disappearing during the week. Thank god I can compare my travel to Venkat!
Anywho, two weeks ago I found myself fixing some JavaScript and I was reminded why I so love dynamic languages. We had a situation (two actually) where I had to add additional parameters to an existing method to clean up some issues that were showing up on one particular page. Since JavaScript isn’t too particular on method signatures, I was able to make the changes without impacting *any* existing calls to the method - they weren’t even aware I made the change. Now, I know that in static language land, I could have just overridden the method but then I’d be left with those little one line orphans that do nothing but call the new improved function. Oh, and I would have had that wonderful recompile stage! Small thing, but I was just ever so tickled that I could quickly and easily fix a specific problem without fear of disrupting other code.
Just last week I had another “dynamic languages rock” moment. One of the interns has been busy getting Groovy working on some simple scripts to help out with a couple of things. First, he wrote - in just a few hours - a Groovy script that combined a handful of JavaScript files into one (akin to what the Prototype folks do). Thanks to Scott’s presentation, he was up and running in almost no time. His productivity was quite something - it seemed like he was asking for more constantly. I’ll be the first to admit that I had mostly written off Groovy what with JRuby and all, but after seeing what we were able to do in just a short amount of time, I’m definitely on the bandwagon. But then it’s not a zero sum game
Now I’m sure some will call the tasks we accomplished in the last couple of weeks “trivial” or perhaps “academic” but I just don’t care. Groovy scratched an itch and JavaScript is one again reminding me that it’s a first class language; perhaps even the next big thing.