It has been said that being formal forces one to be honest. But I think it does more than that: by leaving nothing implicit, formal expositions also force the author to really
understand what he/she is saying, to iron out one's contradictions and "semi-contradictions" (e.g. the Nixon diamond
).Gerald Sussman and Jack Wisdom, about their computational exploration of classical mechanics:
When we started, we expected that using this approach to formulate mechanics would be easy. We quickly learned that many things we thought we understood we did not in fact understand (1). Our requirement that our mathematical notations be explicit and precise enough that they can be interpreted automatically, as by a computer, is very effective in uncovering puns and flaws in reasoning (2). The resulting struggle to make the mathematics precise, yet clear and computationally effective, lasted far longer than we anticipated.
We learned a great deal about both mechanics and computation by this process. We hope others, especially our competitors, will adopt these methods, which enhance understanding while slowing research.
A few comments:
(1) It's probably safe to say that most physics professors don't understand those things either
, unless they have undergone similar formalization efforts. Scientists' expertise is usually correct with regard to the particular exemplars that they study and similar systems, but, unless their understanding is really thorough, there will be examples in which their expertise will not generalize correctly.
There are many cases in which physicists' intuitions get tangled up (see, e.g. Feynman's inverted underwater sprinkler, or even the infamous Monty Hall problem), but these are the lucky cases
, since a problem got detected, which subsequently led to the debate: but, in general, if we're going to just rely on intuitions, this could lead to plain oversights: we might never even suspect that we're wrong.
The solution to such shameful persistent disagreements is to have a formal framework for reasoning about such problems: the solutions to these problems are logical
consequences of widely agreed-upon laws, but disagreement persists because there is no standard formal framework in use, and learning a new framework would be too steep a learning curve for most scientists. My guess is that we could settle many interesting questions just by checking whether they are in the deductive closure of different combinations of theories.
(2) I like the expression "puns in reasoning"
, because it's a very good analogy: in fact, I suspect that many errors in scientific reasoning come from a certain sloppiness in using words to denote concepts, which is like using the same name for different variables in one's mind. The cognitive practices of being careful not to confuse concepts are very similar to good programming practice.On the costs of being formal:
Formality might be an unnecessary burden for those who have a good intuitive understanding, but I think it is generally worth the trouble. It is certainly a much greater burden on those who don't understand.... and how this relates to me:
Anyway, I think this tendency towards thoroughness makes me a rather slow researcher. Being eternally skeptical, interested in foundational questions, and unwilling to proceed without a solid understanding, I have always tended towards the "enhance understanding" side of the trade-off. It's hard to make fast progress in one's research when you're questioning your teachers' assumptions or trying to reformulate it in different terms or seeking analogies with other ideas (which are other ways of making one's understanding more solid).
I'm reminded of my high school physics teacher saying in my college recommendation letter that I was good at deriving things from first principles... I also think it's unusual for professors to recommend a student to "just memorize the formula", "just learn the cookbook". My grades have certainly suffered from ignoring such advice.
~ "In general, I feel if you can't say it clearly you don't understand it yourself." - John Searle
... I'm looking for another relevant quote about programming being "universal". Possibly a Dijkstra quote. Anyone?