Open vs. Proprietary

ziggy on 2002-08-07T18:22:40

Here's an idea that I'd like to work up into a fuller treatment. This is just the first draft.

The current debate about software isn't about Open/Free vs. Commercial. It's about Open vs. Proprietary. It may sound like a small semantic difference, but it's an important distinction to consider.

The big problem with proprietary software is vendor lock-in. The primary benefit with open source software is the absence of vendor lock-in, and the ability of a community of enlightened users to determine their own destiny, rather than having to continually pay for it. This distinction helps explain why the developer community is so strongly against the use of Flash on the web, and why SVG is slowly gaining mindshare (suggesting that the issue is less about immersive 2D graphics, and more about Flash as a proprietary format). This is why XML, with all of its warts, is a pivotal technology today. This is why every week there's yet another story about a big important company converting some proprietary UNIX or Microsoft servers to Linux.

Open source isn't a magic pixie dust that makes all the evil in the world go away. And proprietary software isn't without its benefits. For example, Flash may have a poor perception among many developers, but it still quite useful in many ways. Furthermore, a significant community of Flash developers exists, and they prefer to create rich multimedia experiences in Flash, especially when the alternatives are so flat. Similarly, there are benefits to using proprietary databases Oracle, Sybase or DB2 over open source databases like MySQL or PostgreSQL. Apple has spent a significant amount of money in R&D to make Mac OS X a simple, easy to use graphical desktop UNIX environment; Linux and the BSDs may be superior in one way or another, but are still lacking when it comes to ease of use.

So who is right? Which is better? Actually, both of these questions are the wrong questions to be asking, because they reduce a complex set of interacting elements down to a one-dimensional black-and-white discussion. The first question we need to be asking is how to evaluate the differences between open source and proprietary software. To begin, it is necessary to understand the many different ways open source and proprietary software can be compared.

First, there's the dimension of vendor lock-in. Occasionally, this is a good thing. One example can be found with hospitals. The hospital's main function is to provide medical care to patients -- not develop and retain a top-notch IT staff to create all of the applications required to handle patients, surgery, pharmaceuticals, and the rather complex world of insurance and medical billing. It's quite reasonable and actually rather intelligent to put the money that could be spent in an small, overworked staff of programmers into a vendor-supported proprietary hospital management package. After all, that vendor can sell the system to multiple hospitals and distribute the costs better than one hospital could.

Second, there's the dimension of task completion. I could, for example, examine my own personal needs for managing my financial portfolio, and write a program I release as free software. Perhaps I understand the GAAP and double-entry bookkeeping. Perhaps I don't. In any case, there's no guarantee that my solution will fit your needs. On the other hand, Intuit has the resources to make a program like Quicken suitable to the 99.44% of individuals who are looking for a software package to help manage their finances. The argument is reversed for other domains in software, like web servers. The problem of serving web pages is much simpler than managing personal finances. Even though no two production web servers will have the exact same configuration, the nature of the configuration differences is rather limited. This explains why Apache remains the worlds most popular web server, and why proprietary web servers are consistently a minority in the monthly NetCraft surveys. (And why certain proprietary web servers are in a permanent decline.)

Third, there is the dimension of user friendliness. If I'm willing to accept the vendor lock-in potential of proprietary software, and there are two competing solutions -- one open source and one proprietary, then how can I make a decision? Let's compare two systems for book authoring -- LyX and Microsoft Word. On the one hand, LyX is a graphical environment for using possibly the best software typesetting system on the planet: TeX. On the other hand, Word is good enough for most uses, even if its output is sub-optimal by some measure. The big problem with LyX is that it forces the user to understand how LaTeX structures documents. It is extensible, but managing extensions to the underlying TeX system is cumbersome. It is user-friendly, but only to a small group of advanced technical users. On the other hand, there's Microsoft Word -- a word processor that's deliberately engineered to be easy to use for a vast majority of users for a wide selection of common word processing tasks. The initial learning curve for using Word is intentionally shallow, even if it is cumbersome to learn how to use advanced features, or learn how to use a different version of the product. Similar comparisons can be made between PowerPoint and the large number of open source tools that are just barely functional for creating presentations.

 

What does this all mean? That Open Source is doomed, except for the rabid fringe? Not exactly.

Open source has a long history. In fact, it's just slightly longer than the history of proprietary software. Both types of software fufill a set of needs. Proprietary software is better suited to fufill a certain class of needs, but at the possible expense of vendor lock-in. Open source software fufills many of those same needs, and avoids the issue of vendor lock-in, but possibly at the expense of suitability, user-friendliness, or other areas.

In the end, all software has one of two end-states: open source or dead. Open source makes it easy for a committed user community to maintain and extend a package, typically when a vendor would have succumbed to commercial pressures to move on. Furthermore, that community of users collectively decide when an open source package is dead, rather than a vendor who can no longer afford to support a package. Proprietary software also tends to be short-lived, and replaced by other software (or simply forgotten) in the long term.

That distinction leads to an interesting conclusion[*]. Eventually, most software will be open source, and no one will care. There will still be a need for proprietary software, but mostly on the fringes. Why? Because open source has this very interesting property: it tends to thrive when a problem domain is understood. Look at the classic success stories in open source: operating systems, programming language environments, and networking systems (ftp, mail, web, network stacks, etc.). What are the classic failures for open source: web browsers, office applications, graphical desktop environments. Each of the classic "successful domains" are well reasonably well understood by computer scientists (many undergraduate curricula have upperclass students design and implement a compiler for C or a C-like language; the first compiler took IBM staff many man-years to develop). Each of the typical "failure domains" are both significantly more complex and newer problem domains. This also helps to explain why there are few if any open source applications for personnel management, enterprise accounting, inventory control, or avionics. Will these systems become open source, or be replaced by open source systems? Yes, eventually. The process may take decades or even centuries, but in the end, open source will win.

 

[*] This is still a draft; I acknowledge that most of the data/justifications are still lacking.