Breaking News: Java trounces .Net in OSS activity

Obviously, this isn’t breaking news.  I saw this set of figures from Ohloh this morning.  If you’re not familiar with it, Ohlog is a website that tracks information about Open Source development projects by scanning the major OSS sites like SourceForge.  According to them, in the last 5 years there were:

146,996,128 lines of code committed by 10,604 people to Java OSS projects.

22,800,806 lines of code committed by 1,817 people to C# OSS projects (The numbers for VB.Net trailed much rarer languages like Lua and Tcl)

Maybe you can’t take the numbers at face value because Java is so much older, but I still think the differences are striking.

Make of it what you will, but I think we have to say that the OSS activity is simply much richer in Java than .Net land.  I suppose you can argue with me that Microsoft actually does a better job of building tools and frameworks than the Java vendors and OSS just isn’t as important to us.  I think I’d still say that we don’t have as rich an ecosystem of innovation and choice as Java.  When you consider that most of our major OSS projects are ports or copies of Java or Ruby tools, we come off even worse than the numbers imply.  I guess my real point is that I think we (.Net community) would be better off if we (the developers who do not work in Redmond) were much more actively involved in creating the tools, frameworks, and techniques that we use to do development.

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Ray

    I’d not worry about it.
    Java is: 1) way way older; 2) crossplatform; 3) which actually comes from (1) has a huge legacy code base.

    Don’t forget also quite few .NET OSS projects are a ports from Java: nHibernate, nUnit, Spring .NET ect ect. Which actually means there is even less of unique .NET OSS projects.

  • mkuczara

    On more serious note – maybe .net community is behind Java folks, but you take a walk 4 years in the past – what have we got then and look what we have now. I thnik there is big difference, Spring, NHibernate, Log4Net , Nant, MBUnit to name a few. Of course, there is still room for improvement, but give it some time.

  • mkuczara

    If you had to use EJB 2.0 you’d write as many Open Source Frameworks as Java Camp did

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Scott,

    I think I’m a little bit more concerned over the 10,604 Java devs vs 1817 .Net devs. I don’t really think there’s that much difference in productivity or the amount of code it takes to do something. I do *like* .Net better.

    As somebody said above, this trend may not be quite as stark over the last year or so as .Net OSS development has gotten more active (and some high end Java guys are going to Ruby).

  • http://lazycoder.com Scott

    Really? Comparing LOC between Java and C#? Let’s at least compare apples to apples here.
    146,996,128 / 10,604 = 13862 LOC / Java dev
    22,800,806 / 1,817 = 12548 LOC/ C# dev

    As far as the ratios go, it’s about even. Pretty darn close. I bet the ratios for Ruby and Python are even lower just because you don’t have to write as many lines of Ruby/Python code to get the same result as you do in Java/C#. ๐Ÿ˜‰

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Phil,

    “are there ways that MS cas engage, encourage and facilitate the growth of this community?”

    I think that ship has already started to turn. I think MS is being quite a bit friendlier towards OSS tooling now. CodePlex helps. P&P helps by just mentioning that the stuff exists. Your team is helping by saying “DI pluggability” and bringing Hamilton into town.

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Phil,

    Hope your busy. We’re all counting on the MVC framework rocking. Not to put some pressure on you…

    Side note. One of my former employers (no names in the comments please) once hired for a big project by targeting all the devs from their favorite OSS tools. The legend is that they had 2 build systems and 4 different persistence frameworks in the codebase;-)

  • http://haacked.com/ Haacked

    Come on Jeremy. You know what the real problem is. As OSS developers on .NET become more prominent, MS hires them and keeps them busy, thus reducing the number of
    OSS “developers who do not work in Redmond”, to quote you. ๐Ÿ˜‰

    I say that facetiously of course. I’d point out that Java also has a big head start to .NET. Question is, are we closing the gap. A good person to get into this discussion with is Sam Ramji here at MS.

    I agree with you, it has to start and be led by the community itself, but are there ways that MS cas engage, encourage and facilitate the growth of this community?

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Derik,

    Not until summer. The coldest I’ve ever been in my entire life was standing outside in Chicago in January with that bitterly cold wind whipping off of Lake Michigan.

    I love downtown Chicago on the Miracle Mile though.

  • http://devlicio.us/ Derik Whittaker

    @Jeremy,

    You guys need to do a code camp up in the Chicago area. :)

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Derik,

    Talk to Palermo, he’s the CodeCamp guru for Austin. I’d love to meet you if you wanna come down.

  • http://devlicio.us/ Derik Whittaker

    @Jeremy,

    Hey, you looking for CodeCamp speakers, I would love to conduct a session….

    Derik

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Eber,

    Anders and the other guys on C# and VB.Net rock. No question whatsoever. I’d just like to see a bit more stuff happening outside of Redmond. I love the CodeCamp idea myself because it gets so many more .Net developers out of their shell and out of the open to say “this is the cool thing we’re doing.”

    And apropos of nothing, am I the only person that’s bothered by the semipro CodeCamp speakers? Shouldn’t CodeCamps be more participatory?

  • http://ebersys.blogspot.com/ Eber Irigoyen

    “I think we have to say that the OSS activity is simply much richer in Java than .Net land.”
    everyone knows that

    “I think I’d still say that we don’t have as rich an ecosystem of innovation and choice as Java.”
    cof* generics! cof*!! what?

    “I guess my real point is that I think we (.Net community) would be better off if we (the developers who do not work in Redmond) were much more actively involved in creating the tools, frameworks, and techniques that we use to do development.”

    it seems to me that exactly that has become Java’s first enemy, you have hundreds of “frameworks” to chose from for the simplest task, and on the end no one can agree to anything

  • http://weblogs.asp.net/fbouma FransBouma

    @anonymous, what do I have to do with this? :X

    Anyway.. I think ‘Java’ has an advantage in LoC here, because a lot of research software is written in Java, and often this software is donated to open source projects. IMHO it will be a long time before .NET reaches that spot.

    Another issue is I think that in Microsoft land, most people are too passive… they either work with what MS offers, or buy a third party lib, even if that doesn’t meet their requirements. In Java land, people had to write a lot of stuff themselves from the beginning, there’s no attitude towards ‘look for a 3rd party lib to buy’, there’s an attitude towards: ‘look for an OSS project to use or contribute if I don’t like it’.

    I don’t think that will ever change btw, because MS won’t allow that: as soon as that happens, MS loses control over the developers on their platform.

  • http://www.fauberdemo.com/rankings.html david fauber

    “I think I’ll join Sam Gentile, Frans Bouma, Sahil Malik, what seems to be Scott Bellware, Colin Ramsey, etc. and move on to something/someone that offers solutions rather than simply pointing out flaws.”

    You’ll be missed.

  • http://devlicio.us/ Derik Whittaker

    @Anonymous,

    You like to make these comments, yet you don’t have the stones to leave your real name? Pathetic

    Derik

  • Anonymous

    “I would defy you to find any single blogger who’s produced more real content over the last 3 years than I have:” blogging mostly on and about the same techniques and tools available in the Java community, just purpetuating the same-as-Java-only-after-the-fact that you say makes the .NET community “come off even worse”. content to the .NET community (that reads your blog) possibly; new, not much.

    If you’re not just complaining: what OSSed tools should the .NET community have that they don’t already?

    If its just a pissing contest where the .net community should have more oss LOC, that’s a waste of time. What if .NET languages mean writting less code to do the same thing, what if the .NET framework has more depth than Java so you don’t have to write more code, what if the .NET OSS projects use more of other OSS projects than the Java projects, etc.. Comparing LOC is just stupid. If you’re attempting a call-to-action, you’ve missed the point–encouregment through denigration doesn’t work.

    Sounds more like promoting NIH.

    If there’s a tool out there what works, use it. If it doesn’t do what you need, write your own. If that’s really what happened, and this is why there isn’t as much OSS LOC than Java, than you’re simply being argumentative and promoting the other-than-microsoft rhetoric.

    I think I’ll join Sam Gentile, Frans Bouma, Sahil Malik, what seems to be Scott Bellware, Colin Ramsey, etc. and move on to something/someone that offers solutions rather than simply pointing out flaws.

    BTW, thanks I have my coffee already.

  • http://www.fauberdemo.com/rankings.html david fauber

    I think the problem in the msft camp has something to do with the fact that there are a lot of cool projects someone working a 9-5er coding c# might want to write, but msft marketing is going to convince the decision makers that they have something which will do the same thing. Of course, it may end up being some kind of 80/20 solution, or have of things you don’t need, or SharePoint, I mean, both.

    “Sounds like you should get off your duff and start writing these open-source tools that you say everyone needs. Or maybe the fact that no one is writing them means no one needs/wants them.”
    Haha, this is inane on so many levels, “anonymous”.

  • http://www.ayende.com/Blog/ Ayende Rahien

    @Anonymous,
    I strongly suggest that you would pursue a more polite conversation or shut up.
    You want to discuss OSS supprt, feel free to do it, but under your own name, and without being insulting.

    @Derik,
    In Java some things that we take for granted are not there. Connection pooling is something that I had never had to deal with, but apparently there are a lot of connection pools being built in the Java land.
    That said, I don’t think that the Java guys has to write that much. Not by a long shot.

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Anonymous,

    Dude, go get your coffee.

    StructureMap predates ObjectBuilder, Castle, and the initial port of Spring.Net. That being said, I saw a post recently about a completely new DI framework that had a completely new take on DI using lamda expressions. 4 existing tools, including mine, that already work, but there were still new ideas that made an old problem easier to solve.

    “if you don’t like the environment, use your two feet;”

    Maybe, but why should I take what’s close to the coward’s way out? Why couldn’t we have a more vibrant community in .Net? This is *my* community too. It’s the mainstream and where the money is generally at. What can’t we collectively make for a better, or at least different, community?

    I’m not just complaining, I’ve been actively engaged in trying to make a difference. You can call me a complainer, but you can’t label me as a hypocrite. Frankly, I would defy you to find any single blogger who’s produced more real content over the last 3 years than I have:

    http://codebetter.com/blogs/jeremy.miller/archive/2006/08/07/Best-of-the-Shade-Tree-Developer-_2800_with-actual-links_21002900_.aspx
    http://codebetter.com/blogs/jeremy.miller/archive/2007/10/18/best-of-the-shade-tree-developer-part-ii.aspx

  • Anonymous

    Great, yet another DI framework, and yet another testing framework, and some other not-open source project. Great, so if everyone did what you’ve done we’d still be in the same situation: no more actively involved in creating the tools, frameworks and techniques that we use in development.

    Rather than think that because no one has done it there isn’t a prevalent need to have a particular tool, you assume the community is slacking off (not being active) or the typical alt.net spin trying to blame microsoft.

    Not to mention that you obviously didn’t perform and due diligence to validate these out-of-the-air numbers. Seems to me you’re just wasting your own time by complaining rather than being productive. Do eveyone a favor and follow the openspaces rhetoric that you and the (past and present) codebetter folks keep spouting, if you don’t like the environment, use your two feet; if you want something to happen, then do it; don’t waste your precious time complaining, move on to something that makes you happy.

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Chris,

    I’m not surprised, but CodePlex is a drop in the bucket compared to SourceForge.

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @All,

    It’s not that everybody needs to be running around and write their own big tools. Just being *open* to using these tools would make a huge difference. Writing a couple blog posts a year about an OSS tool would be huge when you consider how many bloggers there are.

    @Derik

    “I would be interested to see what the numbers are for the past 1-2 years. Shorten the time frame a little.”

    Me too. I bet it’s at least narrowed.

    @Ray,

    “However, I wondered if the metrics are the right ones for determining usefulness or productivity. Might it be that using .NET technologies, supported by good design, produces more compact code? This in turn would seem to make the same programmers more productive resulting in needing fewer of them.”

    Possibly, but Java and .Net are very, very similar. It’s only the C# 3.0/.Net 3.5 release that I see .Net starting to need less code.

    From my exposure to enterprise Java last year, you write roughly the same amount of Xml as Java

  • http://elegantcode.com Chris Brandsma

    After browsing their “Projects” list, I saw no CodePlex projects.

    Although, they did have Rhino Tools (Ayende’s code), so I would have thought that would have evened things considerably right there.

  • Ray

    I understand the need to be active in building the tools that work, and that we really need. I find the, “that most of our major OSS projects are ports or copies of Java or Ruby tools” comment particularly biting, mostly because it seems to be true.

    However, I wondered if the metrics are the right ones for determining usefulness or productivity. Might it be that using .NET technologies, supported by good design, produces more compact code? This in turn would seem to make the same programmers more productive resulting in needing fewer of them.

    Better metrics might be the number of projects coupled with the numbers of users of these projects. The number of projects seems easy to get, but it may also be a bad metric. The numbers of users is harder to get but if what you’re working on isn’t being used by anyone…I just started using StructureMap by the way.

  • http://devlicio.us/ Derik Whittaker

    I personally feel that the biggest reason for this is that the Java community has always had to write their own stuff because there was no real corp behind java (yea i know sun owns it, but they don’t do much with it).

    Where the .net community has tended to ‘drink the kool-aid’ of MS and just use what they put out. And if MS has not put it out, they just roll their own and move on.

    I would be interested to see what the numbers are for the past 1-2 years. Shorten the time frame a little.

    Derik

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Jay,

    Good points all. Anders & co are definitely able to move the language and CLR forward faster than the Java world. That still leaves a lot of other things that aren’t provided by the framework or aren’t provided in a universally useful manner.

    I don’t really care so much about the JSR/JCP, but I’d still like to see more innovation coming out of the .Net ranks. I would have liked more ability to scream about the direction that the Entity Framework has taken early on, but then again, I wasn’t paying attention until it was too late. The MVC framework will definitely be better for all of the community involvement in its formulation and shape.

  • Jay

    You say that your real point is that .Net developers would be better off if they were more involved in the direction of .Net, and, as evidence, that there is approximately seven times more public open-source activity in Java than in .Net.

    But the JSP, being just what you advocate, is stifling the evolution of Java; while Microsoft, which listens to its customers and builds its platform as it sees fit, is innovating the .Net platform at a rapid pace and is partly the driving force behind innovation in Java. Moreover, there is no reason given as to why the quantity of open-source activity in one sphere proves that the developers in that sphere are better off; and I think that the two measures should not be put into that kind of relationship.

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Tim B,

    You could easily be right. I was too lazy to go look if those numbers include CodePlex.

    I’ve no intention of leaving .Net, but I do wish we had a bit different community culture.

  • http://bigtunatim.wordpress.com/ Tim B

    LOL… beaten to the punch by Anonymous, except he wasn’t joking!

    IMO, anti-MS sentiment plays a significant role in those numbers.

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller
  • Anonymous

    Sounds like you should get off your duff and start writing these open-source tools that you say everyone needs. Or maybe the fact that no one is writing them means no one needs/wants them.