3 ms·
It's good essay, but there are some theses which I don't know if I can agree with them. He claims that theory cannot be expressed. "(...)the knowledge held by
by hex13 11y ago
It's good essay, but there are some theses which I don't know if I can agree with them.
He claims that theory cannot be expressed.
"(...)the knowledge held by someone who has the theory could not, in principle, be expressed in terms of rules"
Imagine that he is right and programming theory can't be expressed in words. Imagine if this was true.
Imagine there is no GoF book, no established design patterns (design patterns imo are just programming theories expressed in terms of rules...),
Imagine there is no Knuth books (if trees couldn't be expressed in terms of rules, then it would be pointless to write books about it).
Imagine there is no conferences about e.g. AngularJS or React architecture etc.
Because theory is in programmer head and "can't be expressed"
Maybe my thinking is flawed. Maybe Naur meant by "theory" something like "inner insight". If so I would agree with him. I see this quite often. People read books about design patterns and still don't understand underlying principles behind them. They just use them without deeper thinking (and they overengineer code often).
Although Naur wrote this article in context of one program but I think that programmer is building theory not only for current project but also for whole programming field. Programming skills are often independent of technology/project/language).
- vog 11y ago> Maybe Naur meant by "theory" something like "inner insight". I'm pretty sure he means exactly that. A programmery "theory" about the subject is something that goes beyond blindly following documentation or rules. It is something that is taught (or self-taught) over time, rather than executed by following instructions. The author even spent a whole section "Ryle's Notion of Theory" in the article to described precisely what he means by "theory". (More exactly, he describes Ryle's definition, which he is borrowing.)
- mbrock 11y agoNaur's way of formulating that very closely resembles an argument presented by Hubert Dreyfus in his book Being-in-the-World. It's an interpretation of Heidegger, but it's very clear and "analytical." He's even got interesting stuff in there about artificial intelligence, and he influenced several AI researchers. There was even a brief surge of interest in explicitly "Heideggerian AI" which seems to be an origin of the focus now on deep learning and emergent concepts and stuff (though I don't really know the history). Anyway, Dreyfus says Heidegger means that most human knowledge can't be expressed in terms of rules. That's most obviously true if you're talking about something like juggling three balls: you can write a guide, but the guide isn't possibly "exhaustive" enough to explain it so well that a person could simply follow the instructions. And the more detailed instructions you write, the more the learner is just going to be confused. You will need meta-rules for deciding which rule to choose to apply. To actually learn juggling, you just need a very primitive mental description, plus a little bit of coaching from someone who already knows, and a bunch of practice. I'm just getting into Naur's writings a little bit now, and I notice one of his major interests was "programming as a human activity," so I think it makes sense to apply this same "Heideggerian" notion to programming. Naur wants to describe the real knowledge, or let's call it skill, that actually functions in the programmer to understand and modify the program. Rules can only ever be a partial and abstracted "handbook" for aiding the learning of that skill. It's not that rules are useless; it's more that the skill itself does not have the form of a collection of rules. Skimming through Naur's "Antiphilosophical Dictionary," [1] it's obvious that Naur was interested in this tradition of critical philosophy [2] that wants to dethrone the "cognitivist" view of thought. He cites Gilbert Ryle, another analytic postcognitivist philosopher who appreciated Heidegger: > According to the legend, whenever an agent does anything intelligently, his act is preceded and steered by another internal act of considering a regulative proposition appropriate to his practical problem. But what makes him consider the one maxim which is appropriate rather than any of the thousands which are not? Why does the hero not find himself calling to mind a cooking-recipe, or a rule of Formal Logic? Perhaps he does, but then his intellectual process is silly and not sensible. So I think this clarifies what Naur meant by a kind of "theory" not reducible to rules. And in the article itself, he explains that he uses the word "theory" with reference to Ryle. [1]: http://www.naur.com/AntiphilDict.pdf http://www.naur.com/AntiphilDict.pdf [2]: https://en.wikipedia.org/wiki/Postcognitivism https://en.wikipedia.org/wiki/Postcognitivism