ALT.NET Thinking From The Outside
Dave did a great job explaining the core principles of ALT.NET which are:
- Use the right tool for the right job
- Look outside the .NET community for new and different ways of solving problems
- Get involved with the community through teaching and teaching
- A good emphasis on agile methodologies
- Design patterns and principles
But, how do we convey that message to the development community as a whole. That was a part of the conversation that was interesting. And to me, I think we should have that "street kit" which includes such bare essentials as a manifesto (that we'll probably get to in Seattle), frameworks, design patterns, ways of spreading the message, etc.
Christopher Bennage had a good wrapup of the show as well here. I'd tend to agree that ALT.NET isn't about convincing, it's about conversing, having that conversation about what pains them and working through on a solution. It's about spreading the community. But, a direct command to learn Ruby, meh... I think Scala has a few more things to offer right now which is why I'm chomping at the bit to get to more of it.
A post by Leon on community though caught my eye recently. What he says is pretty accurate. I tend to think that what ALT.NET is preaching is what many communities such as the Ruby on Rails and Java communities have been doing for years with regards to design patterns, TDD and so on. A lot of the innovation such as TDD frameworks, design patterns and such just hasn't come from the .NET community. Many people wait on Microsoft to provide these things such as TDD frameworks (MSTest), Logging (Enterprise Library), O/RM (Entity Framework) and won't pay attention to the OSS world which I find an utter shame. Instead, what I'd like people to do is take those frameworks and look what's available from the community as a whole and compare them, much as I have with Unity and some other IoC containers. Yes, many people worry about licensing issues and that's something for your legal team to work out.
But, to his point, I'm glad he's learned Ruby on Rails and is happy. In fact, I think it's great that he is expanding his horizons outside of C# which I think most developers ought to know a few languages and not just C#, VB.NET or Java. For example, this past year I spent time learning Ruby and F#. I plan on taking up Scala soon as well and maybe a couple of other languages. In the past I was a Java, PHP and C++ programmer, so I've run the gamut. You can take some of these practices back to your other languages and learn from the successes and the failures of each community. It only makes you a better developer over time. I think many of the innovations that happen in the .NET space should come from the outside, and not just from Microsoft.
Do I think it's having an effect? Absolutely! If you look at such frameworks as Unity, there is a lot of feedback being provided, the ASP.NET MVC framework, same way. This willingness on both sides to engage is a wonderful thing and maybe to the point where "ALT" isn't the alternative anymore and instead the de facto standard.