Microsoft developers ponder the ALT.NET credo
by John Osborn
David Laribee, who blogs frequently on .NET topics, provoked a wide ranging conversation among his peers with his April proposal to put a name to what he and others see as an emerging ethos among .NET developers: ALT.NET (a name that may stir other memories among former usenet denizens). It's not the tool that's important, he writes, it's the solution the tool makes possible, and the ease with which it can be maintained and extended. Here's his credo:
"What does it mean to be ALT.NET? In short it means:
- 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 (e.g. Resharper.) "
O'Reilly tried to capture some of the excitement of this movement and the growing array of tools available to Microsoft developers (some from Microsoft itself) in our recently published Windows Developer Power Tools by Jim Holmes and James Avery. But blogger Ayend Rahien warns that ALT.NET should not be construed as an idea that seeks to pit developers against Microsoft:
"The way I see it, this is much more about keeping your head open to new approach[es] and ideas, regardless of where they come from."
After two days at RailsConf where he got to see first-hand the passion of Ruby on Rails developers, .NET blogger Scott Hanselman wondered aloud in his blog Is Microsoft Losing the Alpha Geeks?, "Why does this need 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."
In other words, Microsoft should not only encourage the development of alternative tools, but should actively help bring frameworks like Rails to .NET to give those who want to build certain kinds of applications on the .NET platforms the same kinds of experience they can get elsewhere. In fact, he says, Microsoft should spin off an organization specifically dedicated to bringing Ruby and Ruby on Rails to the .NET platform, as Mozilla is for Firefox, and Microsoft should contribute developers to the projects well.
Why? Because, he writes:
"...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."
Just because MS hasn't officialy started porting Rails to .NET doesn't mean they're against the idea, or even that they're indifferent. They are actively working on improving dynamic language support in .NET and it makes sense for them to concentrate on that first, then I'm sure Ruby support will be one of their top priorities.
I couldn't agree more, and the presentations by project "Jasper" (dynamic data components) and "Astoria" (data services) teams show that Microsoft is already at work looking for ways to bring the Rails experience to the MSDN community.
|"It's the principals and knowledge": you mean "principles".|
Why would you want to use a framework with so many performance problems.
|Jeffrey Palermo, Microsoft MVP
I share some of the same passions of David, Ayende, and Scott, but I see it more as responsible management. Developers are stepping up and filling the gaps when they can, but it comes down to quality engineering. Do you hire developers and encourage them to sling code and get it done quickly (only to find that you have a growing liability in your system), or do you ensure that your people are using the best practices and tools in order to maximize your investment in your custom system?