A Software ecosystem refers to software components, which when combined, exist within a computer as a functioning unit. Common core components which are part of this functioning unit typically include: A kernel, a windowing system, a desktop environment, a compiler, a text editor, a web browser, an email client, a word processor and many other components depending on the purpose of this specific computer.
A vast variety of software components are available on the software market from which to select software components from. Many components with similar function may co-exist on the computer and be used for identical tasks based on user preference. Some duplicate components cannot be in use concurrently because of their specific function. The kernel is one such component.
As in an ecological ecosystem components which are weak, unreliable or are unable to adapt to changing circumstances quickly because of a lack of flexibility will often become less common overtime. Software components also evolve this way and may become effectively extinct if a more suitable replacement is found and adopted by all users.
In this book, software technology and the myriad issues that surround its dissemination and use are examined from a number of relevant perspectives.
Software is examined in the context of its users, its developers, its buyers and sellers, its operators, society and government, lawyers, and economics.
The book attempts to bring these perspectives on software together in ways that illustrate that software is both distinctive from other goods and services and interesting from a variety of perspectives.