JuliaMono – a monospaced font for scientific and technical computing
It's not specifically stated, but the assumption seems to be that we should sometimes make our code look closer to how we display math in papers or on a whiteboard.I'm legitimately on the fence about this.I recently re-watched Guy Steele's 2017 PPOPP on "Computer Science Metanotation", and aside from wanting to make CSM an unambiguous formal system, he specifically says at one point that he wants tools to support CSM as it appears (i.e. with stacked overbars, gentzen-style inference rules, etc) because "anything else is a translation".And partly I get that. There is real cognitive work if you have to constantly translate back and forth between two representations of the "same" thing.But should we favor readability or ease of interaction / modification? Keyboards give you a way to insert a sequence of characters. Notations that are not graphically linear (e.g. a symbol that has both a subscript and a superscript) create an ambiguity about how you input them. "Modes" where we display something different than what is typed can create ambiguity about how to edit them.And if a tool only covers 90% of the notational convention you care about, it quickly gets frustrating as you repeatedly bump up against that boundary. I experience this in emacs org mode with "symbol" support.