I had a chance to catch up with Mitch Kapor last week. Kapor is one of the founding lights of the modern PC software industry. He was at the helm at the beginning of the Lotus Development Corp. in the early 1980s and saw his applications run on the earliest business PCs. He was responsible for many seminal software projects, including 1-2-3, Agenda and Notes. I can remember using the first version of 1-2-3 to build various mathematical models for the companies that I worked for back then, and still have my slipcase of the software and original 5.25 inch floppies (not that I have a PC that has any floppy drives on it anymore, but it is nice to have these early touchstones of technology).
Kapor had a broad vision of where he wanted our industry to go, and wasn't afraid to use his influence and wealth to push us along. He was one of the founders of the Electronic Frontier Foundation back in the early 1990s when legal issues in cyberspace such as privacy and access to online information were largely uncharted territory. Before becoming the chair of the board of the Mozilla Foundation, he was a venture capitalist and had numerous other charitable efforts.
Today, Kapor runs the Open Software Applications foundation, which is building a new product called Chandler that will focus on using open source methods for personal information management. He took time out from his schedule to exchange some pointed emails with us about where he has been, what it has been like competing with Microsoft and where open source software is going.
Q: I think our audience would love to hear what your views on when you use open source versus when you develop with commercial software.
A: Let's distinguish between products you use and projects you undertake. For the former, it feels too purist to say "I will only use open source." Sometimes the best tool for the job happens to be proprietary. At the same time, being thoughtful about trying to assemble a working set of open source tools seems totally reasonable. Linux-based desktops, for instance, require a fair amount of upkeep. Is it worth it? And compared to what? These days, so does a Windows desktop, with all of the virus and spyware problems. Personally, I use a Mac as I don't want to be my own system administrator. On the other hand, if you are already a sysadmin, the incremental effort to do it for yourself is a lot less.
In creating a new project, I think you have to look at your goals. If it is possible to create an open source solution, then good, but I don't think you can assume that it's always going to be possible. If you're trying to build a business around the project, then you have think through how you expect to get revenue. Sometimes a consulting and service model will work on top of an open source code base, but not always.
Q: Firefox has become its own operating system, and dare I say, way of life. Have we reached the end of the line where reasonably technical people can admin their own desktop browsers?
A: My experience of setting up Firefox has been different and better. It has been straight-forward, a matter of a few clicks at most to get Flash, Real Player and perhaps a handful of other extensions installed and working. This is an enormous improvement from earlier on in which I was just unable to get all the pieces I needed installed and working to support pain-free viewing of the Web sites I visited. As they say, YMMV (your mileage may vary).
That said, wouldn't it be better if Firefox came bundled with a Flash player, etc., or its installer detected a need for customary extensions and could install at the same time? There's no technical reason why it couldn't happen.
Pragmatically, I think we have to distinguish between a base set of extensions and everything else. It gets progressively more difficult to create seamless solutions when there are nearly infinite possibilities for customization and tweaking of settings. There's a basic tension in principle that can never be completely resolved. Even so, there is still considerable room for improvement, but it will take an increased emphasis on usability as integrated into the development process for maximum progress to occur. There are a host of techniques and practices for working on usability, but the skill set to do so is a specific one, and usability specialists have to become an integral part of the open source development process. See FLOSS Usability Sprint for details on a Free/Libre/Open Source Usability Sprint.
Eventually, the uses of metadata (emerging from today's rapidly evolving baby steps of XML, RDF, tags, microformats and the like) will become sufficiently sophisticated. [Software] programs will be constructed [to have] automated dialogs and high-level configuration wizards
for advanced users, which will tame the beast. This is a vision and dream, not imminent reality, but I am impressed with recent developments. The year 2005 might be the year of metadata.
Q: You have been a competitor of Microsoft's for more than 20 years. What is Microsoft doing right with respect to the Internet and what is its major weakness?
A: The biggest weakness is that they do not have a business model that is well-suited for the coming era. Will Microsoft try to force users to adopt new proprietary standards and in Longhorn? It will be tempting for them to try to do as a way to preserve their hold and they may have some considerable success. I think ultimately such moves will fail, as the collective power of openness and the superiority of open source economics is too great. See the paper "Coase's Penguin" by Yochai Benkler.
Microsoft has never intended to compete on a level playing field. Instead they have tipped the field to favor themselves, sacrificing product quality and user benefit over and over again. This strategy is coming to the end of its useful life.
When motivated, however, Microsoft can develop powerful technology, especially if it sees itself as playing catch-up in responding to competitive threats, as they did in bringing Internet Explorer to parity with, and then beyond, the Netscape browser in the 1990s.
Q: As we go beyond 3 GHz CPUs, doesn't writing better code make a more compelling case? And not just for gamers and video editing, but for general office applications?
A: I think there are advantages to writing better code beyond speed of execution, e.g., maintainability. Far more time is spent dealing with poorly structured code than is justified by taking the quick and dirty approach.
Q: The browser has become the de facto user interface for many applications, both professional and consumer. Does this mean that software developers who write interface modules are getting lazy or getting better at providing more usable code?
A: The rise of the browser as an application interface is generally a good thing. Services like Google's Gmail and others show how it is possible to improve usability to the point where running an application in a browser is no longer like writing with the brick tied to a pencil. I expect that the trend of UI improvements for the browser is going to continue to accelerate to the point of parity with desktop UI for many classes of application. It will simplify application development a lot, and this is a good thing.