Thursday, October 3, 2013

Good code never dies

There's an interesting article on GCN from Micheal Daconta. Daconta argues that "Good code never dies." Rather, and to paraphrase Marc Andreessen, software will "eat the world." By this, Daconta says that good source code on a robust, well-supported platform has a long shelf life, decades or more.

From the article, Daconta offers three reasons that good software will continue to proliferate:

Good source code has longevity.
For example, the Java Platform was released by Sun Microsystems in 1995 and is still growing strong and evolving today.
The power of open-source software.
Open source software, where the source code is available to the public for reuse, including modification, has been a global boon for innovation and improving the overall state of technological progress.
Source code maturity should be the gold standard.
The key mark of good software is that it fulfills its function, over time, robustly and reliably. Good source code is mature source code.
Daconta's measures for source code maturity are: It is being used in a production environment; It has aged in that environment and therefore has been executed by end-users; It has been tested in terms of coverage and corner cases; and It has been tested via automated regression tests. The most mature code will have fulfilled all of the above and run flawlessly under those constraints for the longest time.

How mature is your code?

Tuesday, October 1, 2013

Trust in open source software

The Guardian recently ran an interview with Microsoft's ex-Chief Privacy Officer, Caspar Bowden, where he discusses his shaken faith in Microsoft after NSA spying allegations. In the interview, the article mentions Bowden's use of open source software. I wish the article had expanded on this, as it addresses a major benefit of open source software. From the article:
Caspar Bowden, who between 2002 and 2011 was in charge of the privacy policy for 40 countries in which Microsoft operated – but not the US – told a conference in Lausanne, Switzerland, that he was unaware of the Prism data-sharing program when he worked at the company. 
"I don't trust Microsoft now," he said, adding that he only uses open source software where he can examine the underlying code. He also said he has not carried a mobile phone for two years. 
In June the Guardian revealed that an NSA program called Prism could demand data from a number of technology companies at will using court orders that were never rejected.

And that's all the article says about open source software.

According to Richard Stallman of the Free Software Foundation, “free software” means software that respects users' freedom and community. Roughly, the users have the freedom to run, copy, distribute, study, change and improve the software. With these freedoms, the users (both individually and collectively) control the program and what it does for them. Thus, “free software” is a matter of liberty, not price. According to Stallman, “free software” means the program's users have these four essential freedoms:

  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

The first part of freedom 1 (to study how the program works) is likely at the core of Bowden's switch to open source software. To be truly free software, users need to be able to examine to source code to see what the program does, or is trying to do. This benefits everyone, even if you are not a developer or someone who understands how programs work. The opportunity exists for user-developers to study the source code. This makes it increasingly difficult for bad behavior to go unnoticed, for an increasing number of people examining the source code. For very popular open source software projects, it's virtually impossible for "backdoors" and other surveillance behaviors to exist in open source software projects.

By using open source software, we are all safe. Open source software is the rising tide that floats all boats.