By Alexander Hay.
What is the best open-source software? This is a question I decided to answer, and so began a long and no doubt eventful journey of discovery. One of my first destinations was at an open-source break out session, which took place last month at the Collaborations Workshop 2013. Cue much debate.
It's not possible (and probably not helpful) to decide on the best software overall, so instead I have focussed on open-source software that is exemplary in certain areas. Here follows the first three examples of this software and why we chose them. In future posts, I will work through the other examples on our list.
At first glance, Linux seems almost too obvious. With over 65 million users worldwide, and an ever growing reputation for being effective and free. Less obvious is that the Linux systems are in effect GNU-based, built around the Linux kernel, but using the GNU OS as the main interface since the latter’s inception in 1983. Key to its success has been the ability for users to fiddle about with its code to their heart’s content care of the code’s GNU General Public License.
What the discussion at CW13 focussed on, however, is that Linux is a great example of why it is important to release frequently. Why is this useful? Since Linux is constantly updated, it allows users to keep up with the latest developments in its code. Likewise, any bugs are identified and corrected in time for the next release. Put simply, if you want a better edition of Linux, you don’t need to wait long.
The second package that received much praise was dynamic programming language, Julia. This lets users process mathematical data at a high level of performance and with a scalability that makes it applicable to most research projects. It was created by developers who, in their own words, were greedy for a system that let them process data without the innate limitations of specialist languages such as Matlab and Python.
So far, so good. Yet what makes Julia stand out, apart from having a girl’s name, is that its developers are very good at listening to their community. Its official mailing list lets users ask questions and discuss how best to use Julia. It also has a group dedicated to Julia development and involves users fully in this process. It uses online project hosting service GitHub to keep track of user modifications and it also actively encourages online communities to discuss where the project should go next. This focus on community has paid off: in the first seven months of the project, Julia attracted 550 mailing list subscribers, 1500 GitHub followers, 190 forks, and more than 50 total contributors.
The final example may surprise you. There is some debate about the openness of Android, but it uses Linux at its core, and there is an active, prolific community of programmers who create variant open-source versions of the code.
Of most interest for us is Android’s use of Stack Overflow. This is a collaboratively edited site that allows users to report problems and post answers. While the site is aimed at programming in general, Google has embraced Stack Overflow and uses it as the preferred channel to get newbie questions to android answered.
Naturally, this may lead to accusations that Google is simply getting issue resolution on the cheap and exploiting the hard work of others. But here at the Institute, we're all in favour of making use of what's already there. Is Google trying to have its cake (or indeed its Ice Cream Sandwich) and eat it? You will no doubt wish to discuss in the comments section below.