Monopoly
The political term for the situation where a person, company, or trust, controls a market.Two kinds of monopoly must be distinguished and opposed: de jure monopoly and de facto monopoly:
- In a de jure monopoly, the law, or some external force, constrains everyone to use the monopolist as the sole provider of some service, a priori.
- In a de facto monopoly, although everyone is free to choose one's own provider for said service, it so happens that everyone or almost everyone consumes services from the same provider, a posteriori.
De jure monopoly are the worst way in which competition can be unfair, leading to degenerating, unproductive, uninnovative, unadapting traditions, which benefits only to the tenants of the monopoly, bitterly harming the entire system. Even when there are laws against monopolies in general, the mere existence of the de jure monopoly is the sign that even stronger laws actually support the monopoly by granting special privileges or subsidies to one provider (e.g. "intellectual property" law, law-enacted corporations, "public service" law, etc.)
De facto monopolies are the result of fair competition, whereby some provider is so good that the marginal benefit of changing to a new better one (if exists) is lower than the transaction cost involved in such a change. They can result but from constant adaptation and innovation from the market leader to prevent the emergence and growth of the virtual or real competition towards which customers will turn the very moment that they can expect better service/cost combination from another provider. Anti-monopoly laws, when they hamper the progress of de facto monopolies, are actually making the competition less fair, not fairer, since they promote inferior competitors and slow down the superior one.
Anti-monopoly laws are a return to reality; in a system where greedy, accumulation and then centralization are the most valued dispositions, free market and fair competition are chimeras. So anti-monopoly laws are an expedient to struggle in extremely adverse conditions and so, I agree, quite ineffective.
Besides, I disagree vehemently to obey blindly to this supposed free market law (which is often a state-imposed law, de facto if not de jure). The market is often an insidious concept, as underlined by Fabian Pascal in some of his articles; for example:
Free market can be an option, if some prerequisites are satisfied (for example, as you Fare pointed out, free flow of information, which is different from propaganda), but is not the only option (oxymoron). Nota bene: of course, here I'm refering to a common (mis-)understood meaning of the word market, a kind of particular social interactions, not the wider meaning that you libertarians advocate.
4. Reliance on "the market" serves in capitalism the same function that communism and religion serve: it's sheer ideology and has no relation to reality.
Now, this is one of the most common arguments against the heresy that the "market" does not necessarily produce the best, most meritorious, or even most practical outcomes. This site provides ample irrefutable evidence that, at least insofar as the IT industry is concerned, this position does not hold water. Nevertheless, the belief in markets is so religious, that even when the evidence is incontrovertible believers, in a form of denial, refuse to accept it. It would be a good idea, therefore, to respond not with just another editorial--the first one is quite sufficient--but rather by subjecting industry behavior to some piercing analytical insight by minds much, much more substantial than mine.
-- MaD70
Relevance for Tunes
As far as operating system design applies, kernels can be seen as execution-time de jure monopolies of code, that every process calls so as to achieve common services and communication; their effect, as expected, is to slow down services and communication (they do bring some "safety", but then, for most uses, they bring less safety and have higher cost than compile-time solutions [in other words they give us protection and not true security -- MaD70]). On the other hand, successful libraries are de facto monopolies of code, that everyone calls because when benefits and tradeoffs are considered, it overall costs much less to use them than to use competing libraries or to roll one's own code.
As far as operating system design applies, kernels can be seen as execution-time dictatorships with full control of who gets access to CPU time and resources. Every process calls the kernel to access common services and communication; their effect, as expected, is to slow down services and communication somewhat (they do bring some "safety", (protected memory, protection against resource deadlocking etc.) but then, for most uses, they bring less safety and have higher cost than compile-time solutions). On the other hand, successful libraries would represent consensual government (the antithesis of a dictatorship) of code, that everyone calls because when benefits and tradeoffs are considered, it overall costs much less to use them than to use competing libraries or to roll one's own code.
-- kaufman@jabber.dk
Overall benefits of traditional, static libraries are oversold. For a better solution, in the spirit of Tunes, see for example:
We argue that this way of building data structure component libraries is inherently unscalable. Libraries should not enumerate complex components with numerous features; rather, libraries should take a minimalist approach: they should provide only primitive building blocks and be accompanied by generators that can combine these blocks to yield complex custom data structures.
In this paper, we describe a prototype data structure generator and the building blocks that populate its library. We also present preliminary experimental results which suggest that this approach does not compromise programmer productivity nor the run-time performance of generated data structures.
-- MaD70
Abstract:
Many software libraries (e.g., the Booch C++ Components, libg++, NIHCL, COOL) provide components (classes) that implement data structures. Each component is written by hand and represents a unique combination of features (e.g. concurrency, data structure, memory allocation algorithms) that distinguishes it from other components.