Sam Gentle.com

Adaptation

It's no secret that developers, especially web developers, are often trend-obsessed, and every bit as flighty as fashionistas or foodies. I can't think of a single library or framework I use that's older than a few years, and some are only months or weeks old. Developer communities tend to move quickly too. For a long time developers hung out on BBSes, then newsgroups, then Slashdot, Reddit, and these days Hacker News. I think the answer to whether there'll be a next one after Hacker News says a lot about how trend-driven developers are.

Many people would point to all this churn as change for the sake of pointless change, much like any fashion, just chasing novelty. Others would say that it's just a fast-moving field, and these are genuine improvements to the state of the art. I actually think both of those are true, and I'd like to suggest a third factor: trendiness as a personality test. Constant change gives a fertile environment to test how adaptable and how comfortable with risk a developer is.

Web development and startup culture is often predicated on the idea of rapid, unpredictable change at the business level. This is the culture that brought us the "pivot", which is a restructure executed at the speed of a ballet turn, and the "lean startup", which is a business that figures out what product to build after selling it to customers. A developer who can succeed in that environment would have to be adaptable and embrace risk almost to the point of parody.

You could filter for that kind of person by asking them, of course, or by hoping that the natural sieve of the industry would filter out people who weren't suited to it. But why rely on that when you can do so much with just your choice of programming language or framework? Pick a language that changes quickly and only developers who can adapt to rapid change will work for you. Pick a framework that requires ongoing learning to keep up with and you'll get developers who constantly learn.

If you're lucky, your technology will mature as your company does and you'll be able to keep using it. But not always. Twitter famously made the transition from a Rails backend to Java and Scala as their company got too big to failwhale. This leads to the reverse situation: as a larger, more risk-averse company you can use the same filter to reject the hotheads and fashionistas. They're not going to want to work with your ten-year-old mission-critical Java stack.

And a good thing too. I'm a big fan of Nodejs, but the day I see it on the ISS is the day I uninstall Kerbal Space Program.