Less Rambling Venting about Developing for .Net
- NDoc is dead, and that saddens me... this lead to my venting points 2 & 3
- Lack of developer community for .Net - the primary proof of this (for me) is the lack of open-source tools.
- Lack of developer community is directly tied to Microsoft's insistence to limit .Net to Windows.
(1) NDoc is Dead: NDoc died due to lack of development support. Too much work and too few developers contributing. Version 2.0 update to the framework included some significant changes. Generics aren't just something slapped on. They are the result of man-years of thinking, planning, and work. They also have nontrivial impact on something like NDoc. I'm not surprised one guy can't just bang out an new version of NDoc that adds support for all the new v2.0 features. Microsoft made things worse by announcing Sandcastle which removes much of the need for NDoc. Take a project that already has had a hard time finding support and announce a free compentitive prodoct from Microsoft and you can smell doom in the air.
(2) Lack of developer community for .Net: One of the things that I love about Java, is that there is some many great open-source tools, and an excellent culture of support has developed around sites that support those tools. Back in the olden days, when I had a IBM XT clone and a 1200 baud modem so I could log into the local BBS, there was a great collection of tools for MS-DOS. Between then and now, the Microsoft development community has become very business oriented. There are some great tools out there, but they are proprietary. Go on SourceForge and look for C# projects. It seems that Microsoft has created a culture that encourages people to create and sell their custom ActiveX grid-control. What is missing is the college and graduate students creating a cool new tool as part of their thesis. There are a few exceptions, but they are rare. Coming back to work on C# developement, the lack of tools (compared to Java) is palpable and irksome. Microsoft makes this worse by failing to leverage the community when extending VisualStudio. Does VisualStudio ship with NUnit support? No. NAnt? Nope. Show me one (non-commercial) external tool/standard that Microsoft didn't develope that has been integrated into VisualStudio. I can't think of any.
(3) Lack of developer community is directly tied to Microsoft's insistence to limit .Net to Windows: So why are people creating cool tools for Java, but not .Net? I can think of 2 reasons: (1) Java has been around much longer. (2) Cross platform support. #1 is obvious and there is nothing that can be done. #2 is where I think Microsoft is shooting itself in the foot. For a long time, Microsoft needed to leverage tie-in as much as possible to realistically create Gates' visions of a PC on every desktop. It was necessary to keep prices down and avoid fragmentation. That vision is accomplished, and now we are on to new things. Time to let tie-in be less of an issue. Multi-platform networks and cross-platform development are the normal now. Accept it and move on. Do you want C# to out-shine Java? Let your child have wings and be free. What is good for .Net is good for you. I'd be much more interested in using C# if I could use it on my Mac PowerBook. Sure there is Mono, but there are still issues with UI and most of the home project apps I play with have UI.
I'm not asking Microsoft to Open-Source .Net. I'm asking for a cross-platform CLR with enough libraries that I can write a real application and have some hope of running it on a Linux box and a Mac box. Given that and a decent, cros-platform C# IDE, and I think the community around .Net would improve dramatically. If Microsoft then showed a hint of interest in working with the community, rather than just producing it's own independent clone of every successful community tools, and the .Net community would explode.