Banner Zenit, Scientific & ICT Services

<<Previous Blog Index Next>>

Software as a repository of knowledge

Thursday, October 06, 2005

Software as a repository of knowldege

Translation of Las cinco formas de almacenar el conocimiento… y no llegar al fondo (the five forms of storing knowledge - and still more to come) by Ricardo Galli.

I have frequently written and said in my talks that software is the modern repository of knowledge. I have also said that studying a program that makes files in MP3 or Vorbis formats may throw light on the mechanism of human hearing. As well as the inverse: how much knowledge accumulated over centuries is required to write a program that compresses audio?

When I say things like this some ignorant people often jump down my throat. But I am in good company. Philip G. Armour wrote in “Not-Defect: The Mature Discipline of Testing”. The Business of Software. Communications of the ACM, October 2004:

despite common practice, developing software is not a product manufacturing activity. Rather, it is a knowledge acquisition activity.

When I was writing my earlier article, Descalibración metacognitiva, I was browsing through the references and found two more pearls from the same author in the same journal: The Five Orders of Ignorance (October 2000) and The Case for a New Business Model (August 2000).

In these articles, I found the same thesis, although better developed, about software as a repository of human knowledge. Armour identifies five forms in which knowledge can be stored: DNA, the brain/memory, tools/machines, books and software. He analyses the characteristics, advantages and disadvantages of each form.

1. DNA. The first method of storing knowledge. DNA exists to store the knowledge about how to create a life. This knowledge is highly embedded; it needs to be extracted and expressed (as if by a Turing machine) for the survival of the species. The knowledge is persistent, but is updated slowly. We can't change this knowledge - yet, or at least not intentionally. DNA can give rise to a physical object that interacts with and modifies the environment.

2. The brain. This is an 'experiment', almost exclusive to the human race. We carry more information in our brains than we do in our DNA. We use our brains to store the knowledge that we acquire. This type of knowledge is very volatile, but we can change it quickly and intentionally. We can use this type of knowledge to affect and modify the world.

3. Hardware (Tools and machines). The most important value of a tool does not reside in the tool itself, but in how it was created and modified. It's the knowledge of the creator of the tool that is important. This type of knowledge is often be called, 'solid knowledge'. This type of knowledge is substantially persistent, but is not easy to bring up to date. It is intentional and exists to affect the outside world.

4. Books. These became a new way of storing and accessing knowledge which until their 'invention' was confined to the human brain. It made knowledge portable over time and space. This type of knowledge is very persistent, but is updated slowly. Although books are intentional, they don't have the capability of changing the world.

5. Software. This is the latest form of storing knowledge - only 50 years old. After a shaky start, it has been expanding at a furious pace. Lots of people are working to obtain information from various sources, understand it, classify it and translate it into this medium; and are then trying to validate all this knowledge. There is a reason for all the effort that is being invested; this medium has the characteristics that we are searching for and that no other medium has. It is persistent, intentional, updated simply and rapidly and above all is capable of affecting the world.

Armour, apparently not associated with Free Software and very close to the 'business of software', is saying the same things that we have been saying since the start of the Free Software movement; that software is a product of intellectual creativity and is functional (Armour calls it 'active') and is a repository of knowledge.

He says that the business of software must change, that software development should not be considered asif it were the manufacture of a product but as the acquisition of knowledge, and that the 'product' is the acquired knowledge (or the acknowledged 'ignorance').

But I think that he stops short and doesn't go to the root of the question. Since the start of the Free Software movement we have been saying the same, but we go further.

Science, or the scientific community, found itself with the same problem a few centuries ago. The methodology of how to 'manage' and develop scientific knowledge were the foundations of what we now know as modern science. Or rather, the modern scientific community.

The essence of modern science - or the rules of the scientific community, which I commented on in my article, Software privativo en la universidad (Proprietary software in the university) - is encapsulated in the phrase, “on the shoulders of giants”. This phrase has been used and abused, but I will re-state it like this:

The fundamental characteristic of modern science is that its practitioners can work in a community.

The evolution of the scientific community has been much studied and the books on the philosophy of science can surprise us with the similarities to the evolution of the Free Software. A good example is, “The Structure of Scientific Revolutions” by Thomas Khun. It's very detailed, but highly recommended because the parallels it reveals are very interesting. I find it amusing when I see people criticizing the duplication of effort, project forks or outstanding developers, subjects that Kuhn describes in similar terms during the evolution of science.

I believe that the relationship between software and knowledge is very obvious. That between Free Software and the scientific community is less clear. But it's logical that they are related as software is the child of science (and of the 'garage' as some Americans say).

Richard Stallman worked as an investigator in MIT and was inspired by the scientific community when he wrote the formal definition of Free Software. If you change the words 'software' and 'program' to 'scientific knowledge' in his definition, then you get a pretty good approximation to the fundamental rules for the modern scientific community.

Armour is convinced that the method of developing software must change because the traditional way doesn't work, he proposes and demonstrates that software is knowledge, and he claims that developing software is learning. Science has been like this for centuries and has been well studied by the philosophers of science. Stallman is a philosopher, except that, to his misfortune, he is also a programmer. Free Software has been tracing the same trajectory as science with many similarities and parallel situations. What was the insult of the 16th and 17th centuries that is the equivalent of today's cries of 'ayatollah', fanatic, tyrant or radical that are directed against the advocates of Free Software? Wasn't it 'heretic'?

[Translator's note:
I have been using the term Open Source in the past, but reading the article,
Cry Freedom by Gervase Markham, convinces me that Free Software, or Free Open Source Software (FOSS) or even Free/Libre Open Source Software (FLOSS) are better terms. See this issue of First Monday for more information.]


<<Previous Blog  Index Next>>

Return to Translations Index

E-mail comments to:


© 2005-6