trevor's picture

Some Remarks concerning "Software Freedom Day"

Text for discussion: Some Remarks concerning "Software Freedom Day"

The Economics of Freedom:

"Free software" is a matter of liberty, not price. To understand the concept, you should think of "free" as in "free speech," not as in "free beer."

But surely "price" is an important aspect of "Freedom" too. Simply because those who cannot afford the price do not have the "Freedom" to use the product. A "free" society must therefore surely be an egalitarian society -on all levels, including economic, intellectual and social. Economic and social equality are perhaps somewhat Utopian but perhaps still practical possibilities -but how possible is intellectual equality? Intellectual "Freedom" (free of our own human restrictions) may well prove to be logically impossible -and perhaps even (in some cases) undesirable and antisocial. However, on a fundamental level -how can one have "Social Freedom" without "Social Equality"?

Social Software -the Technology of Culture:

Ideological proponents of Software Freedom are most centrally concerned with freedoms such as in speech, association, privacy, and education. The word "proprietary" refers to ownership and private control, and while ownership and private control are very beneficial to society in many areas, they are directly opposed to the public good when they are applied to software, which consists of expressions of ideas (and these expressions happen to be understandable by computers).

Access to the expressions of ideas (both concerning ideological and practical matters) is the fundamental basis for all social "freedom". In this sense, "software" should not just refer to the expression of ideas that are understandable by a computer -but should also refer to social and cultural processes that are implemented by humans as practical and conceptual components of daily life. Communal and individual aims, intentions and desires are usually expressed within the context of a collective world-view -and the actions of any member of a community has an impact (sometimes small, but sometimes large) on the collective and individual lives of the other community members. The denial of access (on social, political or economic grounds) to the conceptual or practical technology that shapes the community is also a denial of the individual's ability to participate fully within that community. "Software Freedom" therefore implies "Software Literacy" as a essential pre-condition.

Opposing Social Arteriosclerosis:

Pragmatic proponents of Software Freedom are most centrally concerned with economic, governmental (see above), and educational benefits. Free Software is not produced without cost, and there is no guarantee that it will be available to you without cost. But in practice, almost all Free Software is free from licensing fees, and the licensed publication of Free Software source code guarantees that no private interests have the power to revoke this public economic benefit.

Just as a healthy and active human being needs a healthy circulation of blood -so does a healthy community require a healthy circulation of both knowledge and the (financial and technical) means to circulate and utilize that knowledge. A free society implies an equal society -and a "free market" implies an equal market, with equal opportunity for all. The "privatisation" of technology and knowledge closes / prevents free circulation and is therefore a form of social, intellectual and cultural Arteriosclerosis.

The Components of "Software Freedom Day" also states: SFD is primarily about Software:

So what is Software?

Computer software: From Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Software - "Computer software, or just software is a general term used to describe a collection of computer programs, procedures and documentation that perform some tasks on a computer system ... "Software" is sometimes used in a broader context to mean anything which is not hardware but which is used with hardware, such as film, tapes and records."

The emphasis in the latter part of this Wikipedia definition is clearly centered on the division between "hardware" (the machine) and "the rest". However, although more subtle, the first part of the definition also makes a fairly clear distinction between the "computer programmes" that are executed and the "computer" which executes them. Such definitions clearly reflect the western cultural bias towards such binary divisions as "Mind/Body" -which also maps nicely onto the the concept of "Software" as "Mind" and "Computer" as "Body". Perhaps in this context it is interesting to note the subtle distinction between "Brain" and "Mind". The Computer has often been termed an "Electronic Brain" in the popular media -and indeed, the "Brain" can be considered part of human "hardware" -but the "Mind" is a more ethereal concept which has no direct one-to one mapping with the (physical) Brain.

So if the Computer (hardware) is some kind of "electronic brain" then indeed, perhaps the "software" can be seen as the (temporary implantable and removable) "Mind" that (in some way) controls the (electronic) "brain" in the form of (algorithmic?) procedures that determines how the physical system operates.

Hardware, Software and Embedded intelligence:

However, one can ask if the apparently obvious division between "hardware" and "software" is completely justified. Here are a few thoughts on the relationship between "programme"and "computer":

a. The Transient nature of "Software"

One apparently obvious difference is that "software" seems transient while "hardware" remains constant. However, to a certain extent this is an illusionary division -because, presumably, any programme can be baked permanently into a chip and therefore become part of the hardware. Conversely (and this seems to be the more popular option) -theoretically, the functioning of most pieces of hardware (except perhaps those directly concerned with purely physical qualia) can be simulated by a computer programme -and thus become "software".

b. The Computer as Implementing System:

If the concept of "transience" is a dubious dividing line between software and hardware -then perhaps the "subject/object" relationship (separating that which is implemented from that which performs the implementation) might perhaps be a better basis for the conceptual division between hardware and software. However, there are (at least two) phenomena that tend to undermine this too:

i. Embedded Intelligence

This concept is (in some ways) the opposite of the concept of a "virtual" medium that has no physical properties -because "Embedded Intelligence" refers to the way the actual physical construction of physical objects has an inherent effect on the way they operate and therefore imposes (physical) limits of their performance. A simple example would be a measuring cup -which automatically and inherently measures a given amount based on its own physical characteristics (volume) and the material to be metered out by it. The physical object may exhibit a simple behaviour -but to simulated in an immaterial computer programme may be much more complex (simply because these "inherent" physical characteristics cannot be taken for granted and must be explicitly simulated).

Of course, one might be tempted to believe that the physical characteristics of objects -becomes irrelevant when they are simulated in a virtual (conceptual or mathematical) space. However, this could be a great logical error -because the conceptual structure of the computer programme takes on exactly the same role as the physical characteristics of the physical object. Every programmer must surely have experienced that the way a computer programme is conceived and constructed -has great implications for the way it performs under different circumstances when executed. If hardware has "Embedded Intelligence" -then computer programmes have "virtual" embedded Intelligence -which is just as empowering, or limiting, as its physical counterpart.

ii. Self Reflection (LISP, etc.)

In practice, the division between that which is processed and that which does the processing, is often found within the software itself -in the separation of the "data" from the "process" that operates on (or with) the data.

However, this separation is not a fundamentally rigid division: One of the powerful principles underlying "Object Orientated Programming" is the storage of both "data" and "methods" (processing the data) within a single "object". i.e. a "dog" has not only a "tail" but also a "method" which "wags" it (and presumably, both an internal and an external state which allows itself and others to know if the tail is wagging -or not).

However, in a programming language such as "LISP" a programme also be seen as "list" of data -and so it can self-reflectively process its own programme -interpreting it as data in ways that can allow it to modify its own instructions and thus change its own behaviour. In some circles. "self-reflection" is seen as an important pre-condition for "intelligence" -in both machines and humans.

Cooking the Books (the Recipe and the Chef):

One fairly accurate and non-technical way of looking at a computer programme is to simply see it as a set of instructions given to a machine in order to allow it to perform some simple, or complex, task. Seen in this way, a collection of "software" is rather like a recipe book for a computerized chef.

Although I am not a trained cook, but I have looked at several cookery books and even some tv programmes which demonstrate some basic skills. As a result, I have the suspicion that "recipe books" encourage a rather bad understanding of the skill of a good cook. This is because, I suspect that a specific recipe is not the start of the process (as it is generally is when one works from a recipe book) -but in fact is the end of the process of a long period of experiment and refinement -which is based not so much on a recipe but on the products available to the chef at that time. This explains the "regional" nature of many recipes. It also explains how recipes change according to climate and available technology -or labour. In other words, "cooking" is a kind of practical ecology of edible materials -so that if one understands the principles of this ecology, one can produce endless desirable meals without the need for an existing recipe. Indeed, the use of recipe books - probably actually hinders the development of one's understanding of the process of cooking -because they provide one with pre-prepared answers -when one should be asking questions about the nature of the ingredients and how they can be prepared and combined.

If this analogy is correct -then it suggests that there is an enormous (and potentially hugely misleading) gap between the production of software and the consumption of software (just as there is also a huge gap involved in the difference between cooking and eating).

Software Literacy:

Presumably, there is a big knowledge difference (and therefore also a huge difference in dependency on others) between a person who simply knows how to eat and a person who knows how to cook. Similarly, a person could hardly be called "literate" if they can only read but not write (at least a shopping list -if not a sonnet or a novel).

However, for some reason, it seems that "computer literacy"is often taken to mean somebody who has absolutely no idea of how a computer works but only knows how to start up (and use) the software required for their professional or social activities.

Personally, I consider this attitude to be a social disaster of incomprehensible magnitude. The construction of a computer programme is not primarily a technical activity -but a cognitive/linguistic activity which involves problem analysis, conceptual pattern matching and a whole host of other useful cconceptual skills (if the process has not been chopped up into specialised tasks and farmed out to a team who mechanically "code" their bit of the project).

Most programmes involve on various levels:

I. Language (Grammar, Medium by which concepts are internalized and externalized)

II. Model (Compound Grammatical Structures for Representation)

III. Simulation (Complex Structures for Prediction and Decidability)

In other words -each "programme" represents a theory about how a task can be performed (by man or machine). The practical implementation of the programme is a practical test of the validity of the theory underlying the programme. This means that the construction of the programme is a cognitive process involving linguistic, cognitive and philosophical principles of ontology and epistemology -However, anybody who runs on a computer the result of this cognitive process will actually become alienated from the activity involved -through lack of knowledge of how the process actually works. Programming is conceptually emancipatory -but running un-understandable software is conceptually disenfranchising -and opens up the user to exploitation on many levels. "Software Freedom" had no meaning without true computer literacy -which includes the ability to read and write computer programmes.

Is "culture" a form of "Social Software"?

If computer software are the "operating instructions" that form the "mind" of the computer -then what about the "operating instructions" that underly our daily behaviour on both individual and social levels?

Although we like to believe that a specific characteristic of humans is their flexible behaviour based on creative thinking -every psychologist (and every advertising manager) makes their living based on an understanding of the rule based nature of human activities.

So how can we ever gain intelligent insight into our own (social and cultural) behaviour patterns if we insist on denying the very nature of the way they function?

Perhaps a better understanding and practice of the skills involved in computer programming can form a useful basis for analysing and understanding our own "internal programmes". This is not to suggest that humans a nothing more than machines -but to suggest that we should look at machines in more creative (cognitive language) based ways.

What, for example, is "Nature" -if it is not some form of "organic" machine? So then what might "natural software" look like?

Untangling the Social, Cultural and Economic "Layers":

If understanding software is a pre-condition for "free" software (as in free speech) -then surely an understanding of society is essential for a truly democratic and "free" society: What value has "free speech" if that which is spoken is nothing but a meaningless babble?

However, social structures are highly complex and dynamic. Our culture -with its traditional division between "science" and "art" has problems dealing with multilayered systems of meaning and structure.

One level on which an improved understanding of computer technology by the general public might be socially useful is in not only an improved understanding of systems of intepreted meaning (dynamic models) -but also how to deal with complex organisational systems, biological, social or computationally symbolic.

Art as Software?

So perhaps (whether it uses computer programmes or not) art is (or could be) a form of "social software" -concerned with investigating, expressing and clarifying the social "operating system" -in all aspects of its complexity.

If so, then presumably, it would primarily function threough the exploration (and simulation) of the models and languages implicit in the "social software" active in the artist's environment.

Art as "Free Software"?

So, if art is itself a form of "software" -on what level should we be "free" to use it, modify it and distribute it? How does the "social" aspect of art (and software in general) relate to its "economic" aspect? The concept of "freedom" is itself a paradox -with one person's "freedom" potentially creating "restrictions" and "impositions" on other persons who think, feel or behave differently (and perhaps in conflicting ways)... Then can all forms of "software" be treated in identical ways?

For example, is it possible for the public to be free to reproduce, distribute, run and modify "artist's software" -or would this destroy the very nature of the "social programme" encapsulated within it?

If there is no ownership of meaning and function -then what is to prevent pernicious programmers from adapting well intentioned programmes in ways that are totally contrary to the original authors wishes?

Would Oppenheimer have worked on the atomic weapons programme -if he had known in advance how it would be used against civilians? If those with power have always been free to abuse technology -then will extending that freedom to everybody improve or reduce our chance of survival?

Perhaps true "freedom" requires an understanding of how "freedom" can be abused too. Without software literacy there is no software freedom!

Reply

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.