Source Code and Patents: Both or Neither
March 26, 2002
Unfortunately, if they want the source code, they are going to have to put up with the patents.
Lawrence Lessig, in an article in Wired, said he wants source code copyrights to last 10 years, with code made public after that. His concern is that "the computer science department doesn't get to examine Apple's operating system to train its students in better coding."
His plan would "unlock the knowledge built into this protected code for others to build upon as they see fit. Software would thus be like every other creative work -- open for others to see and to learn from."
Lessig is guilty of a common misconception. Since the best-known proponent of public source code is the open source community, which also abhors intellectual property, people assume that releasing source code automatically implies abandoning all intellectual property rights.
Yet when companies copyright their code, they do not care so much about the code itself -- the names of variables and arrangement of lines -- as they do about the algorithms and data structures used, which can be inferred from the source code.
For purposes of furthering the knowledge of other programmers, it is those algorithms and data structures that are important. Since copyright protects only the expression of an idea, not the idea itself, that intellectual property is not protected by copyright.
As an aside, copyright notices in source code are somewhat pointless. If someone else takes your code, compiles it and resells it, you would be upset about theft of intellectual property, not nominal copyright violation. Copyrighted source code available on the Internet is "copied" repeatedly as it is transferred.
Open source code, which allows free use of its intellectual property, often has copyright notices, but the comments at the top of open source files explicitly grant anyone a perpetual right to undertake every action that copyright is designed to prevent.
I would like to see the source code to all software available immediately, not after a 10-year wait. Not for future programmers, but for today's users. Source code is simply too useful when associated with compiled binaries.
Right now, though, companies view releasing source code as tantamount to abandoning all intellectual property rights. We need to logically separate source code from other intellectual property.
How should source code be treated? Like the copyrighted text it is -- you can read it, but you can't copy it freely. That doesn't meant you can't use it.
As Richard Stallman has pointed out, you are free to modify most products that you own. You can buy a microphone and modify it. It may void the warranty, but that is your risk. You can even sell the modified microphone to someone else.
You could think of compiling someone else's source as the equivalent of making a photocopy of a text -- it's allowed for personal use. A user with source code can modify his software as he see fits, recognizing that doing so might void the warranty.
What about selling modified software? Because it does not apply in the non-digital world, I doubt that copyright law addresses the issue of someone making a perfect copy of a copyrighted object, destroying the original and selling the copy -- but I don't think that violates the spirit of copyright law.
Therefore, while the company that sold the software can restrict a user from reselling the software and claiming it is the original, copyright law should allow the user to sell a modified version of the software as long as he or she transfers the license along with it.
What about algorithms and data structures? Lessig claims that "no code lives for 10 years," but I disagree. Ten-year-old code probably has been modified extensively and would look quite different if rewritten from scratch, so its copyright owner might not care if someone makes a copy. But that does not mean the other intellectual property has no value.
There certainly is 10-year-old code running today -- the first line of code for the Windows NT kernel was written in 1989, and much of that source is still used in Windows XP, 13 years later. Microsoft may not care about the code as such, but it certainly cares about what it reveals about the way the kernel is designed and operates.
So, how can Microsoft be convinced to release its source code? The answer is patents, as I will discuss in part 2 of this article.
Adam Barr worked at Microsoft for more than 10 years before leaving in April 2000. His book about his time there, "Proudly Serving My Corporate Masters," was published in December 2000. He lives in Redmond, Washington. Adam can be reached for response to this column by e-mailing him at firstname.lastname@example.org