As a professional software developer, looking at source code has been a huge part of my job for a couple of decades now. It’s really, really important that the display I’m looking at is sharp and properly color-calibrated for appropriate contrast, and that the font I’m using is clear not only when reading letters, but also when displaying various special characters that are commonly seen in source code (so that things like { and } are obviously different from ( and ) and [ and ], and so that @ is clearly different from & or * or %.).
For this reason, every few years I check out the latest and greatest “programmer fonts” and see which one will let me make the type really small while still being clearly legible, so I can get lots of source code on the screen at once.
Read on to see my current favorite programmer’s font, and the ones that I think are almost as good.
The main criterion I have for a font is that it be clear even when small, so that I can reduce the size of text to get more of it onto the screen while still leaving the text very legible. This means that fonts that are even slightly fancy are not worth considering. All of the programmer’s fonts I end up using are very similar, with minor differences in how certain glyphs are shaped, and subtle differences in line weight, kerning, and leading.
The fonts I like best right now are:
- Tied for first place:
- Menlo Regular 10 – This is a font that is included with Mac OS, and is similar to the excellent Monaco font that has been available in all versions of Mac OS.
- Hack Regular 10 – This is a free font (downloadable here) that looks very very similar to Menlo.
- Inconsolata Regular 12 – This is also a free font (info here, download here). It’s a bit looser vertically (possibly just more space between lines?) than Hack and Menlo.
- Monaco 10 – This is another Apple font, and is excellent. It’s also a bit looser than Menlo and Hack vertically.
All four of those are extremely similar and work very well.
For even tinier sizes, Monaco 9 and Inconsolata Regular 11 are still quite legible, though I find this a bit uncomfortable: at this size, a lowercase f is seven pixels tall. Hack and Menlo are a bit too tightly-spaced vertically at this size. (The IDE I’m using doesn’t let me tweak leading, so maybe I am putting too much emphasis on default line spacing, but switching fonts is currently the only way I can affect this.)
Some other fonts I did not try this time around are Microsoft’s excellent Lucida Console (not free), and the open-source DejaVu Sans Mono (see here for a comparison of DejaVu Sans Mono with Menlo; they’re extremely similar). Both are quite good.
Some other fonts I liked, but didn’t find to be quite as legible at tiny sizes on a regular-DPI display:
- Fira Mono 11
- PT Mono 10
- Roboto Mono 10
- Source Code Pro 10
Finally, the fanciest programmer’s font I saw, which wasn’t as legible to my eye but sure is pretty, is Monofur. This is a very nice looking typeface, sort of art-deco in its styling, but seemed a bit busy at small sizes. Interestingly, it’s apparently the monospaced variant of a font called Eurofurence, which has the same name as a European furry convention. So you can say “I use a font named after a furry convention!” if you use Monofur.
As this is not one of my criteria, I shall stick with Menlo and Hack for now.