CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Jeremy D. Miller -- The Shade Tree Developer

Under the hood and working with .Net, TDD, Software Design, and Agile Stuff

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.




Comments

Tim B said:

LOL... beaten to the punch by Anonymous, except he wasn't joking!

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

# January 16, 2008 10:43 AM

Jeremy D. Miller said:

@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.

# January 16, 2008 10:49 AM

Jay said:

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.

# January 16, 2008 10:51 AM

Jeremy D. Miller said:

@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.

# January 16, 2008 10:57 AM

Derik Whittaker said:

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

# January 16, 2008 11:21 AM

Ray said:

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.

# January 16, 2008 11:22 AM

Chris Brandsma said:

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.

# January 16, 2008 11:53 AM

Jeremy D. Miller said:

@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

# January 16, 2008 12:01 PM

Jeremy D. Miller said:

@Chris,

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

# January 16, 2008 12:02 PM

Today’s News » Breaking News: Java trounces .Net in OSS activity said:

Pingback from  Today’s News » Breaking News: Java trounces .Net in OSS activity

# January 16, 2008 12:07 PM

Anonymous said:

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.

# January 16, 2008 12:20 PM

Jeremy D. Miller said:

@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:

codebetter.com/.../Best-of-the-Shade-Tree-Developer-_2800_with-actual-links_21002900_.aspx

codebetter.com/.../best-of-the-shade-tree-developer-part-ii.aspx

# January 16, 2008 12:37 PM

Ayende Rahien said:

@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.

# January 16, 2008 12:49 PM

david fauber said:

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".

# January 16, 2008 1:00 PM

Anonymous said:

"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.

# January 16, 2008 1:29 PM

Derik Whittaker said:

@Anonymous,

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

Derik

# January 16, 2008 1:46 PM

david fauber said:

"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.

# January 16, 2008 1:54 PM

FransBouma said:

@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.

# January 16, 2008 3:30 PM

Eber Irigoyen said:

"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

# January 16, 2008 3:31 PM

Jeremy D. Miller said:

@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?

# January 16, 2008 3:35 PM

Derik Whittaker said:

@Jeremy,

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

Derik

# January 16, 2008 3:55 PM

Jeremy D. Miller said:

@Derik,

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

# January 16, 2008 4:03 PM

Derik Whittaker said:

@Jeremy,

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

# January 16, 2008 4:13 PM

Jeremy D. Miller said:

@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.

# January 16, 2008 4:17 PM

Haacked said:

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?

# January 16, 2008 4:46 PM

Jeremy D. Miller said:

@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;-)

# January 16, 2008 4:50 PM

Jeremy D. Miller said:

@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.

# January 16, 2008 4:51 PM

Scott said:

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#. ;)

# January 16, 2008 6:45 PM

Jeremy D. Miller said:

@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).

# January 16, 2008 7:47 PM

mkuczara said:

<Sarcasm on> If you had to use EJB 2.0 you'd write as many Open Source Frameworks as Java Camp did</sarcasm on>

# January 20, 2008 5:39 AM

mkuczara said:

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.

# January 20, 2008 5:48 AM

Ray said:

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.

# February 15, 2008 4:02 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Jeremy D. Miller

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 previously worked as a systems architect building mission critical supply chain software for a Fortune 100 company and learned agile development practices as a .Net consultant at ThoughtWorks, one of the pioneers of agile development. Jeremy is the author of the open source StructureMap (http://structuremap.sourceforge.net) tool for Dependency Injection with .Net and the forthcoming StoryTeller (http://storyteller.tigris.org) tool for supercharged FIT testing in .Net. Jeremy's thoughts on just about everything software related can be found on his weblog "The Shade Tree Developer" at http://codebetter.com/blogs/jeremy.miller, part of the popular CodeBetter site. Jeremy is a Microsoft MVP for C#. Check out Devlicio.us!

This Blog

Syndication

News

All opinions expressed here constitute my (Jeremy D. Miller's) personal opinion, and do not necessarily represent the opinion of any other organization or person, including (but not limited to) my fellow employees, my employer, its clients or their agents.

About Me

"Best Of" Compendium

StructureMap (Dependency Injection for .Net)

StoryTeller (Supercharged Fit)

Build your own Cab

TestDriven

MVP