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