![]() |
Software as a repository of knowledgeTranslation 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: |
Return to Extracts from Planeta Código E-mail comments to: |
TrickyDicky |
© 2005-6 |