As a self proclaimed programmer/designer I enjoy not only the logical and practical things in life, but also the beautiful and well designed. And I find the greatest pleasure when these things converge to produce something extraordinary.
One such thing is Typography. Typography is the art of language, the visualization of the spoken word. A medium by which non-verbal communication is made possible. And though I profess no expertise in this art, I have come to deeply appreciate it’s power and ability to convey the same message in so many different ways. Each with a unique feeling and style.
The Messenger
In 1956 Howard Kettler designed the typeface Courier. It was made for IBM’s new (and revolutionary) line of electric typewriters. Originally called “Messenger”, Courier is one of the earliest fixed-pitch (also known as Monospace) fonts, meaning each character takes up the same amount of space on a line; allowing for easy tabular alignment and legibility.

Courier was a hit, and as many made the transition from typewriter to computer, this classic typeface wasn’t far behind. It was included in all early Apple computers, and while creating the core fonts for Windows 3.1, Microsoft hired Monotype Typography to give Courier a makeover. And so Courier New was born, as a thinner and cleaner version of it’s former self.
Future Type
Fast forward to the present day, and Courier New is now the de-facto standard for almost all programming IDEs on Windows. It was the default font for Notepad, Visual Studio, and many other text editors and compilers, paving the way for many more typefaces to come.

Courier New is a great monospace font. It’s thin, clean, and quite readable.
For the longest time, I used Courier New. It never really occurred to me that there were other options (aside from proportional width fonts; but who programs in Times New Roman?). I just used it, and it worked well enough.
Change
Now when you’re working on a program, website, or any other body of code, there’s only one thing you’re really looking at. Text. And lots of it. So naturally it’s important for the text to be easy to read and comprehend.
In most cases your editor of choice will use syntax highlighting, changing the colors of various pieces of code, making it easier, for example, to visaully separate your strings from your function definitions. You saw an example of this in the image of Courier New above.
Syntax highlighting is great. But no matter how well your code is marked, it can never make up for a well thought out typeface. One that is properly spaced, has distinct and readable characters, and is flexible at various sizes.
Five Typefaces for Programmers
I’ve compiled below five of my favorite fonts for programming, along with an image, and brief history. I hope you find this list useful. And I encourage you to try them out for yourself (I will provide a download link where possible). Maybe you’ll be surprised with what you find.
- Consolas

Just as in the days of Windows 3.1, Microsoft has again invested in the creation of new fonts for their latest operating system, Windows Vista. Consolas is just one of the many that were made.
Designed by Lucas de Groot of Fontfabrik, Consolas is easily my favorite font for programming. The characters are compact, yet distinct. For example, it’s easy to tell the difference between the letter O and 0 (Zero), and having been designed to take advantage of ClearType Hinting technology, Consolas is almost guaranteed to look great, even at small sizes.
Download Consolas » (Comes with Microsoft PowerPoint Viewer 2007)
- Andale Mono

From Microsoft:
Andale Mono is a highly legible monospaced font. Looks like Monotype.com? Yes, this font was originally distributed as part of the Internet Explorer 4.0 add-ons page as Monotype.com. We’ve decided to revert to the font’s original name, Andale.
Created by Steven R. Matteson, Andale Mono was the second monospace font I used after leaving Courier New. It is, as Microsoft says, very legible. Though I find it more rigid than fonts like Consolas, or Courier. It too distinguishes well between the zero, and the O. And it certainly had me satisfied for quite some time. So why not give it a try yourself?
Download Andale Mono » (Available as one of Microsoft’s core fonts)
- Courier New

We already spoke a bit on the history of Courier, and it’s New counterpart. And though I may not use it much myself anymore, there’s no doubt that this classic font will forever remain in my memory. It set an example for other typefaces, and it’s got the history to prove it. Love it or hate it, it’s here to stay.
Redesigned from the original Courier by Adrian Frutiger, Courier New was a staple of modern printing and typewriting. Nowadays it’s still popular on the PC platform, though it doesn’t distinguish too well between zero and O, Courier New is very clean and thin font that just might fit your fancy (and perhaps it already does).
Download Courier New »
- Lucid Console

The monospaced member of the Lucida family. Lucida Console is another font that I used for quite a while.
Designed by Bigelow & Holmes, Lucida Console is a pleasant and vertically compact typeface. Though it unfortunately lacks much distinction between zero and O, Lucida Console is great for those who wish to fit lots of text on their screen, and works great at small sizes. And as the name suggests could be used for a console or terminal display.
No download of Lucida Console is available, though I believe it is a standard font on Windows XP/Vista
- Bitstream Vera Sans Mono

To be honest, the best way to describe this font is as a better Lucida Console, it has a slightly larger line-height and it does a better job of distinguishing the zero and O (if you haven’t already noticed, that’s an important criteria), if you like Lucida Console, then you’ll feel right at home with Bitstream Vera Sans Mono.
Download Bitstream Vera Sans Mono »
That’s all folks
So there you have it. I hope you found something new or enjoyable in this article (if you did, please subscribe for RSS updates!). Let me know what you think, and what font you use for your own programming work.
For more information