Thursday, September 26, 2013

Nobody Will Ever Win

Sarah Mei gave a talk at GoGaRuCo entitled "Why Hasn't Ruby Won?" It's a trick question; I haven't seen the talk itself, but at the end of the slide deck, Mei concludes:

Ruby can't win, because language choices hinge on familiarity. And everyone who walks in Ruby's door has given their brain a different set of training data than you gave yours. So not everyone's going to be a match.

This is a game where there is no winning. But there is definitely losing.

Ruby could wither into a niche language like COBOL or Smalltalk. And none of us wants that.

Daniel Fischer followed up this line of reasoning:

We made our strides, and now we’re receding into history...

We’ve reached a point where the innovation trends are happening outside of our bubble. If we continue with settling with what we have then Ruby and Rails will recede into a comfortable zone and stay around just like PHP...

If you ignore Javascript you’re going to be left behind. Yeah, Ruby is amazing and we’re used to this beautiful syntax but the hard truth is that Javascript is here to stay and if you look at any Rails project that doesn’t take it seriously then you’re in a minefield of hurt. The modern web demands a high command of Javascript. Make your life easier by understanding it and embracing the innovation that is coming out of it. If you take anything away from this post, let it be to compel you to take Javascript seriously.

There's something very amusing about this to me. Last year -- closer to two years ago now, really -- I wrote a bit of a rant called Rails Went Off The Rails, about how I was seeing a lot more creative excitement in the JavaScript world than the Ruby world. Since then, I've been repeatedly heckled by Rubyists who apparently believed me to be a Ruby hater or somebody who had given up Ruby for JavaScript. But now, other voices in Ruby-land are saying the same thing.

Still, I'd agree with Mei that "winning" is a meaningless goal here. Why hasn't Spanish won? Why hasn't English won, or Cantonese, or Esperanto? We speak different languages with machines for the same reason that we speak different languages with each other. I love Ruby, and I think Python's OK. I love Ancient Greek, and I think Latin's OK. It doesn't take a rocket scientist to notice the theme. Languages reflect both culture and taste, both of which are inherently idiosyncratic, and always will be, from now until the end of time.

But I have a harder time with the idea that Ruby is in any danger of withering away. I started working with Ruby in 2005 or 2006, and by any metric, the language has grown. The number of available jobs has obviously increased by a huge degree. Same with programmers and projects. The language itself is faster and more sophisticated. In that context, the notion of Ruby withering away to nothingness looks pretty ridiculous.

It could be fair to argue that the increased popularity of Ruby has made the Ruby community less creative and more boring. There's less excitement and more corporations, or at least, there's less weird creative projects per capita -- there are a lot more pedestrian applications at cubicle-centric companies, sure, but your options for writing code which creates music and art are much better today than they were back in the days of Rails version 0.13. The average Ruby developer today is significantly less likely to be fluent in multiple languages and writing a language of his or her own, but the available tools for language design are much better. So even there, the wither-risk looks low.

I think the only way Ruby could be said to be withering away would be to assume that Ruby no longer holds the center spotlight in the endless fashion show that functions as the closest equivalent to a rational technology selection process for the rampaging herds of aristocratic nitwits who drive a lot of the Bay Area's technology economy. But I've believed for a long time that if you're in a position where you have to care what those people think, you've already lost whatever game you're playing. And sliding from Number One to Number Two in a high-stakes, big-money popularity contest is really not the same thing as withering away at all.

So I'm having a hard time seeing any serious merit to the fear of irrelevance which Mei's slide deck and Fischer's blog post both express. On the other hand, both the blog post and the slide deck (and presumably Mei's talk as well) advocate learning multiple languages, keeping your ear to the ground, and staying up to date on developments in other language communities. This has always been a core value of the Ruby community, and of course I absolutely agree with Mei and Fischer here. Ironically, the fact that this idea has to be explicitly stated is the only sign of Ruby's withering that I've actually seen.

It was the weirdest part of the reactions that I saw when I posted Rails Went Off The Rails back in February of 2012. Perhaps instead of "this has always been a core value of the Ruby community," I should say "this has historically been a core value of the Ruby community," and praise Mei and Fischer for bringing it back.