David Laribee coined a term which summarizes a movement in the .NET community - ALT.NET:
What does it mean to be 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 principles and knowledge that really matter. The best tools are those that embed the knowledge and encourage the principals (e.g. Resharper.)
When tools, practices, or methods become mainstream it’s time to get contrarian; time to look for new ways of doing things; time to shake it up. The minute Entity Framework surpasses NHibernate, I mean the very instant it empowers me to better express my intent, so long NHibernate. It’s been real, it’s been nice, but I’m on to the better thing.
Some folks jumped in with lists choices of non-Microsoft tools over Microsoft tools which would signify you were an ALT.NET developer. Ayende clarifies the whole thing in a way which makes a lot of sense:
[This] is focusing on tools and not on a mind set. The way I see it, this is much more about keeping your head open to new approach and ideas, regardless of where they come from. In short, I really like the ideas and concepts that Dave presents, I don't want the idea to turn into "A .NET developers that seeks to use non Microsoft technologies." I would much rather it be "A developer that seeks to find the best tools and practices, and judge them on merit." We as an industry has enough problems with the "We Are A Microsoft Shop, Do Not Write Non Microsoft Certified Code!" approach, we don't need it in the other direction. Prejudice can go both ways, after all, and reverse racism is just as unacceptable.
I think this is an important discussion, if only to clarify a misunderstood demographic. I've been describing the problem of "only what's in the box" developers. Many developers I've worked only feel comfortable with code that's been shipped by Microsoft, purchased from a vendor, or hand-written. Rather than talking about the negative case, I like looking at the term ALT.NET as Ayende has defined - a developer seeks the best tools and practices available.
Are you ALT.NET?