Where source code goes to die
What happens to software that is no longer of any use
WHEN Google launched Wave, its collaborative-working platform, in May 2009 it was meant to change the way people worked. E-mail, chat and office software would all be rolled into one seamless whole. In the event, consumers didn’t know what to do with it and a year later the project was scrapped. On April 30th Google Wave ceased to exist. But Wave lives on.
In November 2010 Google invited several outside experts to ponder what to do with Wave. The company had two options. The flop could either be locked away in its code vault, the company trying hard to forget about all the money and effort that went into it. Or it could be given away in the hope that someone could do something useful with it. After a week’s discussion, Google decided to cede Wave fully to Apache Software Foundation, a non-profit, open-source, volunteer-driven developer community. Apache is now Wave’s rightful owner.
Software is usually created as text written in a particular programming language. This can run to hundreds of thousands of lines for big programs and millions in the case of operating systems. Another program, called a compiler, turns this text, known as the source code, into an executable file (such as an .exe on Windows). But if you want to tinker with the program—to fix bugs, for example, or to update it—you need the source code. It is the most valuable thing owned by any software company, the equivalent of Coca Cola’s magic formula.
Giving away code is not uncommon. OpenOffice, a suite of word-processor, spreadsheet and other applications, started life as an open-source project. After its developer, Sun Microsystems, was bought by Oracle, the company handed the code to Apache. In such cases, there is an explicit transfer of ownership. But many developers do not want to forfeit all claims to their work. Still, they may see value in distributing their source code.
Jordan Mechner created the original “Prince of Persia”, an adventure game, on an Apple II in the 1980s. It became one of the most popular games of its time. But for the past ten years Mr Mechner thought he had lost the original source code. Broderbund, which published “Prince of Persia”, did not have a copy and Mr Mechner could not find his back-ups. A few weeks ago, a cardboard box from Mr Mechner’s father arrived at his door. In it were the floppy discs on which he had backed up his work. As soon as he extracted the data, the first thing he did was to post it online, free, for anybody to download.
“Prince of Persia” is still under copyright. Indeed, it is still being commercially exploited: the original game is available for $0.99 on the iPhone. And since the first game was released in 1989, it has spawned a slew of sequels, a Hollywood film starring Jake Gyllenhaal, a graphic novel and a Lego set. While the characters and franchise are making money, the original Apple II source code is of no commercial worth. Its value is purely historical. Mr Mechner saw no harm in sharing the code for an outdated version of the game. He wanted to see his work preserved as a matter of record and because he thought it might interest other programmers.
John Carmack, the legendary programmer behind “Wolfenstein 3D”, “Doom” and “Quake”, also releases the source code to his old games under a free software licence. In normal circumstances, the code would have been kept locked up under copyright laws for several decades after its creator’s death. “It is a little disturbing to think that we would transition directly from professional secrecy to obscurity,” Mr Carmack says.
As we note in this week’s print edition, the most common roads to oblivion are physical decay of the medium in which the data are stored, format changes and software updates that render files unreadable. It took a small band of digital archaeologists to extract the information from Mr Mechner’s old discs. But there are more quotidian ways to lose information. A big risk for companies that use custom-made software is that the provider may go out of business, taking the source code with it.
One option is for the developers to hand over the source code to the customer. But they may not want to part with their intellectual property. And the customer may not want to pay the extra sums involved in acquiring it. The other option is to put the source code in “software escrow”. The customer and the developer agree to store a copy of the source code with a neutral third party such as data-management company. This allows the developer to protect intellectual property while giving the customer something to fall back on.
Despite the best intentions of programmers, giving software away can be tricky. Getting the creator, the development studio and the publisher to agree to waive their rights is a long, and sometimes fruitless, process. Another problem is that the code for one work may contain bits of other works. When Google agreed to donate Wave to Apache, it had first to strip it bare. Parts of Wave can be found in Google docs. But it is to Google’s credit—and that of Messrs Mechner and Carmack—that they were willing to brave the legal and technical wrangles to make their work available to all. Other developers would do well to follow in their footsteps.
Corrections: In an earlier version of this post we wrote that “copyleft” licenses forbid commercial use of derivative works. They do not, though some other software licenses do. We also said that Mr Carmack’s old games and Wave were in the public domain. Again, this is not technically speaking true: they are covered by a different sort of licence. Finally, we implied that Sun Microsystems handed the source code for OpenOffice to Apache. In fact, this was done by Oracle, which bought Sun in 2009. Apologies.