My Favorite Programming Fonts

Posted under workflow

As a programmer, I spend a lot of time working on the computer. Most of my time spent developing involves using an IDE, text editor, or the terminal. Even when I'm not writing code, I work with text a lot, like writing this article, for example.

In the past, I didn't pay a whole lot of attention to fonts (other than in web design), but I have definitely come around and realized how significant it is what fonts you use in your text editors and terminals. Using a font designed to be easy to read and clear can make the smallest difference in reading speed and legibility. And that difference adds up a lot when you work with text daily.

Over time I've tried out many different fonts; each one has its strengths and weaknesses. Some stick to the traditional Consolas look but with crisper rendering, others have a totally new look at an attempt to come up with the next big thing in font readability. I think it's mostly subjective, but in my experience, some fonts really are better and can greatly reduce strain and increase clarity. Again, working with text over and over makes the font you use especially important.

In case you don't want to do all the font-hunting and experimenting yourself, I will share some of my favorite fonts that I find to be most readable and refreshing. If you don't like any of them, that's fine. Go and find a font that fits you because there's lots out there; just stop using un-anti-aliased Courier before you ruin your eyes.

Source Code Pro

Source Code Pro is a pretty popular font for text editing. Open sourced by Adobe, Source Code Pro is the monospaced, code-friendly version of the very popular font Source Sans Pro.

Source Code Pro

I used Source Code Pro for quite some time before I switched to Input. It isn't very customizable, but it does come in several different weights and supports italics. It's very legible and has a classic feel that reminds me of Consolas.

Input

My favorite on this list, and the font I will be using for the foreseeable future.

Input is a result of an incredible attention to detail and a feat of great design. It flows incredibly well; so well that sometimes I forget that the font was squeezed into a monospace format. For a programmer, it's really important to be able to distinguish similar symbols apart in a split second, like l from I or 1. The designers of Input took special care to make sure that is the case.

Input Mono

Input offers tons of styles and can even be customized when you download it. It has several different weights and styles and supports italics. It also boasts very good support for a wide range of Unicode character and terminal formatting characters, such as Powerline symbols.

An interesting idea behind Input is the creators' advocacy for proportional fonts in coding. Most editors don't seem to handle proportional fonts too well, so Input comes in three flavors: Input Sans, Input Serif, and Input Mono, which is essentially the monospace version of Input Sans. All three are programmer-friendly fonts, but I use Input Mono because the editor support for proportional fonts just isn't there yet.

Inconsolata

Inconsolata is an open source font inspired by Consolas, a popular (and really nice) monospaced font by Microsoft that comes with Windows and Office. Consolas is the default font in Visual Studio, and for good reason -- it looks good.

Inconsolata

Inconsolata draws a lot from Consolas, so if you're looking for a free alternative that you can use in Linux, then Inconsolata might be for you.

Courier Prime Code

A modern remake of Courier, Courier Prime is a set of fonts that re-imagine the original Courier font with modern features and variations. Like Source Code Pro, it maintains a very classic look while incorporating quality subpixel rendering and extensive Unicode support.

Courier Prime

Supports a wide Unicode range and has an italic variant. The Courier Prime fonts are completely free under the SIL Open Font License (OFL).

Monoid

If you like really sharp fonts that work well under 9pt, then Monoid is an excellent choice. It is open source, supports ligatures, Powerline symbols, and has several styles and settings that can be tweaked when when downloading.

Monoid

I haven't personally spent much time with Monoid, but it looks really good and I've heard some really positive things about it. And it has over 2,000 stars on GitHub!

Hermit

Hermit is probably the most unique font on this list. It has a personality of its own and is pretty quirky. I was skeptical when I first saw it, but it is surprisingly very readable and easy on the eyes. It really shines at small font sizes, where every normal character is still easily distinguishable, thanks to the blocky design.

Hermit

Hermit is open-source, supports the complete Latin-0 character set, and has dedicated Powerline symbols. It also features three thickness variations to suit your tastes.


Of course there are other fonts out there. If I didn't list your favorite, it's not because I think it's bad; these are just my favorites. For the sake of those who are still looking for a font to stick with, please share the fonts you use with others.


Edit: Noted that Input Mono and Monoid come with Powerline glyphs.

Top