Changes in the Architecture of Software Applications
- Moving away from the farming metaphor, there is a fundamental change in the architecture of the Internet that will have a profound effect on open source. This is probably the most important point I'm going to make, so pay attention!
- In the "old days," software needed to be distributed in order to be used. In the new world where the network is the computer, this is no longer true. The most powerful new applications are not traditional software applications, but web-hosted services: think MapQuest, Amazon, eBay, e*Trade, and you'll realize what I mean. These new-style applications, which I've elsewhere called "infoware" applications have profound implications for the open source software movement:
- Traditional open source licenses depend on software redistribution as the key to their requirement for source disclosure. What happens when software no longer needs to be distributed in order to be widely used? Oh GPL, where is thy sting?
- Rapid prototyping lowers the barrier to entry -- software becomes ever more of a conversation and less of a product. MP3.com says they try to introduce 20 new features every day. But on the other hand, this means that the traditional incentives to redistribute software don't exist. I've talked with developers at major web sites who've developed all kinds of cool internal tools for their sites, but they don't feel they have the resources to support those products, and they don't see the benefit of redistributing them. Since the web represents a key part of the future, it's essential to create an open source culture at leading web sites, even though they no longer need to redistribute software in order for it to be used.
- Returning to my point about open standards -- many of the new applications are being written at a new level above the old open standards stack. Where are the APIs that will allow an application to make use of Amazon's database, for example? These things will come, but they are likely to be proprietary unless we think through the benefits of standardization. XML offers promise, but because it's a commercial battleground, there's no assurance that the standards will be open, and that independent developers will be able to participate as they have been in the traditional architecture of Unix/Linux and the Internet.
- One of my biggest concerns about open source is that it has been slow to embrace these changes in the architecture of the Internet. Much of the attention of the Linux community, for example, has been focused on the recreation of a Macintosh- or Windows-style desktop environment, while Mozilla languishes. Microsoft is far ahead in the development of APIs that will allow developers to use other web sites as if they were software components. (For more information on this idea, see Jon Udell's keynote at the last Python Conference, The Next Generation Object Web.) Open Source is dominant on the server side of the web, but Microsoft now dominates the client side. There are good signs, though. The folks at Eazel grok the web at a fundamental level. Open source web developers are starting to grasp the new paradigm. But time is short.
- I haven't talked at all about software patents, which many of you know I've been spending some time on lately. I'll be glad to talk at length about patents during the question period, if we have time, but I do want to make a few short points.
- Given my concern for open source, you can quickly see why I believe that software patents are destructive to the Internet and open source culture. Where the essence of open source is collaboration, a heightened, speeded-up framework for sharing and communicating ideas, the essence of patents is to fence off ideas, and create monopolies on their use. In theory, patents result in the publication of ideas that would otherwise be kept secret, but in the world of software, the opposite is true. If you know of "prior art" you are supposed to disclose it in your patent application. If you don't know it, you can claim an idea as original. Therefore patent applicants go to great lengths not to know about prior art! Because so much prior art is not documented in the databases that are usually searched by patent examiners, this results in a huge transfer of rights from the collaborative community to unscrupulous companies that are patenting anything they can, in hopes of extracting royalties. At this point, even well-meaning companies realize that they need to file patents defensively, lest the tools of their trade be taken away from them.
- It's ironic that the patent examiners think that software patents will encourage innovation or protect the rights of inventors. In fact, patenting often sets in after the initial burst of creativity in a field has slowed down:
- When you're working on the fringes, without aim of commercial gain, you don't typically think to patent.
- In periods of rapid innovation, no one has time to patent. Faced with a choice between implementing a truly useful feature, and filing a patent on that feature, most developers would rather build software. Better to be imitated, improved upon, and then to leapfrog the competition, than to erect fences and hope they don't find their way around them.
- This situation is changing. The environment and the architecture we take for granted is seriously at risk.
A Few Big Picture Conclusions
- The environment in which open source and the Internet have flourished is changing and is at risk. We are moving from a situation in which developers scratch their own itches to one in which they try to please the market; we are moving from an architecture in which distributing code was the natural way to share ideas to one in which displaying the results of your work no longer requires distributing it; we are moving from a situation in which ideas were freely shared, and the best implementation won in the marketplace, to one in which patent licensees are laying claim to fundamental ideas (ideas not necessarily even their own).
- We need to take lessons from the environmental movement! We need a Sierra Club for the Internet. If we value the environment that brought us the Internet, we need to act to protect it.
- This starts with a realization that we could lose what we value. It's easy to think that it could never happen. My cousin, who is a fisheries statistician up here in Canada, tells the story of how fishermen will protest limits on their catch, saying "Why, we used to be able to take ten fish a day out of here." They don't realize that they get less now, because they took too many before. Problems take time to build, and by the time they are recognized, it's often too late.
- The next step is to build a bigger constituency. We need to tell the story of how we got the great benefits of the Internet from a particular style of cooperation. Open source and Internet-enabled cooperation should matter to people who will never write a line of software.
- We need to use our collaborative power to let those who threaten our environment know that it matters to us. This is the lesson of my protest over the Amazon patents. We can make a difference. I want to urge all of you to get involved in letting the world know that the culture of the Internet, the culture of open source, matters to all of you. Use it or lose it.
Tim O'Reilly is the founder and CEO of O’Reilly & Associates, Inc. He is also on the boards of ActiveState Tool Corp, Collab.Net, Invisible Worlds, and EPit.
Discuss this article in the O'Reilly Network General Forum.
Return to the Hub.