Programming Fonts

If you’re going to spend a significant fraction of your life using something, it’s worth spending more money on than you might think. Chairs, beds, and computers all fall in this category.

A similar principle applies when toolsmithing, although with time instead of money. Taking the time to customize your development environment can improve your productivity and reduce frustration. Many developers go hog-wild. They tweak their editors with various plugins and set up fancy shells. But one thing developers often overlook is fonts. Typically, developers use the default font for their terminals and editors. Some will choose one from the list of pre-installed fonts. This is a problem, since few fonts are optimized for development.

A font meant for developers should have certain properties:

  1. Readable at small sizes. Big screens can help productivity. Since laptops have small screens, the only way to represent more information on them is to use smaller fonts.
  2. Easily distinguishable 0 and O.
  3. Easily distinguishable 1, l, and I.
  4. Easily distinguishable , and ..
  5. Centered operators such as =, and *.
  6. Conspicuous parentheses (), brackets [], and braces {}. Syntax highlighters reduce the need for this, but not everything has syntax highlighting. It’s also nice if these symbols are horizontally centered.

The most useful group of fonts I’ve found for programming are the Proggy fonts. Sadly, the site hosting these fonts has died. Fortunately, I had backups. I’ve listed the fonts below, along with screenshots.


Proggy Fonts #

All fonts

Proggy.zip

The author of the these fonts is Tristan Grimmer. He was kind enough to release his work under the MIT License. I would link to Tristan’s site, but he doesn’t seem to have an online presence. Still, I’d like to thank him for designing these fonts. I have found them extremely useful.

Personally, I like ProggyTiny the most:

Proggy Tiny in Sublime Text

Although many find it too small, it lets me fit tons of information on my screen. Even on my tiny 11” Air, I can have a terminal with 225 columns and 65 rows of text:


Proggy Tiny in Terminal.app

Ah, the advantages of keen eyesight!



When commenting, remember: Is it true? Is it necessary? Is it kind?