Alex left a good comment in my post that responded to his original assertion that .Net coders code for money more so than they code for “the love”. His points have made me a bit curious. So I did some digging. First I looked at Sourceforge projects separated by operating system. Here is what you’ll find.
OS ProjectsLinux 19731OS Independent 19191Microsoft 19117MacOS 3225BSD 3008SunOS/Solaris 1785Other OS 1010PDA Systems 718Other 648BeOS 426HP-UX 224IRIX 211AIX 167OS/2 132GNU Hurd 81SCO 51
Most of the OS Independent projects are written in Java so you could probably split these between MS and Linux making it a virtual dead heat. It’s actually better than I imagined when I first thought to look, but much worse when you consider the Linux compared to Windows market share. If OSS was a reflection of end users or “for profit” software you’d imagine the Linux projects to be around the MacOS realm.
Next I wanted to look at the language breakdown.
NOTE: I removed a bunch of languages beneath this threshold. I wanted to leave it with only 1k and above, but I have found memories of an easy Cold Fusion class in college.
Clearly neither VB nor C# are very high on the count when compared to Java. I did expect C/C++ to rule since they have been around the longest and have the best free tool support. Java has almost three times the share on sourceforge. Again, I’m willing to bet a big difference here is in tool support. Microsoft tools are expensive and until recently there haven’t been very good alternatives to write VB/C#. So maybe it does come down to money. But rather than for a love of money versus a love of tech it may be that enterprises have been willing to shell out money for the smooth Microsoft integration with Visual Studio, but with the good developers go home and start a hobby they don’t want to invest the dough and people don’t generally mind the additional tinkering required when it’s a hobby.
Back to the original question that Alex was asking. Should MS have an Apache like foundation for .NET apps? It could be a chicken/egg sort of thing. Do you wait for the developers to create the opportunity or create the opportunity to help get developers to flock towards it? Is helping to establish a community leaning to far towards being the community? I’ve spent some time around several different OSS sites and I truly believe there is a TON of room for improvement around these community experiences given the right amount of polish and resources. What do you think?