What do you want out of a coding monospace font?
There are a lot of great fonts out there, but what's missing?
On my list:
- show nonprintable / zero width characters
- "relaxing" vibe? - Being easily able to tell the difference between characters that are otherwise similar (such as O vs 0 and l vs 1 vs I) - No ligatures and no kerning (a monospace font should not have these features) (The two above are perhaps the most important (and I think are probably already common enough); the below are less important but still might be good to have) - Bitmap font for on screen, and also scalable fonts suitable for printing - Versions of fonts for different character sets (such as ASCII and APL and PC), without using Unicode or other unified character sets - Possibly, glyphs for control characters (if it is PC character set then it already does, since they are graphic characters with the same codes as the ASCII control characters; another alternative if not the PC character set, is to use ISO 2047) - Visible: tabs, trailing spaces, spaces that are mixed with tabs, line continuation, page breaks (this is more of a feature of the editor or display rather than of the font, although a font might include glyphs specific for this purpose with special character codes) Wide range of weights (light to bold). Iosevka did a good job of making paper thin to thick sumo. Sometimes I like to use a very dark theme and crank up the font size. Thick fonts become blinding light. So I need thin variants to dim them down. This ties into "relaxing". When you zoom in to only ~28 lines on screen you are more focused on the relevant section, present in the moment. Relaxed not worried about the 50+ lines that no longer fit on screen. Clear distinction between numerals and letters. O and 0, 1 and l, S and 5. Also distinctive punctuation. '.' and ',' are too similar in a lot of typefaces. How to quantify which font is "best" is a tricky question. I do flip through available programming fonts on occasion just to see if something feels right. A recent favorite is Monaspace Neon from Lettermatic. One detail actually is that I find I like zeros that are noticeably different than an uppercase letter 'O'. In Monospace Neon for example the zero has a dot in the middle. Not like I need it for coding but technically or graphically I like the idea of fonts that have double with for CJK characters and it all tiles nicely. I want that it looks good. Nostalgia vibe Box drawing glyphs that line up correctly. Easily scannable like Maple Mono Readability and good looks.