Well, I know it’s been done before, more than once, but why not do it again! Programming fonts… a topic worth revisiting.
So 2 days ago I decided it was time for a new font and, it seems that each time I do that, I waste a whole day trying out different ones, at different size, without ever being completely satisfied.
Finding a suitable font can really depend on what platform or even which editor your are using. Mac OS X’s font rendering looks quite different than Window’s ClearType, some think that OSĀ X fonts are too blurry, and I gotta admit that before I had to spend some time on a Mac, I was of that opinion. After a while though, I got used to it, to the point that I can say that Monaco in Textmate is one of my favorite font/editor combo…Unfortunately, anyone who tried Monaco with Windows editors (E Text Editor or Intype) will quickly realize that, without the “blurry”, bolder OS X rendering, it really doesn’t have that same impact.

That being said, I spend most of my time developing in Windows, and Monaco is different to the point that I don’t really like it with ClearType.
There are several options, depending on what is important to you… for some, the ultimate criteria for a programming font is to fit as much text as possible on the screen, while still being readable. For that purpose, bitmap fonts are the best option. There are a bunch of good, free ones out there and here is a brief list of the most popular one:
As I said, Bitmap fonts are particularly effective if you want to have as much text as possible on your screen since they look their best at small (sometimes tiny) points (9pt, 8pt… sometimes even 7pt) and are still easy to read.
Personally, I don’t really mind having a font that can display 50 lines instead of 72 if I like that font better. I don’t mind having to use the scrollbar or the incremental search, which is why I prefer traditional (i.e. non-bitmap) monospace fonts. Again, there are a bunch of options in this category and I’m only going to list a few (mostly those that I’ve tried). They are somehow in a preference order, the top ones being the ones I like the most…
- Envy Code R I tried that one before and although I liked it, I thought the coma “,” and the dot “.” were too similar. Well this has been fixed in the latest release (Preview 7) and it is now my main programming font. It reminds me of Pragmata (which I LOVE) but it’s free! It looks good no matter the size but personally I think it looks its best at 10pt.
- Consolas is a very popular choice and it’s easy to understand why. The font looks gorgeous, it’s very easy to read, it works well with ClearType and it has some style too!I really love the double-loop “g” (I know that most people prefer a single loop). I still switch to Consolas every once in a while.
- Pragmata is also one of my favorite, but I can’t really say that I love to work with it since I never bought it, so I can only judge from what I see on the site.Unfortunately I find the price to be a bit steep (although I know that quality fonts usually come with a high price tag). I just think that with all the free options available, you really need to have something special to charge 90euro for a programming font.
- Another great one is Anonymous, a free TrueType version of Anonymous 9 (a Mac font). I love the style and personality of Anonymous and I use it from time to time, however, it is a bit different than what I am used to.
- A lot of people like Inconsolata, released under the Open Font License (OFL), it is inspired by Consolas and TheSans (both from genious type designer Luc(as) de Groot). Although I love Inconsolata and used it for a while on XP, I always found it to be kind of blurry with ClearType turned on. I think it has been fixed in the latest versions though and if that’s the case, Inconsolata would definitely be among my favorite fonts.
- Of course it’s impossible to forget Bitstream Vera Sans Mono (or the extended version DejaVu Sans Mono). If I’m on Linux, it is my font of choice for programming. They are easy on the eye, they look good for a monospace font and they are both free and available on most linux distribution nowadays.
- Another interesting free/open alternative is LuxiMono, originally designed as an X Window System, but I think it hasn’t been updated in a while (unless I’m mistaken..?)
- Finally, it’s impossible to write about programming fonts without mentioning Courier/Courier New. It’s available on any windows installation and it will usually be the default monospace font in a lot of Windows editors. Personally I don’t like coding with a serif font so I usually avoid it but a lot of people still swear by it.
So, to sum it up. Right now I am switching between Envy Code R and Consolas when on Windows. On a Mac I use Monaco as I think it looks gorgeous with OS X’s font rendering. When on Linux, I use Vera Sans Mono or DejaVu Sans Mono. As for the size, I usually switch between 10pt and 11pt, depending on the editor/font/OS…
I’m sure there are a lot more great programming fonts and I would love to hear people’s opinion about that as I always love to try out new ones!