I have just enjoyed reading a very nice tutorial paper on Functional Differential Geometry, by Sussman and Wisdom. It is written in the same spirit as an earlier paper with the provocative title, The Role of Programming in the Formulation of Ideas.
One of their basic claims, actually elaborated in great detail in the latter paper, is that many scientific ideas are somewhat fuzzy in the way they are usually taught and communicated. For instance, when one derives equations of motion in the standard Euler-Lagrange method, one is glossing over many potentially dangerous issues – including (in)dependence of variables with respect to which one is differentiating, the region of applicability of the relationships, etc. The proposed solution is to explicitly implement everything in a program, preferably a functional program, so that the fuzziness is exorcised. All this is great, of course, but since I read the ‘Formulation of Ideas’ paper many years after first encountering the E-L equation, I was not sufficiently confused to truly appreciate the power of this argument.
Today, when I revisited the differential geometry paper, I was trying to come to terms with the meaning of many of the concepts – such as what exactly does a connection mean from the point of view of learning the dynamics of a system. So, on this pass, I greatly appreciated their approach. In fact, I suspect that the real power is not even in the programming of the concepts but in the operationalizing of the abstract concept in terms of something concrete – so that I may first start from the scaffold on which to build the grander structure.
The next time I need to understand an abstract concept, I will be that much more inclined to somehow code it up…