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 )

  • 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 )

  • Android: The Next Generation

    News - Google continues to invest in and improve their flagship mobile operating system, and the latest version, codenamed Android L, is no exception. New graphics, simple animations and improved flexibility are some of the features that were introduced at Google I/O 2014.

    ( Jul 13, 2014 )

  • Freezer: Putting object relational mapping (ORM) tools to the test

    Feature - Freezer is a code generator that constructs the persistence layer of a Java application: DAOs, DTOs, database tables and database documentation. This article compares the use of the DAOs generated by Freezer, with the use of an ORM tool, like for example Hibernate.

    ( Jul 03, 2014 )