Steve Klabnik posted he’s looking for a new job. The post mentions:

“… I’m not saying that Ruby is a minus, but I’m not saying it’s a plus, either.”

To that note, @brixen tweeted:

“Ruby is bleeding good people. :(

That got me thinking.. is that really a bad thing?

There is an old saying, I don’t know where it came from or where I first heard it, but it goes something like this:

“If you’re the smartest person in your company, leave.”

That could mean many things, but I take it to mean that once you’ve stopped learning in a consistent and meaningful way, it’s time to move on. If you’re not moving forward you are moving backward and there is no standing still.

Now, I don’t know Klabnik’s reasons for writing that line, but I could posit that he’s ready to move on to something else. And that is perfectly fine.

In fact, it’s better than fine. It’s what we should all try to do one day.

The first reason is obvious, like I said before: to extend yourself. While the idea of being a “grey-beard” who knows everything about some language may be romantic, it’s also sad because it means that you’re really limited. There is a huge opportunity cost that must be answered for every day you choose to stay where you are.

Sometimes it’s good, sometimes it’s not so good. But it’s up to you do decide. Every day you need to ask yourself, “why am I still doing this?” And, if you have too many days getting answers that no longer make you happy, it’s time to move on.

Even then, it may be sad, but is it actually a bad thing?

Baring a huge Zed Shaw-style blow up (which, I argue, was still a good thing), I would hope that people leave Ruby on good terms. If they do that they then become “ambassadors”, if you will, to the other parts of computer-dom that would otherwise never know them or their previous language.

Learning language X from a great developer, and then finding our they learned their skills through language Y would certainly make me want to also take a serious look at language Y, too.

There is a third thing, perhaps a little harder to defend, but one I believe in: there comes a time when the old guard needs to make room for newcomers. That doesn’t always mean through leaving a language, but that is one way.

When someone of a very high skill leaves, it means that someone will take their place. You could argue this new person may have done that anyway, but a vacancy is a very acute way of pulling people up. Nature abhors a vacuum, and so do programming language communities.

Klabnik may leave big shoes to be filled, but they are shoes that will be filled. And, if Steve has done any good work in the Ruby community, they will be filled by someone who will take his lead and be even better.