Коммунизм и программное обеспечение - The Free Software Movement
Утопический коммунизм оказался в области программного обеспечения. Движение свободных программ (Free Software Movement) пытается сделать все программное обеспечение бесплатным и открытым, что почти полностью исключит инвестирование капитала в развитие программ и приведет к тому что разработкой ПО будут заниматься добровольцы или государство.
Существует опасность, что некоторые государства все же начнут использовать GPL как основную лицензию, что является ошибочной тактикой, которая приведет к негативным последствиям.
Использование выражения "свободная лицензия" по-отношению к GPL является как минимум не логичным.
Свободная лицензия - это такая лицензия, которая не имеет ограничений.
Пример - BSD.
GPL имеет ограничение. Эта лицензия принуждает под угрозой судебной расправы открывать полный исходный код программы, в которой используется хотя бы малая часть кода, выпущенного под этой лицензией. Имея хотя бы одно ограничение, лицензия не может называться свободной.
Следовательно GPL это "не свободная" лицензия.
Товарищ Столлман играет на тонкостях психологии человека и повсеместно использует выражение FREE, хотя реальной свободы в лицензии GPL - нет. Если он делает это намеренно и логично осознает, то его можно смело назвать обыкновенным обманщиком и спекулянтом.
Introduction to Open Source
First, an introduction. The Open Source Movement is a broad social movement among software developers to produce software where the source code (the human readable - one hopes - form of the software) is available to the users, and can be modified by future users. Source code is the human produced element of software. Today, most proprietary software is provided as "binaries" or "object code" - which is a very cryptic form of the software generated by computers from the source code.
In general, Open Source provides a way for volunteer programmers to produce software that everyone can use - without the cost of marketing or even corporate structure. In some special cases (see below), profit-oriented companies also contribute open source software.
Advantages of Open Source
Open source has many good attributes. Sophisticated users of proprietary software (a small minority) are limited by not having access to the source code. Access provides the ability to diagnose and fix bugs and installation programs, and to understand the software. True Open Source also provides cross-fertilization as those who modify the software are required to contribute their changes back to the community if they distribute the software. There are number of other positive aspects that come from the Open Source community.
Disadvantages of Open Source
Open source as a general principle has only a few disadvantages.
One is that it may force revelation trade secrets that have significant value, thus inhibiting investment in using those trade secrets with such a license.
Open source results in a limited range and poor packaging of software. Open source producers only work on their interests, and the interests of programmers cover only a small part of the software arena. Furthermore, the ecology of open source overemphasizes coding to the detriment of documentation, installability, and understandability.
Open source may compromise security - although this is a matter of dispute: security experts often argue that "security through obscurity" does not add security, and open software proponents argue (often correctly) that having the source open means that security holes are more likely to be found *before* they are exploited, as more people are reading the code. However, the "security through obscurity" argument is flawed. It is really meant to counter the lazy belief that obscurity is sufficient to provide security, and to cause folks to realize that cryptographic algorithms are strongest if they have been exposed to open review. Real-world security usually combines obscurity and other techniques.
Some Good Results from Free Software and Open Source
The Free Software movement (a subset of the Open Source Movement), started by Richard Stallman, has produced some remarkably good results. The Linux operating system is the most well known example. The Apache web server is the most popular web server in the commercial web world. What could be wrong with such results?
GPL, on the other hand, is Often Bad
However, the Free Software movement strongly advocates the GPL license (one form of open source - see below), which is strongly anti-capitalist. They have an additional goal, enforced in the license: software should be free (no cost and no trade secrets or proprietary code).
One of the most common forms of Open Source software is that produced with the GNU Public License (GPL). The GNU Public License requires anyone who distributes products based on GPL'ed software to also provide the source code, including any modifications that were made by the distributor. It is a "viral" license in that any code that is GPL'ed will always be GPL'ed, as will any derivative works. In other words, one cannot produce proprietary software under GPL or incorporating any GPL'ed code withouth providing, at no cost, the source code that was created. GPL was the invention of Richard Stallman and is the license under which Linux is released. It is the preferred license of the Free Software movement.
Another common form of Open Source software licensing is the BSD (Berkeley) license. A BSD license allows users of the software to either redistribute the source with their modifications, or to keep the source confidential. BSD licensed software is commonly used by for-profit companies such as Microsoft and CISCO.
Note that in both cases, a company can profit from selling hardware that uses the Open Source software, but only in the BSD case can a profit be made directly by improving and then selling the software itself.
It is ironic that the BSD license provides more freedom than the Free Software movement's GNU!
Value of GPL
GPL software has a very useful place in the modern world. It is a form of computer charity to business and individuals, and it also allows a form of collaboration between software creators that leads to genuine creativity. It also provides a training ground for programmers and designers. Of course, the BSD license has these same advantages.
GPL Economy - Charity, Ego, Reputation - but NOT Capitalism
However, the effort to produce GPL software is normally unpaid. Contributors achieve their reward in terms of satisfaction of having contributed (charity), plaudits from users and other contributors (ego), and enhancement of professional reputation (indirect capital gains).
Because GPL strongly limits the rights of those who produce derivative software, it does not allow the power of capitalism to operate in a very useful manner. A company has little reason to invest in software which it is required to release for free to the entire world. Users do not have to pay for it, and competitors can get a running start against the real creator of value. Thus GPL is strongly anti-capitalist in the software world.
GPL Irony - Hardware Makers can Profit, but not Software Makers
GPL does nothing to inhibit hardware manufacturers from taking the donated efforts of the creators and making profits by basing their hardware on the usage of this free software. In fact, one of the largest hardware producers (IBM) does exactly that. IBM advertises its computers, including the largest, as platforms for (GPL'ed) Linux. Thus GPL's goals are anti-capitalist, but the only capitalists injured are those who seek to invest in software as their primary product! This is a truly silly result and is typical of applying utopian ideals to the real world.
Why Companies invest in GPL for their own Capitalistic Benefit
There are companies that invest in GPL'ed software (or software with similar licenses). Sun Microsystem supports the Apache Jakarta project. But Sun has an ulterior, closed-source motive! The Jakarta project provides the reference implementation of an important component which can only be used by Sun's proprietary, closed source Java language! Thus GPL'ed software is being used to support a very closed software environment. This was *not* a goal of GPL, but rather another non-utopian consequence of the real world.
Some companies (most notably Red Hat Software) have a business model that is based on providing services to the GPL world. Thus Red Hat Software contributes to Linux. It makes some money by selling distributions of Red Hat Linux, but anyone can get that software for free, so that profit area is limited. Only those who wish to take advantage of the added value of the documentation, support and a nice box pay for this software. Thus GPL has limited the added value that a software producer can contribute to documentation and packaging.
GPL will Never replace Proprietary Software
In contradiction to its goals, GPL software will never replace a significant portion of proprietary software. The reason is that it relies on either non-monetary rewards to its creators, or special market circumstances (such as the Sun and IBM examples) to pay creators. Thus it relies largely on the charity and vanity of programmers. This model tends to produce some very clever software, but often not very good software packages. Programmers win plaudits for clever software. They don't win plaudits for documentation. Programmers prefer to solve technical problems, rather than the more mundane issues of installation packages or business software. Programmers love to *use* open source because it is free, and programmers can figure out how to install it. Other users would prefer to pay a bit for ease of installation and better documentation.
GPL's assumption that it can replace proprietary software contains an implicit assumption that there is a limit to how many different software programs are required. It is essentially a static assumption - it denies changes in the needs for software.
It also ignores such important but mundane sofware applications, such as credit card processing, insurance processing, inventorying, embedded software (a car computer, a microwave oven controller), process control software, etc. In other words, it tends to focus on either flashy software (e.g. graphics) or infrastructural software (operating systems, web servers, etc). The reason is that this software tends to be the sort that leads to plaudits to the creators, or it supports other profit making entities that will pay for non-proprietary software (see the Sun example again).
The Danger in GPL - Government Funded or Usage of Software
The danger in GPL is the movement to force its adoption by governments. This takes two forms, both cheered by GPL advocates and many open source advocates.
By far the most dangerous movement, currently being highlighted by Microsoft, seeks to force government funded software to be released with the GPL license. This actually *restricts* the use of software compared to the current approach of public domain licensing. It means that government funded software (often the result of academic research - such as the BSD Unix operating system) can never be used in proprietary software.
If this had been the practice over the last 20 years, most of the internet software now in use would need to have been *redeveloped* by private industry, rather than adopted and improved by that industry. This is a clear case where industry (the enemy, after all, of utopian communists) would have to pay for this software, while everyone else would get it for free! It would also likely have inhibited the development of many clever products, including the Routers that form the backbone of the internet (Many Cisco routers use BSD, NOT GPL licensed software).
The other form is the effort to force governments to use *only* GPL'ed software. Some governments have already gone along with this - after all, GPL'ed software is much lower cost. Of course, in the real world governments need to use some software that simply is not available in the GPL world - such as mapping software that is only sold in proprietary form in order to protect valuable proprietary map databases. So these governments are either crippled in some ways, or (as actually happens) they have to keep making exceptions.
Furthermore, the long term effect of this approach is to reduce the capital flow from government into software development, which means that software features of primary value to government will simply not be developed.
Because ultimately governments should be responsible to their constituents, they should make the decisions on what kind of software they wish to buy based on their needs. In many cases, certain kinds of GPL'd or BSD'd or public domain software will in fact be the right case. Also, having governments pay Microsoft's monopoly rents for every desktop is not necessarily in their best interest. But like any utopian movement, the Free Software movement seeks to impose global restrictions.