(no title)
hxa7241 | 12 years ago
On one hand, a 'theory' is described as something completely internal and irreducible: "the theory, is not, and cannot be, expressed" (quote from PATB)
But on the other hand, a 'theory' is applied to external objects: "if viewed in relation to the theory of the program these ways [of changing it] may look very different, some of them perhaps conforming to that theory or extending it in a natural way, while others may be wholly inconsistent with that theory" (quote from PATB)
These cannot both be true. A 'theory' cannot be wholly internal if it is applied to things. If something external conforms to it to some degree, then that thing is to that degree an expression of the 'theory'. What else is an expression? And, a 'theory' cannot be irreducible if it applies to things that are reducible. If it matches something -- like software -- that is complex and determinate, it must itself be analysable into determinate properties or patterns or structure.
Since 'theory' is used to make actual software -- something that can fit or diverge from it -- 'theory' must have a substantial, and complex, objective part.
So instead of this confused term 'theory' we should think of something like a material: programming is the engineering-design of structures in a particular abstract 'material'.
That does not change the article's conclusions about programmers not being 'replaceable components of production'. But it gives a better viewpoint of the activity: not merely some obscure inaccessible idea of human thought, but some lead on the part of it that is objective and that we can get hold of and hopefully build some understanding of.
mjburgess|12 years ago
You seem to have confused expression with application. A person unable to speak but merely point is unable to express (that is, define precisely) what it is that causes them to point to, say: a red brick, a red door, a red pencil. However in their activity of pointing, that is, in their application of an unexpressed principle we can infer a "theory".
Naur's point is that a "theory" in his sense is a purely mental, immediate, intuitive ground for the understanding of a problem. It is the "red" in the above example, and as we cannot explicate red (only point to it) we cannot express the theory.
>If it matches something -- like software -- that is complex and determinate, it must itself be analysable into determinate properties or patterns or structure.
No. The mind is not a computer program. Mental models are not immediately accessible, completel and transparent to conscious thought, nor are their relations, nor are they "comprised" of anything simpler than more thoughts.
The theory doesnt "match" the computer program, the computer program is a symptom of the theory. The theory is how a problem is understood.
>Since 'theory' is used to make actual software -- something that can fit or diverge from it -- 'theory' must have a substantial, and complex, objective part.
I dont know what this means (nor much of your comment to be honest), but i suspect you're making the same error as above: that the (physical) products of mental activity reveal or constrain the nature and structure of that mental activity.
hxa7241|12 years ago
Imagine you are 'building' one of these 'theories', to make some software. How do you know it is correct? The only way is by testing it against the world, and to do that it must be expressed. And any part that is not expressible cannot, for that reason, be a usable part of the 'theory'. (It is more basic really: a 'thing' in your mind, that cannot be expressed, is not really a 'thing' at all.)
The reason programmers are not simple replaceable resources is not because some kind of 'theory' thing is not expressible, but because making software requires certain significant practicalities of effort, knowledge, and skill.