Tuesday, September 28, 2010

Something lost in translation in the Language Wars

The office's Powers That Be are apparently on another one of their "standardization" rolls. Specifically, this means "upgrading" the computer language(s) in which our bread-and-butter is grounded. Based on empirical experience, this means another round of genteel food-fights over language options.

Cynically, I realize that such fights are rarely settled in some sort of meritocratic feature-to-feature smackdown. Not even when they are settled at all--meaning Management fully groks that it has finally run out of road down which to kick the proverbial can. Even when you (like I) are lucky not to be working in a Dilbert-esque scenario where the choice is made based on some alpha-suit tripping over a trade magazine during an emergency pit-stop in a non-executive restroom.

Sadly, personality is--and always will be--a factor. Up to and including passive aggression, prima-donna tantrums, skunkworks re-writes, sabotage, and certain uglier aspects of tribalism that (mercifully) stop somewhat short of cannibalism and/or rituals that made Indiana Jones and the Temple of Doom so eminently mockable.

There is a bright(er) side, however--even above the bits about cannibalism and Spielberg schlock. At least, if you're not what amounts to a computer language hipster. (If that's the case, I can't help you out here. Sorry. There's probably a case to be made in your favor...but you've never heard of it. ;-P)

But. If you're like me, and don't consider yourself in the business of being the unpaid beta-tester of a new language, or--perhaps more aptly--are just plain skeeved out by your fellow programmers' sensibilities, you might--might--have a secret weapon in your arsenal.

That secret weapon, friends and bretheren, boils down to tool-sets. Granted, geeks are quite good at scratching their own itches. But given the choice of cranking out great gobs of code in a sexy new language and stepping back long enough to breathe--by which I mean consider flowers-and-dinner niceties like intelligible API documentation, source control, backwards-compatibility and the like--I think we know what most language alcolytes will choose. Thus, itemizing the costs associated with restructuring the development process around an untried toolset shouldn't hurt your argument, particularly when the new "toolset" revolves around a Notepad-like text editor and a glorified command-line. Unless, of course, your current tool-set also revolves around a Notepad-like text editor and a glorified command line. (In that case, your argument's basically hosed--and may Cthulu have mercy on your soul.)

Understand that I'm not knocking new languages simply because they're new. But toolset support is important--just like anything you have to spend a couple dozen or more hours with a week is important. And if you believe in meritocracy--as many geeks seem to do, at least when it doesn't involve their favorite platform--then you absolutely have to consider toolset support a badge of legitimacy. Why? Because the language itself does not define real-world usefulness, any more than "date night" defines a relationship week-in and week-out. And, really, when Don Juan leaves the toilet seat up and his socks behind the couch...does the candlelit wooing really matter? Me, I think not. YMMV.