Thursday, September 29, 2005

GNU – A Virtual Communist Manifesto - II

Chapter 2: The Great Software Robbery

In last chapter I summarized the journey from proprietary to free software. Now I will dig deep into how this free movement became closely associated to communism.

Open source movement, as I said earlier, was born out of necessity to create efficient software. Although hacker culture existed before, the open source model was first successfully adopted in development of Linux. Some do argue that the commercial vendors (even SCO) never understood that UNIX was a business opportunity or that there was any market for it and now they acknowledge the mistake. So had any of these vendors seriously considered marketing UNIX at a commodity price, there would have been no Linux. But that is no longer the real argument because it is more or less an established fact that Linux is good piece of software at least as an alternate to expensive UNIXes in universities and research departments - if not for commercial purposes.

The moderate success of Linux attracted a lot of eyeballs. Some thought of it as magical software that would rid them of tyranny of the Microsoft. The best thing about open source was that people thought that they would be doing what they like to do rather than what their bosses tell them to do. This did sound very promising to individual developers who lacked other resources (like capital) because this made them believe that if they had a good idea (design), all they had to do was write a partial code and a large community will turn it into a wonderful piece of software. Though some realized that main developer or co-coordinator needs to be a good leader so as to keep things smooth (read bazaar rules), all this seemed attainable. Since it was necessary in this model that source code must be available to all, to ensure this, various licenses were formulated. One such license was GNU General Purpose License (GPL).

GNU GPL became the most popular license because of whole freedom philosophy woven around it (read GNU Philosophy). GPL is one the best cases of viral licensing, enforced by its clause 2b, which reads:

You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

In plain English this means that if developer uses any code from the GPL’d software then his new software will also fall under GPL license. Thus the number of GPL licensed software increased at exponential rate. And according to GNU philosophy this provided freedom to everyone. This may be true in the perfect world but that’s not where we live in. Human beings are driven by lust for power and greed.

The GNU philosophy (and GPL – Its mode of implementation), put forward by Richard Stallman has a very stark resemblance to communism. It may be thought of as its virtual avatar. To find why, read on.

Thomas Friedman in his book “The World is Flat” did say that globalization has enabled big companies to play small and small companies to play big. It has levelled the playing field and this has been due to increased collaboration and sharing between various groups and individuals.

GNU GPL instead of levelling the playing field actually creates an illusion that the entire developer society is equal, in sense that they all have similar goals and objectives. Hence the same reward for everyone – ego satisfaction. What they need to understand is that money is not just a reward, motivator or a necessity but in fact abstraction for work. People value different things differently and that is why trade is healthy. That is why a developer who has a family to support would like to make profit from his software while another who is researcher at a university would feel contended with good grades and peer recognition without worrying about profits.

Paying developers royalty or compensation for their work is not only fair but also ultimately a great leveller (of playing field) because it enables people to acquire whatever they value more. Some people think of GNU GPL as an exemplification of globalization. Let me put a warning sign here –

“The collaboration and sharing

without monetary compensation

will not aid in globalization

but rather communism”.

Not only does FSF (Free Software Foundation) falsely believe in equality of developer society (in terms of goals and objectives), it commits the same mistake while viewing consumer society. It fails to acknowledge requirements of different sections of society. What I mean is, though price is always a factor, it may not always be the deciding factor. Priorities of people (or consumers) differ. For one section of people user-friendly nature of software may be of prime importance while other may value after sale service and support. By voicing concerns of a limited section of society and claiming it to be need of entire society is the worst marketing technique imaginable.

To make matters even worse, apart from its inability to acknowledge different objectives within the developer and consumer societies, it commits the blunder of misinterpreting all customers as co-developers. Thus it believes in ONE big society. Subhasish Ghosh explains this point nicely in his essay “A Critique of GNU philosophy (II)”, which explains:

One of the most primary reasons of failure for Karl Marx’s communist theory was the basic all-important implicit assumption of ‘human labour as a commodity possessing both market and exchange value’. Stallman seems to exceed even Marx in this respect of baseless synthetic assumptions. Companies or individuals create software with a basic motive. The motive of using someone’s intellectual property (or of a collection of people) is using the commodity (or article of interest) and the effect produced by it as an immediate result. It is here where the difference lies. Microsoft Word program or vi (in Linux) is same in terms of functionality since they both allow an end-user to write down his/her thoughts. The effect is the same in both cases. How he/she achieves the end result is the most important, not his/her intrinsic ability of modify Word or the vi editor. Thus, being able to fix or adapt the program is an external additional choice, not an immediate intrinsic choice available to all mankind. Stallman’s whimsical philosophy of free (open-source) software seems to hover around this very basic mistaken understanding of life around us.

So due to this incorrect model of co-operation put forth by FSF, small-time and low budget developers, who do not have adequate resources, often end up using GNU GPL. They are subsequently forced to give up one thing that could have stopped their project from being low budget, their intellectual property rights, now forfeited by the GPL virus.

Thus the GNU philosophy, like communism, harms very people it claims to protect and breeds enslavement.

To prove they are not communists, FSF generally makes a very lame excuse stating that (unlike communism) they are not so much in favour of equality but rather freedom. FSF repeatedly claims that paying for software takes away one’s freedom. This is definitely not true because sale of a product implies commitment to and responsibility for that product. It is the choice of the customer whether to buy specific software or not. It is not forced upon him. Instead we should be arguing how to provide adequate competition. This should have been the real discussion but FSF wrongly made it a “freedom debate”.

Some defend free software on grounds that if someone buys proprietary software but is unable to pay for patches and updates in future he’ll be stuck. That’s why, they say, free software is so liberating. My opinion is, though it may be justified to provide free patches/upgrades for home users but for commercial users, it makes no sense at all. When a company buys proprietary software, it makes an investment. Now it is responsibility of developers and management of this organization to produce profit from it and reinvest in future upgrades. If they somehow fail to do so then it is the organization that is to blame, not the proprietary software.

FSF in general is also opposed to getting rich – at least by programming. Here are a few lines from GNU Manifesto:

The real reason programmers will not starve is that it will still be possible for them to get paid for programming; just not paid as much as now...

In the long run, making programs free is a step toward the post-scarcity world, where nobody will have to work very hard just to make a living. People will be free to devote themselves to activities that are fun, such as programming, after spending the necessary ten hours a week on required tasks such as legislation, family counseling, robot repair and asteroid prospecting. There will be no need to be able to make a living from programming.

FSF argues that they are not against people making money. They say that people are free to make money by distributing or redistributing free software and through after-sales-support and servicing. If you had been reading carefully, you would realize what FSF is saying is very much self-contradictory. According to them the whole concept of free software was good because people were able to do what they love and have natural talents for - that is coding. Now they are asking people to do something they may not be naturally wired for. To be successful in business of distribution, service and support – skills other than programming are essential that may or may not be present in the same individual. Therefore it is very likely that some other person possessing these skills will reap benefits without ever bothering to pay the programmer who has no intellectual rights. Thus maybe few smart individuals may benefit but a large section of society will find itself helpless. A crude way of correcting this may be corporations, which may organize programmers and necessary managers. But no such organization can survive for long without profit motive and only on donations. Thus we come back a full circle to right where we started – the proprietary software. (If you are thinking about likes of Red Hat, those are cases of corporate embrace that I will discuss in chapter 3 – to be released shortly.). Corporations are more successful than individuals not only because they can mix talents but also because they can better define vision, goals and objectives and have ability to stick to them in order to provide long term support.

Another belief that the above statement from GNU Manifesto focuses on is that with the implementation of new technology, old professions are bound to become obsolete (Read “The Communist Baker Jesus”- by Helgi Hrafn Gunnarsson for more on justification of Free software on these grounds). Since the new technology promises productivity, loss of profession is in fact acceptable. This argument is generally used to prove that FSF is not so much labour friendly and is capitalist, not communist. Also Thomas Friedman did say that in globalized economy some professions will become obsolete but the new technology will itself create new professions, thereby such transition is beneficial in long run. If this was indeed the case with software industry, FSF might have been right. But the following argument proves them wrong. First they are using litigation not technology to make a profession obsolete. Moreover, programmers are not really becoming obsolete, as their requirement will still be there. So they are actually being enslaved not eradicated. Had it been the case that development of AI (Artificial Intelligence) had reached a level that programmers were no longer necessary, every capitalist would have supported it and it would have been responsibility of programmers to upgrade their skills according to new environment. But the current argument by FSF is not capitalist ideology.

Now to conclude, the free software model and especially GNU GPL is seriously flawed. It is not a capitalist ideology or exemplification of globalization but communism. The only thing that has been accomplished by its widespread use is enslavement and robbery of software that has cost may programmers dearly.

All this does not mean that open source software is complete nonsense and must be revolted against. There is much good that it can lead to – which I will describe in chapter 3. But all developers, especially individuals must be very careful about whichever license they choose - based on what they value the most and their priorities - or it may end up destroying their livelihood.

Monday, September 26, 2005

GNU – A Virtual Communist Manifesto

Chapter 1 : From Cradle To The Grave

In the beginning there was man. Man created machines. And greatest of them was the computer. To interact with these powerful things he created software – to control and dominate them. Then something happened. No, machines didn’t take over and we were not trapped inside Matrix.

Many people saw this development as a perfect business opportunity. They organized themselves into various groups or commercial organizations and started coming up with brilliant ideas on how to better interact with these machines – how to create better software. These groups patented the ideas they developed which were subsequently sold in market for profit.

The software so developed came to be known as proprietary software. The rights for development, debugging, improvement and distribution were reserved with the developers. So the development company would hire the best brains it could get and develop or maintain its software. The improvements carried out were released as different versions that were named/numbered accordingly. Mergers and acquisitions were also common and in some cases were part of expansion and improvement policy.

If you are a capitalist (like me) all this will seem very normal and productive to you.

Now as the years progressed the need for interaction among the machines grew. This led to the birth of the Internet. Internet solved a lot of problems (and created many new ones too). In Thomas Friedman’s words – It created a flat world. Most importantly it brought down the communication costs. Now developers from different geographical locations were able to work on the same project and communicate with their colleagues anywhere on the planet. Thus the transaction cost decreased.

Right from the beginning of the computing era there was a new culture in making. Many call it the Hacker Culture. Initially restricted to academic circles, it involved technicians who simply wanted to fiddle with the existing software. But since the rights of the proprietary software was generally reserved with their developers some of them started designing their own software. This was also the result of inefficiency present in some of the existing software.

The growth of the Internet gave a big boost to hacker culture. It enabled hackers to share their codes with everyone else. This sharing and collaboration ensured continual improvement of their software. Apart from this a lot of security related bugs (flaws in computer program/code) also started surfacing and it was becoming increasingly difficult for the software companies to remove them on regular basis. All this made it quite clear that the current business model (of proprietary software) wasn’t adequate anymore. Thus it was from necessity – to produce efficient software – that Open Source movement was born.

Eric S. Raymond proves this point quite nicely in his famous essay “The cathedral and the bazaar”. According to him, given a large number of people, software development could be very effective. Hence a large pool of beta testers can indeed find bugs much faster and eventually fix them. Furthermore, he laid down rules that software utilizing bazaar model must follow to maximize its gains. Moreover, he makes it fairly clear that one cannot code in bazaar style from scratch. The bazaar model offers maximum gains while testing, debugging and improving the software rather than designing it from the ground up. Thus a successful “bazaar style” software must have a coordinator (who may or may not be the original designer) who is not only a good designer but has leadership qualities and is capable of keeping his beta-testers constantly stimulated. So we had scientific method of increasing efficiency and productivity but the challenge to absorb it into a profitable business model remained.

So what did companies do to turn these events into business opportunity? Well, as you might have guessed everyone tried different things – some (read Microsoft) resisted it and went into war mode. Others like IBM developed better proprietary software over the open source software and reinvested part of their profits in development of open source. Many more ideas flowed in which ranged from mere political gimmick to very productive ones. I’ll have to write a different essay to cover that. For this one I’ll focus on a very different trend or rather a movement (as some may call) called GNU.

GNU is a recursive acronym for “GNU's Not UNIX”. Some developers (though they were more of politicians) felt that Open Source movement is all about achieving technical and economic objectives. They wanted to give this movement a moral and ethical angle – to take it from practicality to ideology. Hence a new movement called Free Software movement or GNU movement was born.

At the moment I am unable to think of more appropriate quote than this – The only thing we learn from history is that we never learn from it. To induct moral standards, to accuse every commercial organization of monopoly and cry out for freedom of people is best trait a communist can show. I am NOT saying that we should not consider ethics, no organization is monopolistic and freedom is unnecessary. What I am saying is that these things cannot be achieved by idealism like communism. History has repeatedly shown that these things are best left to market forces – which is one of the biggest democratic forces. What is essential to make these market forces effective is adequate competition. When customers have options to choose from, they will themselves opt for most ethical company and that in itself is true freedom. The monopolistic companies will be forced to change their habits or loose business (that’s what is happening to Microsoft). This is exactly what open source movement was initially about – changing customers into co-developers – that is before communist driven Free Software movement took over.

Many developers consider the two movements – open source and free - to be same. Although at times the two do seem to be complementary and striving for similar goals but that’s simply not true. Free software movement has not given open source movement moralistic overtones – it has made it a communist movement.