Software

From OSGeo
Revision as of 07:46, 27 September 2007 by Arnulf (talk | contribs) (What makes Software soft?)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Some Fundamental Differences between Hard- and Software

The following table lists some properties of software and hardware. It shows that there is a fundamental difference between a physical good an software. Traditional market mechanisms rely on supply and demand of physical objects, sinking supplies result in rising prices and vice versa. Because software does not physically exist in the material world and it can be duplicated at very low costs the supply is virtually endless. Therefore traditional market mechanisms do not apply naturally and have to be enforced by all kinds of measures (software locks, hardware locks, legal means, etc.).

Hardware Software
If hardware (or any physical good) is sold (given away) the supplier suffers a loss of that good that can be compensated by payment. If a copy of a software "product" is given away, the original is still there. The supplier suffers no physical loss of the "product" because it is only a copy.
If hardware brakes, it becomes useless. Software cannot brake in this sense. A data carrier can be scratched (for example a CD) but the original of the software is not affected [1].
Hardware cannot be duplicated. Every copy needs the same amount of raw material and energy as any other. Copies of complex hardware will always be imperfect, not digital duplicates. Software can be duplicated. Each successful copy of a software product is an identical reproduction of the original (the "raw material" is the source code, it does not run out).
Hardware can wear, rust, or decay, and will eventually break and cease to function. Software does not wear down, rust, decay or break. It may fall out of use, but it never loses its functionality.

Free Software licensing and Open Source development methodologies take this into account. Proprietary licenses instead build a framework that tries to compensate the above volatile properties of software.