I want to comment a bit on The Problem of Open Source in the Microsoft World from Ayende. Please go read his post and add your voice somewhere. I actually do believe that Microsoft listens to us, we just have to start asking for the right things.
I strongly believe that a friendlier attitude from Microsoft towards OSS tools in .Net can only benefit us — and Microsoft as well I would think. Recently, one of the senior developers at my client asked my opinion in regards to .Net versus Java. That's not an interesting conversation in terms of pure technology anymore (.Net/Java versus Ruby/Python/LAMP is far more interesting). In terms of development community though, I think there is a vast gulf between Java and .Net, at least at the upper end. I openly admire the vibrant OSS community in Java (I'm downright jealous of the community around Rails) and the wealth of innovation that they have sparked. The .Net development community seems to either:
- Wait for Microsoft's new tools and use them without any critical evaluation. Are you sure that Enterprise Library is the best choice? Could it be better? Are there existing alternatives that are better? Could we write something much simpler than CAB and use that instead?
- Or port something from Java and now Ruby
I think the lack of innovation from the .Net community is extremely disappointing. We hurt ourselves By limiting .Net innovation to Redmond and Java leftovers. I'd really just like to see more of an attitude of "we can do it ourselves" rather than having tunnel vision on Redmond. And the old excuse that innovation is lacking because .Net is much newer than Java? It's been 5-6 years now. That excuse is tired.
Microsoft developer tools are primarily geared around RAD development (I've banned the "M" word from my blog, but you know that I'm thinking about "M's" here). Doing Domain Driven development with Agile practices might not even be possible or efficient without the OSS tools that have historically provided the gaps between Microsoft's tooling. Those tools have been, and continue to be, important. Microsoft *still* does not have a fullblown Inversion of Control tool, a released O/R mapper, a Continuous Integration tool, or a mock object library. All OSS tools that I depend on almost daily.
If nothing else, OSS tools, especially developer tools, can be driven by developer needs faster than Microsoft can possibly move — and Microsoft can't possibly anticipate every need.
By the way, my money is where my mouth is. I'm not as prolific as Ayende (nobody is), but my OSS resume is:
- StructureMap – Dependency Injection tool (first release in June 2004)
- StoryTeller – .Net tooling for FitNesse testing (shooting for the first alpha in January 2007)
I would definitely recommend being involved in an OSS project. My OSS work has positively contributed to my career path. I wouldn't say that it's brought me any particular fame, but it's been a great learning experience. I started StructureMap as a way to learn .Net when I was stuck in a non-coding architect role. Besides being useful in and of itself, it gave me a toolbench to try out TDD and design patterns that I've used on paying projects since.
Does anybody know where JetBrains stands in regard to a full .Net IDE ala IntelliJ? I'd concur with Ayende and the commenters that I think our best hope is JetBrains. I have this ridiculous vision of a bunch of developers with bad hair saying "help me JetBrains, you're my only hope."
I still dislike the GPL license by the way. We're using a GPL licensed tool in our code base that has a specific provision to allow you to redistribute the binary as is in your own product just like NAnt. Very early on I predicted that the company's inhouse lawyer would have a conniption over the license. I'm apparently psychic because my prediction unfolded exactly the way I said it would. I get the utopian ideal behind the GPL, but the benefits of being an OSS author are indirect. The specific gains are reputation and often a chance to learn from working on projects that are quite different or more challenging than your day job. The gains are primarily derived from somebody else using your OSS tool. By slapping the GPL on it you're effectively dooming the fruits of your labor to the dust bin (or academia).
P.S. — I partially blame lawyers for this because I know that part of MS's attitude is due to a fear of legal proceedings over intellectual property rights.