Alex Payne writes online here.

See also the archive, books & talks.

An individual post follows.

Everyone Loves Language Wars

I had several posts in the queue, all of which seemed entirely too negative: there’s no good music right now, there’s no good housing in DC, etc. etc. Summer is for sunny, happy, inconsequential posts. So let’s talk about programming language wars.

This post by Greg Luck was picked by Ruby Insider as their Troll of the Month. It’s poorly written and paranoid but the technical content isn’t wrong, per se; I’ve seen worse trolls. Mr. Luck (great name, btw) thinks that the industry of training and documentation cropping up around Ruby and Rails is a conspiracy, that it’s an arbitrarily inflated hype machine. Sure sounds like the early days of Java, or any new language/platform. Hype is just how the game goes.

I think somebody once suggested that you should not believe it, the hype. In song, as I recall. Nice young man.

I’ve bounced between Ruby and Python for the last couple of years in both my professional and personal projects. I got frustrated with Rails before their 1.0 release and tried Django and web.py after that. A number of my issues with Rails have been addressed, so I’m back in that camp for my current project. It fits the job, and the important thing is catering to your clients’ needs, not your language-faith. What’s more, it’s where the cool stuff is happening, at least in the web application world. There’s mindshare. Big thinking.

The nice thing about Open Source is that you can head where the interesting development is going on without getting locked in. Stick to good design principles and you can rewrite just about anything when the time comes—and it will come. Development methodology is only getting easier and smarter. No matter how committed you are to your platform, your current approach is going to be wrong in a couple of years.

Interestingly, some of the Ruby/Rails luminaries are already looking at what’s coming next. Read Anarchaia or Projectionist and you’ll see a strong interest in principles, not languages. Good design, performance, flexibility, community, and a sense of humor will always get people to uproot and explore new territories. That has nothing to do with specific languages and everything to do with making the tools you use and the community you participate in as enjoyable as possible.

My advice: go where the smart people are in your discipline, enjoy the conversation while it lasts, build cool stuff, and move on when it’s not fun anymore. Ruby isn’t going to be the darling forever, and a new hype industry will crop up around whatever comes next. If you’re uncomfortable with that, you’re uncomfortable with something very fundamental in the business of software development.