Computer Economics

< CS101

For our short economics, section I want to introduce unique forces which shape what's available on computers: network effects, open standards, open source software, proprietary software.

Axiom: Competition

Economists disagree about all sorts of stuff, but they agree that competition is good. Where a new technology is desirable, is cheaper, has fewer security problems that what it replaces .. inevitably competition is the source, prompting the engineers and vendors to work at making something better. Economics with computers are subject to some weird effects which can either block or enhance competition, so that theme will play out in many of the examples below.

Network Effect

A "network effect" means that when the user is choosing among alternatives, A, B, and C, they get additional value from their choice if it is also the one chosen by other users. The network effect value does not come from the qualities of the thing itself -- it works well, it is cheap, .. -- the additional value stems from the participation of other users. It's weird that a great part of the value of thing stems not from the thing, but by the votes of others.

In our world, there is the one dominant way that fax machines work. But imagine a world where there are three competitor fax machine standards: A, B, and C. They cannot talk to each other at all. So as a user, you are really picking whole ecosystems -- the A system, the B system, or the C system.

So which do you want to pick? You want to pick the one that is most chosen by other users, so you can interoperate with everyone. As a result, network effect markets tend to have a winner-take-all structure, where one system becomes dominant, and all the others disappear.

Problem with Network Effects - Competition

The problem with network effect markets is .. it runs counter to competition. Suppose A has the market locked up, and B and C are tiny. The A vendor raises its prices, has tons of security problems ... but as a customer, what are you going to do? This is a terrible outcome. We need vendor A to feel at least a theoretical sense that if their product is bad enough, the users could switch -- there is competition.

Microsoft Windows and its ecosystem of software tied to Windows is perhaps the most famous example of a market dominated by network effect. Microsoft Windows is a good product and has earned its success to a degree, but it is also shielded from competition by the network effect. With competition, it would be better, cheaper, have fewer security problems etc. etc.

Lock In

A related idea is "lock-in" to a technology. Suppose you pick a technology and use it for a while .. building up a store of data or other material specific to that technology. How easy is it to switch to a competitor? Most computer systems have lock-in, not necessarily from malice, but just because each system has its own way of storing data, writing files etc. Unfortunately, lock-in also inhibits competition. When you are choosing a technology, keep in mind the lock-in effect which will bind you to your choice. Many markets -- milk, gasoline, bookstores -- don't have natural lock-in. You could buy from one this week, and next week from a competitor.

Network Effect - Standards

It's not all bad news though. Network effects can also work well with standards. At one time, there were many different networking systems in use -- an IBM one, a DEC one, a Microsoft one. Each was specific to a vendor, and did not work well with the others.

But then there was also a standard, vendor-neutral way to do networking: TCP/IP. Each vendor liked their own, but the value of just-works standard that would let anyone talk to anyone was irresistible, and the open TCP/IP standard came to dominate. TCP/IP won the network effect, so we get the benefit of dominant, vendor-neutral standard that allows anyone can talk to anyone. However, rather than billions of fees going to some vendor that controls TCP/IP, all the benefits go to the community at large. Standards and network-effect can make a great combination.

Open standards revolutionizing a domain by network effect is basically the history of the internet -- HTML, HTTP, SMTP, JPEG, .. these all dominate through network effect, but without favoring any one vendor, and of course all in a free and open way.

Standards also enhance competition by reducing lock-in. Suppose you have a bunch of JPEG photos at a photo sharing site. It's possible, although not trivial, for you to switch to competitor site, since at least JPEG is a standard that all the sites understand.

Open Source Software

Open source software is an enormously important, and in many ways quite surprising arena of technology.

Recall that program has "source code" -- the C++ or Java files of its code -- and the compiled form, the .exe, of the program. Very broadly speaking, open source software has the following qualities:

1. Free To Use ("Free as in beer")

You can download and use the software program for free.

2. Free From Handcuffs, Free To Modify

The "source code" of the program is also freely available. 99.9% of users will never look at the source code. But if someone wants to, they can get the code, make a change, and build their own version. No permission is required to run the code. No permission is required to make whatever changes you want, and you can redistribute your changes. This freedom operates as a sort of safety protection, guaranteeing future access to the software. Richard Stallman, an open source pioneer calls this "Free as in Freedom.". Note that if someone has a patent on an idea, they can sue you for implementing it, so just having source code available is not enough for the right to do it -- you need their permission.

3. Submit Your Changes Back

There's some complex differences here between open source systems, but basically if someone has a fix or new feature, they are encouraged in one way or another to submit the source code for that back, so it can be incorporated into the main version.

Example - Apache Web Server

Oracle, IBM, SAP, HP, Dell, Apple, ... in most respects these companies are competitors. However, they all need a piece of software called a "web server" to exist. They could all write their own. However, what has happened is that they all use and support the open source Apache web server, and is the most popular web server on earth. It doesn't take that many people to maintain and extend Apache. Many corporations have someone on staff, who perhaps part time, works on apache, contributing features of fixing bugs the corporation cares about, and submitting those changes back.

It works out to a form of cooperation -- IBM and Oracle may hate each other, but they are willing to pitch in an engineer each. There's a sort of social contract based on the fact that everyone has access to the source code -- we'll each help out with this thing, and everybody will get the benefit.

Does that mean there is no competition in the web server space? No, there is active competition, but it is between many open source web servers -- big ones, little ones, filing out the various niches. Microsoft produces the one proprietary web server in wide use. Microsoft famously dislikes open source software; I guess they just make so much money the other way, they can't get with the program. Google, Apple, Facebook ... have all figured out that open source is a fantastic way to solve some problems, and participate actively with open source projects.

Open Source AND Proprietary

Does this mean everything should be open source? Certainly not. Successful open source projects require an alignment of interests of many people, and sometimes that just doesn't happen. However, open source is a great solution for many problems, especially as neutral foundation technology (no handcuffs) for people to build projects upon. This leaves plenty of other niches where proprietary software will be the best solution.