Does Open Source Mean Superior Software Quality?

Does Open Source Mean Superior Software Quality?

date:May 10, 2011

James Strachan, FuseSource's Technical Director and the man that believes he invented the programming language Groovy, took the stage at TheServerSide Java Symposium last March in Las Vegas to spend some time introducing FuseSource, while at the same time, discussing a variety of compelling reasons why Java developers should be contributing to, and working with, open source projects. 

comment on this article

Why open source rocks

In his session titled Why Open Source Rocks, James contends that given the number of eyeballs looking at the code that is contributed to an open source project, along with the motivation a contributor has of not making a fool out of themselves when publishing a piece of code that will be reviewed by  peers, that open source software will typically be of higher quality. (Watch the video or read the transcript below.)

But is this really a common and ubiquitous experience? 

James makes the assertion that this is the case for popular open source projects. Perhaps there's a rapidly sliding scale here that relates to open source software quality, where only the most popular projects are properly tested, while the rest suffer inexorably? 

The Gosling Experience...

Compare Strachan's assertion with James Gosling's experience, who says that those who have offered up fixes to bugs in the Java platform often fail miserably.

"You know, when it comes to open source contributions, our history with contributions over the years have been kinda snarky. We'd get lots of people sending code and fixes. But on average, we'd get a submission that fixed the bug but it caused three or four more. And it probably didn't fix the bug for everybody. It probably only fixed the bug for their one case. And trying to get people in the community to actually think about the whole code base and not just their particular issue today. Doing one line of change means an immense amount of testing.

"Most open source projects are way too casual for that...It's easy to get people to do the fun stuff. It's hard to get people to do the hard stuff."

-James Gosling, BasementCoders Interview at JavaOne

And that really is the point - that while it's easy to get people to write code that follows the happy path, it's difficult to get people to write the unit tests and deal with the entirety of a codebase, especially when the project is large. 

Is James Strachan right?

There are many benefits to using open source software, but asserting that open source code is more robust and more heavily tested than software that comes with a price tag might be a bit of a stretch.

comment on this article

 


James Strachan's Blog

James Gosling's Blog

BasementCoders

FuseSource

TheServerSide Java Symposium


Read the full transcript from this video below: 
Does Open Source Mean Superior Software Quality?

James Strachan: Typically, the code quality is pretty high. On popular open source projects, you get lots of people looking at the code and reviewing the code, looking for bugs, looking for ways to improve it. I often find with open source, because your contributions are public and it's online and archived forever, you tend to polish your code a little bit more before you submit it.

Generally, the code is, generally, really high quality, really well tested, so on and so forth. In general, I'd always recommend, look at the open source software version of any enterprise commercial software first.

More on Web application framework and Java middleware

  • canderson

    Apache Camel news from JavaOne 2011

    VIDEO - Apache Camel, the open source integration framework, is enjoying an upward swing in popularity as the community prepares for the upcoming release of Camel 3.

    ( Oct 12, 2011 )

  • HTML5 now rules the desktop, but shortcomings make it a hard sell for mobile

    Feature - HTML5 is changing the game for both mobile and desktop developers, but that doesn't mean HTML5 is a panacea. Performance problems, a lack of tooling and missing features are causing a roadblock for some organizations, especially in the mobile space. Should you go with HTML5, or is a hybrid or native approach right for you?

    ( Aug 18, 2014 )

  • Integrating Ajax into your Facelets pages: Death to JSF's request-response cycle

    Tutorial - If you're doing Facelets development, this might be the most important tutorial you will ever read. It will explain to you how to throw out that annoying request-response cycle, and explain how to integrate Ajax based JSF components with a dynamically re-rendering Facelets page snippet.

    ( Jul 20, 2014 )

  • Template based web design with JSF Facelets: ui:insert versus ui:include

    Tutorial - When creating a web page template with JSF, a developer needs to know the difference between ui:insert and ui:include. They're actually quite different, but the similar sounding names can create confusion. Here's a great example of when to use ui:insert and how to properly use ui:include.

    ( Jul 20, 2014 )

  • Creating pages based on a JSF template: Using the Facelets ui:define tag

    Tutorial - What do you do once you've set up a handsome page template using the Facelets functions that come with JSF 2.x? Well, you start creating new pages, meshing those ui:define tags in with ui:composition and ui:insert. It's easier than it sounds, trust me.

    ( Jul 20, 2014 )

  • An introduction to template building with Facelets, CSS, HTML and JSF 2.2

    Tutorial - Facelets is a great technology for creating templates for websites and then adding dynamic functionality. In this tutorial, we will introduce the idea of creating a template page with CSS, HTML, JavaScript and JavaServer Faces 2.2 (JSF).

    ( Jul 19, 2014 )