Thursday, August 06, 2009

Perl as Glue, and the Ebbing of Mindshare

People have lovely things to say about Perl, and one of the first things you'll hear is that it's great glue. It's good for stringing things together, and making them work.

The problem with glue is that it doesn't constitute a "good solution" in the mind. We know of glue as something we apply on our shoe when it comes apart, just as a stop gap until we can finally get a new one. The Tata Nano is held together with glue to cut costs. Make no mistake, this is a technical achievement and an innovation, but we all know what people would rather have used: steel rivets, like what they use on the space shuttle.

Well, that's what the rich people get. Poor people get glue.

This is, of course, technically inaccurate: industrial strength glue holds everything from our iPods to our vehicles together. But the crisis has always been one of perception, not of reality.

Perl is a lot more than "handyman glue". It's like saying steel is good for nails and that's all it's good for. No, you can make ships out of steel as well.

This perception of Perl as that special, weird-looking wrench which fits into corners other wrenches can't fit into is what's holding it back as a serious language. People will only use it when their "normal" tools don't work, so they don't appreciate it's greater applicability.

But it's a difficult problem to solve. Because Perl is great glue. It's Soviet-gymnast-like flexibility is what makes it so powerful, as nails that holds your chair together, and as the stuff that makes up the hull of the USS Enterprise.

Perl has a long, varied, and continuing history in web applications, so it's really quite sad to see it having lost so much of its mindshare after having come so far. It's "sad" for me, because I'm only now at the cusp of my career as a web application developer; I wasn't around for the first 2 acts. So I have very little idea of what "mistakes" Perl must have committed in the past to now be relegated to the rusty toolbox of the IT world, but I'm sure there must have been some.

The company I work at is now seriously reconsidering continuing with Perl. We want to move to Java, and partly, even I'm convinced that a solution in Java is a more sustainable one. In fact, my only argument for sticking with Perl is a not exactly a shining vindication of Perl (although it is ultimately correct): we have too much momentum and expertise in Perl to drop it like a bad habit just yet. If we're going to do it, we have to plot a methodical and gradual migration away from it.

But in this current round of technical naval-gazing within my organization, even if I get everything I ask for, the next few years will see the end of Perl in yet another enterprise environment as we slowly transition to the suited and booted Java Enterprise Edition.


About Me

My photo
I write essays in my spare time on things that are important to me. The ones that I feel are any good, or make any sense, I put them up here. :)