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?

Comments (15)

  1. RichB says:

    I believe Microsoft should contribute to Apache. IBM do it – why not Microsoft? Now that Apache is taking on board .Net projects – it makes sense to get some great technology donated to Apache.

    Microsoft tried to do the "community" thing by starting gotdotnet, but that has failed badly – most of the projects are "here is how to read a file from disk"-type projects. And some of the bigger projects have moved away from gotdotnet to (eg rssbandit).

    It’s not enough for Microsoft to host and be in control of a community. They must contribute to something already in the community and out of control of Microsoft.

  2. Ferris Beuller says:

    Track this over time and plot a graph, should be automatable easily.

  3. Ferris Beuller says:

    Those numbers mean jack all without the rate and direction of change.

    What is the FASTEST, SLOWEST and non movers on project count for languages and platforms?

  4. AndrewSeven says:

    Remember the dinosaurs?

    The egg came first by a couple million years.

  5. Sam says:

    I think that Sourceforge is a bad example. By the very nature of it encouraging open source projects, I feel that a lot of windows programmers (myself included), don’t feel the need to publish their code online this way.

  6. jledgard says:

    RE: RichB. Saying gotdotnet failed is a hard one. With almost no marketing they still have thousands of new people signing up per week. I don’t believe the facilities they created are as good as the ones on sourceforge for large projects, but project hosting was not the key aim of gotdotnet. Clearly someone with some time could do better than even sf does.

    About MS not controlling the community. I agree completely. We should do a LOT more outreach outside of the sandboxes we have created for ourselves. One step at a time though.

  7. jledgard says:

    RE: F. I agree a trend line analysis would be better so you could see if C# was actually gaining on other languages. The time I spend on a post, however, was limited to just getting the snapshot. 🙂 I could be wrong with any of my conclusions. That is if I really came to any.

  8. AT says:

    Using filters on SF.NET (it allow to select proejcts based on multiple criterias)

    I’ve what:

    Stage…… Java C# Java/C# Ratio

    Planning… 3459 476 7,26

    Pre-Alpha.. 2302 292 7,88

    Alpha…… 2090 237 8,88

    Beta……. 2438 258 9,44

    Production. 1803 146 12,34

    Mature…… 122 13 9,38

    Inactive….. 93 8 11,62

    It looks like C# proejcts is still under development. So not everything lost, once C# will go to production this will possibly result in second round of development.