Why I'm Not Supporting the Open Informatics Petition

I am an advocate for open source and have been so since at least 1996. I have released several packages under open source licenses, including new-style BSD and LGPL, and even placed code into the public domain. I have used and helped in the development of many other open source software projects. I am secretary of the Open Bioinformatics
Foundation, a nonprofit organization that helps support the 'Bio*'
projects. (These are open source projects for bioinformatics and
related fields; they include Biopython, Bioperl, BioJava, BioCORBA,
and Biodas.) I have even started my own company partially so I can be free to release source code as I see fit.

I like helping people. I like writing software. I like the sense of
discovery and creativity in science. So I enjoy writing usable
software that lets researchers focus on doing new science. I do not
like it when people are forced to waste time and effort worrying about
the niggling details of file conversions and command-line options and
database APIs, nor do I like it when they rewrite code others have done hundreds of times before.

I see open source software as a way that I can help others and reduce that waste. A couple of hours after writing this, I will contribute a new set of modules to the Biopython project, and shortly after that people around the world will start using it as part of their research and work.

Yet I also believe non-open source software can achieve those goals. I
have a few ideas for non-open source projects. By restricting
redistribution rights my company can receive additional revenue and
spend it on a more user-centered design, additional testing, better
documentation, and other tasks that help people do science. We will
even spend it on developing and promoting open source software.

I am against the Open Informatics petition. Paraphrasing somewhat, if put into practice, the petition would require that publicly funded
researchers publish any source code under an open source or free
software license.

I am against the petition because this requirement will hinder the
development of science. When I was in an academic lab we had access
to many packages either "free for academic and nonprofit use" or at
a relatively low cost. It was a structural biology lab, so the packages included CHARMM, XPLOR, and DSSP. Other fields have similarly
licensed software.

These packages are distributed with source code but are not open
source because there are restrictions on redistributing the code. We
had access to the code and rights to modify it, which meant we could
inspect the code for bugs, learn from it, and even try out new ideas.

Suppose the petition is in place and I want to experiment with a
modification to the DSSP algorithm. (DSSP was developed at EMBL in
Europe so changes in the policies of the funding source would not
affect its license status.) The easiest way to do that is to get the
DSSP source code
and make the needed changes. The new code almost certainly contains
parts of the old code, so under the DSSP license it cannot be
redistributed. This means I cannot release the software under an open
source license, and so I cannot do this research under a publicly
funded grant. Either I find a private grant, rewrite DSSP completely, or simply
not do that science. In any case, it hinders my research.

Whole labs are based on modified versions of non-open source
software, originating perhaps from other labs or even commercial
organizations. Some of the software is in excess of a million lines
of code that evolved over decades of work. They cannot redistribute
the software, but they are doing good science. Why should they be
forced to completely revamp their research? Does it really help the
public to have people spend another decade rewriting existing software
solely so it can be released with an open source license?

The inability to redistribute modified software isn't solely a problem
with non-open source software. It even happens when combining open
source packages. Two open source packages may be incompatible,
meaning their licensing requirements are such that no software can be
distributed which is derived from a combination of the two.

This is not a theoretical problem. I usually write software for the
Python programming language. For a while, Python was distributed
under an open source license that was incompatible with the General
Public License (GPL) encouraged by the Free Software Foundation. Or rather, the lawyers behind Python thought they were compatible, but the people behind the Free Software Foundation said they weren't. So, many Linux distributions, which often require GPL compatibility, refused to include the newer version. Were I doing work based on that version of Python and GPL'ed software, I would not (according to the Free Software Foundation) have the legal right to distribute the changes. Luckily, the licensing issue has since been resolved. But were I doing publicly funded work this petition would either have denied me the freedom to upgrade my Python installation, or the ability to do my research.

Do you think all code generated by publicly funded research should be licensed as open source?

I am against the Open Informatics petition because the originators do not fully
understand what open source means. Open source licenses rarely require that local changes be distributed. Open source licenses do
not set a limit on the fees charged. Open source licenses set no
restriction on when, how, or where the source is distributed (with
minor exceptions). As an open source publisher I am free to release
my source code only once a year, at a charge of $1 million paid at
least two months in advance, and you have to accept it on paper tape
while we are both standing under the Eiffel Tower. (I'll cover my own
travel arrangements if you take me up on this.) If I am the original
copyright holder I'm even allowed to obfuscate the code by removing
comments, using nonsense variable names, and other tricks.

But the originators want the source code available for "verifiable,
peer-reviewed research." If the source isn't released, which is
allowed under open source licenses, then this doesn't happen. If it
is absurdly expensive, again, allowed under open source licenses, then
this doesn't happen. The petition really argues for mandatory and
low-cost publishing of software through easily accessible channels, all distributed under an open source license.

Jason and Harry argue that these additional requirements fall
naturally from what they see as the philosophical underpinnings of the
petition:

"If the public pays for the research, it should have access to the results of that research."

I cannot disagree with that statement, because it is very vague.
"Access" could mean that I, as a taxpayer, have the right to call up
any publicly funded researcher and ask questions. Nor do I see
how that statement necessarily implies that software be published as
open source. Indeed, the U.S. Constitution seems to disagree with
their conclusion:

"To promote the Progress of Science and useful Arts, by securing
for limited Times to Authors and Inventors the exclusive Right to
their respective Writings and Discoveries;"

- Article I, Section 8, Clause 8

That seems to me a very clear statement that a public good--the
Progress of Science--can be achieved by keeping "Writings" exclusive
to the author.

Finally, the petition equates open source to peer review. I am not
allowed to take a peer-reviewed paper, modify a paragraph, and
republish it. Unless I have permission from the copyright owners,
this violates copyright law just as surely as taking someone's source code,
changing a few lines of code, and redistributing it does. If the source
code of a program and a published, peer-reviewed paper are truly equal, then there
is justification for source code inspection, perhaps tied to a
publication, but there is no justification for a mandated
redistributable, open source license.

In various discussions of this topic elsewhere
I have brought up additional objections to the petition, some
technical, others philosophical, and still others tongue-in-cheek. I
countered that the arguments in favor of the petition, like
encouraging standardization and supporting incremental improvements,
are not as strong as the originators' claim. Because of all these problems I see in the Open Informatics petition, I find that I cannot sign it.