Is Microsoft losing the Alpha Geeks?
I'm here at RailsConf in Portland (where I live, so that was nice, eh). As with all conferences, in my experience, the real "conferencing" happens outside the sessions. I stopped by the ThoughtWorks booth and started chatting with a number of folks.
I've been increasingly concerned with the "Web Developer Stack" that we're (the collective We) using. I started a conversation in the ThoughtWorks booth (because they had free granola bars) where I expressed this concern, and it turned into quite a large and very spirited conversation between the ThoughWorks crowd, DHH, Martin Fowler, myself, and a pretty decent-sized crowd egging it on. It was multi-faceted chat and covered a lot of area. I haven't had so much fun at a conference in a while.
The next day, Chris Sells (unintentionally) got a crowd going that also included the ThoughtWorkers, and we talked about what Alpha Geeks want. I asked if there was a coming diaspora of the Alpha Geek towards developer tools and developer experiences that feed their passions, perhaps more than tools and experiences from Microsoft and Sun. At this conference, the general feeling was that a migration of Alpha Geeks had already started. Just as Alpha Geeks forced to develop using Waterfall migrated to more agile shops, these folks feel the same kind of migration is happening around Web Development.
I propose that newer (somtimes younger) programmers may have less "tolerance" for development pain or frustration present in existing stacks just as a frog doesn't like being thrown into a hot pot. Perhaps we older frogs are starting to notice some heat and are considering other, cooler pots to spend time in.
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 way that avoids repetition. The code is DRY (Don't Repeat Yourself.)
In the blogosphere, David Laribee proposed a term I've heard bandied about in the last few years - ALT.NET, to describe developers like this:
Why does this have to be ALT.NET? Why is this alternative? Seems that this should be mainstream and baked in by the tools and "dogma" that comes down from on high. Microsoft needs to make ALT.NET attitudes Mainstream.NET attitudes, through leadership, openness, and a lot more prescriptive guidance.
What does it mean to be ALT.NET? In short it signifies:
- You’re the type of developer who uses what works while keeping an eye out for a better way.
- You reach outside the mainstream to adopt the best of any community: Open Source, Agile, Java, Ruby, etc.
- You’re not content with the status quo. Things can always be better expressed, more elegant and simple, more mutable, higher quality, etc.
- You know tools are great, but they only take you so far. It’s the principals and knowledge that really matter. The best tools are those that embed the knowledge and encourage the principals [sic] (e.g. Resharper.)
Rails appears to be very prescriptive. It says, by its very nature, "do it this way," but still allows developers to do creative things and extend the framework in ways not previously thought of by DHH.
It's important to remember, I think, that Rails is a Web Application Development Framework that enables one to make Web Applications that talk to Databases really fast. It's not the end-all-be-all development stack, and it's better to compare Rails to ASP.NET than it is to compare Rails to .NET proper.
That said, there's a sense of striving for true beauty, beauty in tests, beauty in expression of code, in markup, that .NET developers should drink in.
I'm an Alpha Geek, and you likely are too. I'd love to have the Ruby on Rails developer experience, the gems, the libraries, as well as the ability to bring in .NET libraries, and run the whole thing on IIS and SQL2k5. I'm not the only one who thinks this way. Sun knows it, and JRuby will (is) bringing "pure" Ruby to the Java-based datacenter.
The collective group in the discussion at RailsConf seemed to agree that Microsoft should make not just the DLR source available, but actually create a non-profit organization, ala Mozilla, and transfer the developers over to that company. They should allow commits to the code from the outside, which should help get around some of the vagaries of the GPL/LGPL licensed Ruby Test Suites. "IronRuby" should be collectively owned by the community.
Why? Because as the Wu Tang Clan said, "Protect Ya Neck." This isn't about Microsoft making money on developer tools, but rather about the platform, where the money is made. An open CLR-based implementation of Ruby on Rails would be a great way to introduce Rails into the Windows-based Enterprise, and would encourage more Alpha Geeks to code on Windows.