That's funny, because I have always thought of programs as extremely
    refined arguments.


No.  They are algorithms.  And can be built upon.
Can be built upon in theory, but in practice they are with high probability thrown away and rebuilt from scratch.

Because they are complex linguistic objects which, like philosophers' arguments, are often harder to figure out than to do over from first principles.
Except when they are discarded just because the readers lack the skills and patience to figure things out. In my experience, that's more often than not. In particular, I think programs that endure and grow are unlike algorithms and philosophers' arguments or mathematical derivations. A point is reached where programs become more complex than any one (even exceptional) person can really understand completely. In the form of support code, bug fixes, and algorithmic refinements, they embed requirements and novel use cases that were not evident to designers. Efforts should be made to study, simplify and extend these programs. Meanwhile, efforts should also be made to identify and eliminate abstractions that just confuse people. Whether algorithms or arguments it doesn't really matter. It depends on the programming language. Logic programming languages are more like Wittgenstein and less like recipes.

Marcus

============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org

Reply via email to