Excerpt from a longer text (introducing free software to an Indian audience) by Nagarjuna.

Why all knowledge should be free?

Let us take a blank CD and take its mass on a balance. Now, having recorded its mass, let us copy about 700MB of software or any digital documents into it. Record its mass after it is full. What is the difference of the CD before and after it was full? Zero. How can a CD that contained 700 megabytes of information did not increase in any weight? Is software a kind of levitating gas like phlogiston? (Phlogiston was thought to be the reason why metal oxides lost weight when heated. This theory was later questioned by Lavoisier, arguing against Priestly, leading to the discovery of oxygen, and eventually the chemical revolution.)

If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. George Bernard Shaw (1856-1950)

Yes, knowledge and code are not conserved like matter and energy. Therefore if you have one instance, you can make several copies of them. As technology advanced, the effort involved in making such a copy eventually became so negligible. The cost is negligible today because communication and digital technologies have become highly efficient in producing verbatim copies and the media is inexpensive. The efficiency of copying has become so good that we cannot tell which is a copy of which.

From now on, when we are asked what is this world made of, we must say at least three things: matter, energy and code (assuming space and time as given). Of these matter and energy are conserved, i.e. neither of them can be created nor destroyed. Code, is a different ‘matter’. If a substance is conserved, it follows that we cannot make copies of them. Copyable things like code (including all symbolic forms like music, dance, gestures, languages etc.) are not conserved. Without depleting the original, we can make more of them.

Since knowledge is impossible without code, whatever was said about code applies to knowledge too. By Nature, or by God (if you are a believer), knowledge is born copyable.

Based on what we now know about the Nature around us, if we take away code, there will be no life on earth. We know that reproduction is a defining character of life, and genetic code (the language needed for inheritance) is necessary for reproduction. Thus, code is not only necessary for human existence, it is actually the very essence of life.

Why are we digressing and talking about the world around, matter, energy, life and all? What is its relation to software or to free software? Well, the relation is where ever there is code, there is also information processing. Though information processing happens in Nature too, it is not controlled by any political, or business corporations. It happens seamlessly there. However, in human life, information processing is subjected to and controlled by a very complex socio-political process. Unless we understand it clearly, we cannot participate in the game with confidence. Understanding the dynamics of software creation, management, propagation, modification and the factors that control it, are important in order to understand the relevance of free software movement. The knowledge that we create, if stored only in our mind, perishes with us. But in human beings, and in a very few of the other higher animals, mechanisms evolved that pass their knowledge to the children through what is often called behavioral or cultural inheritance. Older generation of beings engage in teaching the younger generations the art of living. This includes to a large extent, how to ‘read’ the world around. The better we can understand it, the better is the survival chance. One of the essential differences between humans and animals is that we developed several layers of complexity into this process of cultural inheritance, so much so that we have institutionalized the process in the form of schools. Though a lot of knowledge automatically gets through from a generation to another by merely learning a language, special skills are learned through special institutions. In all these cases, what we learn is mostly, how to interpret different forms of knowledge, and how to create artifacts that sustain this process. Thus we not only learn what was gained by the older generations, we create more by standing on the history. Recalling these facts from our study of civilization is necessary to understand what is happening now in the name of proprietary software, knowledge industry etc. We evolved into humans and reached this far due to transmission of knowledge from one generation to another. Human languages are responsible for harboring and transmitting the knowledge through social and cultural dynamics.

Creating, modifying, managing, transmitting, and copying of code or ideas take human effort. That is why, when we want to read the ideas in a book, we pay for it. This payment is essential to ensure that the human effort that created it, printed it, transmitted it are compensated for their service. Though, in principle, this appears easy, human effort is not easy to measure. This is the core contribution of Karl Marx who explained how economic inequalities get created by misjudging the measure of human effort that goes in creating and maintaining the creations.

Having understood that code is not conserved the way matter and energy are, and also that knowledge in the form of code is an essential part of human cultural life, several seers in the past invited us to participate in this very noble process and warned us to live a life of freedom and dignity. Having realized that knowledge is the essence of human life, Rabindranath Tagore – among the tallest Indians who had the vision of free society and free knowledge – wrote this poem:

Where the mind is without fear and

the head is held high

Where knowledge is free

Where the world

has not been broken up into fragments

By narrow domestic walls

Where words come out

from the depth of truth

Where tireless striving stretches its arms towards perfection

Where the clear stream of reason

has not lost its way

Into the dreary desert sand of dead habit

Where the mind is lead forward by thee

Into ever-widening thought and action

Into that heaven of freedom, my Father,

let my country awake

Rabindranath Tagore from Gitanjali.

Though he was not aware of what is happening in today’s modern world in the name of IT revolution, this was a visionary call to protect our culture, particularly our freedom. Let us see how proprietary software culture is working against the vision of Tagore.

Proprietary software is a black hole of knowledge universe.

When programmers write instructions, they do so in one of the programming languages. These instructions can be read only by trained programmers or by the compilers or interpreters. Only they know how to parse them and decode the meaning of the instructions. However, a compiler is not capable of carrying out the instruction, because it is the processor of the computer that carries out the instruction, it merely acts as a barter in between the programmer and the computer. Since, computer does not understand the programming language, the compiler decodes our instructions, and then re-encodes (re-writes) in a language the computer can decode (understand). Such a rewritten code is called compiled software, which is written exclusively for the machines, therefore it is often called the machine language. This code is humanly impossible to decode, though in principle possible. Since there are several kinds of processors made by different vendors, the compilers have to create different versions of software suitable for each processor. Thus, a program made for an x86 processor is not suitable for a PPC processor.

When software vendors distributes their software, they distribute it for a particular machine, and the code that is distributed is not the code the programmer made for the company, but a compiled version. Added to this complexity is that the program cannot be directly passed onto the processor without an operating system (OS). An operating system is another mediator that helps in passing the instructions from the program to the hardware, and vice versa. It is therefore also necessary to keep in mind for which OS are the programs compiled, apart from which processor they were compiled. Some times, it is possible to use the same byte code on all the operating systems, provided that there exists a separately compiled interpreter for each processor and OS. Language like Java and Python, for example, work this way. This makes the code inter-operable. Now that we briefly looked at how our instructions before reaching a processor get re-written into a series of ‘languages’, we can now see how to convert software into a proprietary software. If any one wants to take control of the software (code) that is made, a proprietary software company can do several things. One way is to provide the source code of a program to everybody, but restrict the interpreter (say a compiler of that language) to only those who pay license fee. It is also possible to embed the interpreter in a hardware, and who ever has the hardware can make use of the software. Other way is to provide neither the source code nor the compiler, but only the result of a compiled software, and restrict the operating system to only those who pay license fee for it.

It is possible also to restrict the use at all these multiple stages — the compiler, the operating system, and the access to the compiled code. The possibility of restriction does not end here. It is possible to create a special hardware, which may also contain another layer of interpreter, and lock the hardware to a single user who enters into a license agreement with the manufacturer. It is possible to invent more and more such stages of control to restrict the use of a software.

But, in all these stages, what is kept under control is mostly the interpreter and sometimes the code. Since, code per se is of no value, the process that makes it valuable is the interpreter, which de-codes the meaning contained in it. By making the interpreter a scarce commodity, it is therefore possible to enhance its value. Since, even interpreters are codified instructions to the computer, one copy of an interpreter can be copied to make several copies. That is why, a proprietary software vendor is looking at technical innovations that prohibit copying, or find other ways of prohibiting. One common way is to de-couple the interpretation process into two or more, and embed a part of that into hardware. This way an interpreter can be made a scarce commodity, making it available to those who can afford to pay license for it or buy the hardware and software together.

Another very important way of controlling is to write user’s creations (such as a digitized text, audio, video etc.) in a specific language that can be interpreted only by the system that created it. This is the most popular way of enhancing the value of a software, again by restricting the user to use only one kind of application. MS’s ‘doc’ format is a good example of this.

The companies that indulge in this kind of practice do provide a justification, which is to collect fee for the interpretation, claiming the ownership of the interpreter. This is the reason for calling the money that users pay as a license fee, and not the price of the software. This is a tact to say that this is a service oriented business. Mind you, they alert us in the fine print that a very few of us read: the customer is not the owner of the software, you are merely given the license to use it for a purpose.

Currently the human effort on the operations involving code are slowly getting taken care by the artificial agents (computers). Owners of the computers, instead of asking lesser compensation, are demanding more. Demanding more compensation is not justified since, the precious human effort has come down substantially. As a result, in place of substantial decrease in the compensation of human time, they sought increased fee for artificial agents. Since the new software technology got a fashionable image that it will be creating more value, people began paying the fee as per the demands of the software industry. This, to my understanding, increased the wealth of software industry by several folds.

On the other hand, hardware is also getting embedded with increasing amount of software. Increasingly, even hardware is entering into a licensing regime. Software and hardware industry are together creating more and more artificial agents. The main problem with this model is, society began to pay for the services of the artificial agents. The manufacturers of these agents are pocketing the money in the name of the service time of these gadgets. In this new economy, it is not the goods and service time of human agents that is on sale, but the service time of the gadgets. Do the manufacturers of the devices deserve to extract the compensation? Yes. But only if they do not insert unnecessary locks, that is if they do not prevent free dissemination of cultural resources. Technical innovation should go towards a way of finding out how to preserve cultural resources for a long time, rather than decrease their life time. What is the problem with this business model? I think, the problem lies in charging for the service of an artificial and copyable agent (interpreter). As long as the interpreters were human beings, we sought to buy their time when we needed an expert. Currently, most of human expertise is getting re-written as programmed instructions, and they are interpreted by the artificial agents. Scarcity of artificial agents is controlled artificially, so that their demand increases.

It is important to realize that there are two kinds of artificial agents: the hardware and the software. The hardware is a substantial thing, fabricated in a generic way to carry out programmed instructions. It is not possible to make copies of hardware without spending lots of matter and energy. But, the software set of instructions on the other hand are copyable with least effort and high fidelity. Writing programs is a creative act, just as writing a formula to calculate in mathematics. The compensation should go to the author, and not to the agency that copies the program. Often programs written by several authors is collected and compiled to produce a re-written form of the program, which the author too lost the freedom to interpret. This is the right the author of the program lost. The only way to regain is to keep the entire compilation process accessible. By becoming a custodian of the latter stages of converting the program into a machine code, and its interpreter, proprietary software industry invented a technical method of taking away the right to know. This is not required for making the technology work, but only required for the business interests. As we saw in the previous section, code is eminently and naturally copyable. Copyability is code’s essence. When people indulge in such a natural process, the proprietary world called them ‘pyrates’.

To understand that this model of exploitation is not new, let us look at what happened in Indian history. There was a time when the traditional wisdom in India, often called Vedas, was available only as spoken (verbal) code and was part of common knowledge (folklore). Later, this wisdom was rewritten (re-encoded) in an artificial language called Sanskrit. Sanskrit is artificial because of its generative structure of its grammar. There is a sense in which all natural languages are artificial, but Sanskrit is not natural in the sense that it is a strict rule based construction, just as our programming languages are. After re-writing the traditional wisdom in Sanskrit, it is accessible only to those who spoke or wrote this language. Obviously it was the elite section of the society – the Brahmins – who had this access. They were the ‘compilers’ of Sanskrit, so to speak! There was a time when the right to learn Sanskrit was prohibited, saying that only the royal caste (kshatriyas) and scholarly caste (Brahman) could only decipher what was in there. Even kshatriyas were prohibited from accessing some portions. This restriction to knowledge was accomplished by creating a private language. This is very similar to the way proprietary companies are making private languages to prevent knowledge from flowing freely. Brahmins called a shudra (person belonging to the lower caste) a papi (a sinner), just as proprietary world called those who copy software ‘pyrates’. Since knowledge is a very useful thing for survival, in the game of survival it became part of the political process. The powerful people always harbored the ‘compilers’, buttressed them, so that the rulers could remain rulers for ever. This is the same game. Old wine in new bottle! A corporate version of multinational brahminism!

The question is, are these mechanisms to take ownership of the code or knowledge ethical? Are they even necessary for doing ethical business? Certainly not. In the last ten years or so, a large number of companies world wide began distributing FS and provided services around it, e.g., Redhat, Debian, Mandrake, Ubuntu etc. Instead of selling software per se or claiming ownership of what they created, they sell only software service. Indeed they are harboring a large number of hackers in their business houses to create more software and enhance the efficiency and value, without claiming ownership of what they produce. This proves that ownership of tacit property is not essential for business. The rise in service business is an evidence to its success.

The objection is not about making money, but the means of making money. They are not using technology to enable the society to access knowledge freely, they are actually using technology to curb the free access to knowledge. Their inventions are counter to preserving human values. The story does not end here. There are other aspects to it.

To understand how criminal are their intentions, let us do an activity. Some of you may be using computers for the last 10 to 20 years. Collect all the documents you created during this time. Begin to open those files today using your modern OS. Take my word, several of you will find that most of the older documents are unusable. Either the document could not be opened, because the software that you have on your modern OS does not know how to decode the older documents or after decoding you see that there is some significant loss of data. Now the question is, why did this happen? This obviously happened because the underlying encoding technology is modified. If our work is inscribed in digital media like this, what is the justification for using computers for storing data. Printed books, old audio tapes etc can still be used, because they are not encoded in a secret language. We have not lost the ability to decode them. But our modern operating system lost the ability to decode some of the older computer documents. Who is responsible for this loss? If the agency which lost this is a public body like Government, who is responsible for this loss of data? Often, people were using the software made by the same company all along. Still this loss took place. Why?

The answer is not technical. True, advancement in technology requires that there be some changes. But, what is the justification for changing the encoding of data, without converting them to newer form. Computing industry has norms to follow, such as encoding standards, e.g., ASCII, Unicode, HTML. All the modern computers did not loose the ability to decode the older encoding standards. The loss took place because the software that was used was proprietary and the encoding of the data was also proprietary. A few people like me were fortunate, for I never lost data, since I was using exclusively free software all along.

If using computers for our work means such loss of data, isn’t this a sufficient reason to stop using computers? Even our inscriptions in the ancient caves still exist, although deciphering them is often a challenge. This indicates that preserving code is not enough, we must also preserve how to decode. The only way out of this problem is to make sure that we save our work in a standard format, and record in the museums the process of decoding. Currently our museums store only the code, often forgetting their meaning. Most users of computers may not be able to understand these subtleties of code dynamics. In such a situation, it is the responsibility of educational institutions, media, and the companies themselves to advice the users to follow the best practices. There must be governing policies to preserve cultural records, and not to preserve knowledge in a proprietary format. Otherwise, they must at least warn, that there could be loss of data.

If we collect all the digital documents which cannot be usable in today’s operating systems from all the users from merely the last fifteen years, we will realize that this is not an ordinary loss. It is nothing short of wiping away history, since it is the documents that contain what we did in the past. If the documentation cannot persist, we cannot create history. It is like walking on quick sand, where we find it difficult to trace the steps we took. If we used FS all these years, like me, you would not have lost anything.

This digital crime must stop. Using technology for destroying culture for making profits and becoming powerful must be considered an illegal act. Currently, Governments instead of protecting the society from this mishap, they are indulging in signing special memorandums of understanding with big multi-national companies in the name of developing the society by introducing digital practices. Policy makers and educators all over the world must guide the companies and the Governments so that this crime doesn’t continue, before we lost our history to electrons. All major public interest bodies, such as UNO, should recognize this problem, and create a policy to prevent human culture from vanishing into a black hole. Proprietary software culture is no less dangerous than an atomic bomb.”