5 Dec 2022
I'm well aware that I may have a bit of an obsession with fonts. I don't think that's too unusual for someone who works in tech, however. Sites like Programming Fonts exist to let people test drive and compare a bunch of different fonts. Just for fun, I thought I'd write up some of the features I look for in a programming font that I've come to deliberately pick out.
Critical letter forms:
These are probably the most important letters to get write in any font that's meant to be hyper-legible: lowercase
l must be easily distinguishable from an uppercase
I or the number
1, and the lowercase
i should stand out nicely as well.
I like to foot of the lowercase
l to be curved to more easily distinguish it from the number
1. For example, this is what the letters look like in my Iosevka Output build:
I find that that helps readability. I go back and forth as to whether or not I like the foot of the lowercase
i to be likewise curved. My current font doesn't have that set, but I used to configure Input Mono to work like that.
Zeros must be distinct from capital
O. That's usually pretty easy for a coding font to get right. I personally like the slash—I think that's what I grew up with. Nothing wrong with a dot though.
I like double-storey
g rather than their simpler counterparts. A single-storey
a looks a little too much like a lowercase
o, and I find the
g without two loops looks too much like a lowercase
Narrow fonts appeal to a lot of people. I don't get it, however. I like how gentle an extended font is on the eyes. One of the reasons why I liked Input Mono so much was because it had nice, comfy, wide characters. Compare the readability:
I find the wider font to be much more readable.
Nope. Just nope. I like to see exactly what characters are in my files. See Matthew Butterick's take for more reasons why.