I studied hard-core physics for a few years. The idea of inventing notations for thinking about problem spaces was one of the first things I was taught. It appears to me, though, that this message has been lost on the programming community, where only one notation - function-based thinking (C, FP, Clojure, Haskell, Python, etc.) - continues to be strongly enbaubled instead of reaching for and inventing new notations. It seems to be firmly believed that the only way to create and to think about programs is to write them as “functions” (mathematical or bauble-full), as espoused by just about every modern programming language. The more baubles that are added to the original notion of Functional Programming (Lisp 1.5, Sector Lisp) the more we seem to peel away from the reality of how computers actually work (mutation, asynchronous concurrency, time based ordering and control flow)