Scott Hanselman writes a thought provoking post that asks the question, Is Microsoft Losing the Alpha Geeks? An interesting question, but troublesome to make sense of, let alone answer.

First of all, how do you define “Alpha Geeks”? Who are they?Paul Graham would lead you to believe that alpha geeks are the influencers who use Macs and lots of parenthesis to write code. By that definition, the alpha geeks were never there or left a long time ago.

But I don’t think this is a fair definition of alpha geeks. Certainly there are still alpha geeks who love writing code for the Microsoft platform. Someone like Jeff Richter has to be considered an alpha geek, no?

So who are we talking about when we use the term Alpha Geek? Perhaps the definition of an ALT.NET developer proposed by David Laribee fits:

  1. You’re the type of developer who uses what works while keeping an eye out for a better way.
  2. You reach outside the mainstream to adopt the best of any community: Open Source, Agile, Java, Ruby, etc.
  3. You’re not content with the status quo. Things can always be better expressed, more elegant and simple, more mutable, higher quality, etc.
  4. You know tools are great, but they only take you so far. It’s the principles (sic) and knowledge that really matter. The best tools are those that embed the knowledge and encourage the principals (e.g. Resharper.)

Remove the .NET specifics and we’re left with ALT. Is the Alpha Geek the ALT developer?Getting warmer.

So who is Scott talking about? Let’s look at his post for some clues:

The one thing I learned about Rails and Rails/Ruby folks at this conferences is that they are enthusiastic and passionate. Not just because many are young (I suspect the mean age to be about 26 at this conference) but because they feel that Ruby and Rails expresses their intent in a clean and aesthetically pleasing why that avoids repetition. The code is DRY (Don’t Repeat Yourself.)

Ah! Some more clues! As expected, this discussion is really focused on web development. This is interesting because I would think that software developers such as Linus Torvalds, John Carmack, etc… would be considered Alpha Geeks, and they certainly are not building web applications.

But when you think about it, games and operating system kernels make up a very small percentage of all software being written today. In terms of public interest and buzz, building software for the web appears to be the only software development that really matters.

Alright then, with the understanding that we are not talking about 3-D gaming developers (you guys and girls do matter much to me no matter what anyone says. Thank you for Oblivion!) let’s get back to the original question. Are developers leaving Microsoft in droves for Ruby on Rails?

It’s hard to say. Show me the data. Certainly, Rails has a huge amount of buzz and a passionate fan base, which can create the impression that developers are heading over there in droves. But passion doesn’t account for statistics.

However, the gain in mindshare of the Ruby on Rails way of thinking cannot be dismissed or discounted. It’s why we’re reading about ALT.NET more and more in the first place. It’s why projects like Castle MonoRail and Subsonic have sprung up and gained many admirers.

Not to mention how recent blunders by Microsoft have disenfranchised many developers, it’s no wonder Scott and others are asking this question.

I think, the truth is somewhere in the middle. It’s not so much that alpha geeks are all leaving Microsoft in droves. But I do believe that many more alpha geeks are experimenting with other platforms such as Ruby on Rails.

It’s like the technological equivalent of the 7-year itch. You’ve been with her (Microsoft) for so long and things have been good for so much of that time that you are quite comfortable. But lately, the love just hasn’t been there. She’s constantly nagging you (Confirm or Deny) and it is more and more difficult to get anything accomplished when you’re together. To leave fills you with uncertainty, doubt, and pain. But, what if you could just have a little something something on the side? That wouldn’t be so bad, would it?

Of course where this analogy breaks down is in terms of technology, having a couple of other platforms and languages on the side is absolutely good for you. I wouldn’t recommend trying that with a human relationship.

So in my answer to Scott’s question, I think it may well be that many developers completely leave. But I imagine that many others will take the path that Rob Conery, the creator of Subsonic wrote about. He’s choosing to help try and change the developer culture around Microsoft from the inside, rather than jumping ship completely. Like a good ALT.NET developer, he sees some value in the Microsoft platform and tries to combine what is good from it, along with what is good from other platforms, rather than just giving in to the self-perpetuating cycle of successful programming languages.

One thing that writing .NET code still has for it is that it pays well and there are plenty of jobs doing it. To that end, Microsoft will still retain alpha geeks for a good while. It’s hard to leave the golden goose.