4 ms·
As someone you'd probably put into the latter camp, I find your thought really interesting; is notation actually a tool for thought? It's definitely a tool for
by michaelscott 7y ago
As someone you'd probably put into the latter camp, I find your thought really interesting; is notation actually a tool for thought? It's definitely a tool for communication, and it does so in an efficient manner for the initiated, but thought? I don't know many researchers who use notation exclusively (or much at all) in their thought and ideation processes, even if their final papers are full of it.
Regardless of that I think the problem with these guidelines is they just don't produce very readable code, even if I am initiated. The lack of an autoformatter also means that I have to adapt to a different contributor's code style every time I open a file. Why devote mental energy to interpreting yet another style instead of devoting it to parsing the actual content? Again this kind of circles back to the notation problem.
- beagle3 7y agoThe concept of “notation as a tool for thought” originated with Iverson (father of APL and J, among other things), and I highly recommend reading his writings (all available in the jsoftware web site ang through google). The main feature that terse code provides is that it lets you use your eyes and brain hardware for pattern matching. The magic of that is sometimes hard to believe if you haven’t experienced it, but for some of us it has become indispensable. The right notation makes things evident. Compare e.g. Leibniz derivative notation (dy/dx) to Newton notation (y’); The former extends to partial differentials, whole differentials, divergences etc and often (but not always) hints at possible solutions and reductions - where as Newton’s notation requires that you remember (or continuously look up) everything. While “sz” as short for “size” is not such a huge difference, it does let you fit more on screen and thus visually pattern match. It’s the logical extension of writing “x” instead of “horizontal_coordinate” and “i” for “enumeration_index”. Similarly, the right indentation (lining up related items) exposes a lot of semantics in an easy-to-grasp and visually-grok way, that autoformatters ruin (those I’ve used anyway). Your code might not benefit from this, e.g. if you do crud stuff. But I do mathy and video processing stuff and it makes a huge difference for me and my collaborators. There is an underlying assumption that the people who actually write the code/notation actually know what they are doing and how to communicate that well - which is entirely non trivial - but I’m privileged enough to have that environment. Apologies for typos, am on phone. EDIT: Iversion's "Notation as a tool of thought" https://www.jsoftware.com/papers/tot.htm https://www.jsoftware.com/papers/tot.htm