The Chicken or the Egg?

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 Projects
Linux 19731
OS Independent 19191
Microsoft 19117
MacOS 3225
BSD 3008
SunOS/Solaris 1785
Other OS 1010
PDA Systems 718
Other 648
BeOS 426
HP-UX 224
IRIX 211
AIX 167
OS/2 132
GNU Hurd 81
SCO 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.

Language Projects
C 12888
C++ 12887
Java 11364
PHP 8544
Perl 5365
Python 3034
Visual Basic 1754
JavaScript 1628
Delphi/Kylix 1402
Unix 1390
C# 1298
Assembly 1225
PL/SQL 938
Tcl 782
Objective C 489
ASP 469
Lisp 288
Ruby 286
Pascal 282
Object 208
Assembly 201
Cold Fusion 177

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?