Many programmers are passionate about their text editor. They will spend longer choosing the optimum font and color scheme than they would decorating their house. An editing font is a very personal choice and, given the hours spent at the screen, it needs to be something the programmer is comfortable with. There are no hard and fast rules, but:
- bitmap/raster fonts tend to render better on screen
- monospace fonts normally offer better character identification, but
- proportional fonts take less screen space and can be a little easier on the eye.
(Tip for SciTE users: press Ctrl+F11 to toggle between a proportional and monospace font. I wish more editors offered that facility.)
Here is a list of great programmer fonts for those of you who steadfastly refuse to believe in anything beyond Courier New. All but one of the examples use 10-point text, but they may look better at other sizes.
1. Arial
One of core Windows fonts, Arial is often overlooked, but it is a clear and readable typeface. It can be a little difficult to distinguish between uppercase i / lowercase L and nested single/double quotes but that can be said of many proportional fonts. Most systems have it installed, but Arial is also available from SourceForge.

2. Bitstream Vera Sans
Bitstream Vera is a free font developed for the GNOME project but is available on other platforms (download Bitstream Vera).

It is a great-looking typeface and, personally, I prefer it to…
3. Bitstream Vera Sans Mono
This is a monospaced version of Bitstream Vera Sans which many programmers will prefer. I find it a little wide, but characters are certainly easier to identify. It is available in the Bitstream Vera Sans download above.

As an alternative, you might prefer DejaVu Sans Mono; it is based on Bitstream Vera but offers a wider range of characters (download DejaVu).
4. Consolas
Consolas is a relatively new Microsoft font that is installed in Vista or available as a separate download. It is a very clear and compact monospace font and is being used by more developers.

5. Dina
Dina is my favorite monospace font and, for clarity, it is hard to beat (download Dina). It is available in 8, 9 and 10-point text sizes and looks great on any system.

6. Lucida Console
Microsoft likes Lucida Console: it is the font of choice for Notepad and the Blue Screen of Death! It reminds me of a sans-serif version of Courier New, but certainly looks better.

7. Lucida Sans
If Lucida Console is a little too chunky for your tastes, try Lucida Sans. The font has been provided with Microsoft Windows and Office for many years and is a compact, practical font that looks very attractive.

8. Monaco
Monaco started life on the Mac and is one of the more popular fonts on that platform (download Monaco). I find it a little too fancy on Windows but many developers will disagree.

9. MS Sans Serif
Perhaps this is slightly controversial, but it is my default font of choice. MS Sans Serif was introduced in Windows 1.0 and used to be known as “Helv”. It was the default Microsoft system font until they replaced it with Tahoma in Windows 2000. The font was also used in the early MS Office VBA environment and that was where I became overly familiar with it!
The font is similar to Arial and suffers from the same issues, but I find it a little clearer. Although I have tried to move away from MS Sans Serif on several occasions, I always eventually return.

10. Proggy fonts
The Proggy collection contains small monospace bitmap fonts that maximize the amount of code you can view on-screen (download Proggy). It has been designed for programmers so it does not exhibit the character problems of other fonts. For Notepad fans, there is also a version that provides bold punctuation and brackets within the font itself.

Have I listed or missed your programming font of choice? Do you insist on programming in 6pt Wingdings? All comments welcome!







Personally, I think using non-monospace fonts for programming is a bad idea, especially because it makes it hard (impossible?) to line up bits of related code and comments. This seems to be a very Windows-centric blog post, but I personally use Inconsolata as my default font in BBEdit (Mac OS X) – http://www.levien.com/type/myfonts/inconsolata.html.
May 1st, 2009 at 2:51 am
I switched to Consolas when it was first released and simply love it for its clarity and readability. I install it on all my boxes I might work on – MS did something right with this one :-).
May 1st, 2009 at 2:53 am
I’m gonna have to give Proggy a look – personally have never heard of it before and I’m always trying to streamline screenspace as much as possible. Thanks for the great read!
May 1st, 2009 at 3:01 am
The Proggy fonts link is down, Any mirrors?
May 1st, 2009 at 3:10 am
@Derek
All the fonts should be available on most platforms although, yes, I have listed some Microsoft ones.
I’m not so sure monospaced fonts are the only ones you should use for programming. They’re handy now and again, but I still prefer proportional fonts for readability and taking less screen space. Ultimately, use whatever makes you more productive.
May 1st, 2009 at 3:12 am
I’ve been using proggy clear for ages, but I might try Dina or Consolas. I’ve never been a fan of Arial for coding. The letters look too squished up to me.
May 1st, 2009 at 3:16 am
Ludica Console or gtfo
May 1st, 2009 at 3:20 am
I find Andale Mono really good.
May 1st, 2009 at 3:44 am
Anonymous is my best, a TrueType monospace font, nearly perfect.
Available at: Anonymous
May 1st, 2009 at 4:05 am
fixedsys is missing :)
May 1st, 2009 at 4:21 am
Whoooaaa… hang on. Kerned fonts for programming is a very bad idea. I’m largely echoing #1, Derek… but it makes it very hard to vertically distinguish related lines of code. Monospaced fonts should be the law.
I’d also like to recommend Inconsolata (like Derek, again). Been using it for a coupla years, and my eyes love it, and I suspect it loves my eyes back :)
I’ve configured my Mac’s terminal to use it, antialiased, and long sessions coding in Vim (cos I kick it old school) are a pleasure.
P.S – Inconsolata works great on Windows too.
May 1st, 2009 at 4:31 am
Should be in de the list too: Andale Mono.
May 1st, 2009 at 4:34 am
I’ve been using Lucida console for a long time. Now you tell me it’s Microsoft’s font of choice – i’m going off it rapidly. ;p
Seriously though, i find a monospace is best for programming, and Lucida is pretty clear, you can tell the number 1 from l and 0 from O, so it suits me best…
May 1st, 2009 at 4:38 am
Envy Code R. Hands down. Made by a programmer, for programmers. http://damieng.com/
May 1st, 2009 at 4:50 am
How can you change the font Notepad or, in my case, Notepad Professional, uses?
May 1st, 2009 at 5:02 am
I can’t believe this is actually an article. These are the real questions that need to be asked. :)
May 1st, 2009 at 6:05 am
What about “Liberation Mono” (the default Ubuntu monospace font)?
May 1st, 2009 at 6:38 am
Consolas ftw
May 1st, 2009 at 7:20 am
Monaco at 14px in BBEdit is extremely readable for writing code or poetry or whatever. Punctuation and spaces and all letters and numbers are clear and unambiguous. Monaco also has a touch of a handwritten feel that looks good in code to me. Sort of like the words in a blueprint.
I feel that it is worth moving to a Mac as a developer just to get the good text rendering (development being so text-based). When I get code from Windows developers there are often many extra space characters where the developer put in 2 spaces here and there to separate something because he or she thought there was no space there at all due to Windows font rendering. Like there’ll be 2 spaces before every capital T. It’s crazy. I used to think it was just that Windows-based developers were much sloppier than Mac-based, but when I saw that same code on Windows I couldn’t see the extra spaces anymore and I realized the developer was doing their best with a tool that is not up to the job. I mean, showing monospaced text? A computer ought to be able to do that accurately.
Not to mention how hard it apparently is to make a clean UTF-8 file on Windows. It must be hard, because only a minority of Windows-based developers send me clean UTF-8 text files. (UTF-8 has been the text-encoding standard of the World Wide Web for 10 years and ISO standardized for 9 of those. Get with the program.)
Another advantage for coders on the Mac is you can automate both the Mac and Unix environments right from your text editor. I have AppleScripts that configure Apache2 in various ways using BBEdit.
May 1st, 2009 at 8:07 am
Great article Craig. It is probably one area of programming that I have never concerned myself about. Whatever editor I am using, I just generally stick with the default settings of that editor.
This article has opened my eyes to some experimenting….thanks.
May 1st, 2009 at 8:52 am
I’ve tried a few different fonts in the past, but I also seem to find my way back to Courier New.
May 1st, 2009 at 9:35 am
I’d agree, Derek; it’s just easier to read monospaced fonts for development stuff. It also makes it really easy to do column selections and whatnot when you need to do so.
And that’s why we shouldn’t use them for development.
One of the things I love most about Monaco is now nice it looks at 10pt when anti-aliased. For development work, Lucida Sans Typewriter also poops on Lucida Sans from a great height.
May 1st, 2009 at 10:06 am
Pragmata (http://www.fsd.it/fonts/pragma.htm) is the best damned programmer’s font there is. Sure, you have to pay for it, but why shouldn’t the designer actually be remunerated for their efforts?
May 1st, 2009 at 12:56 pm
http://damieng.com/blog/2007/11/14/droid-sans-mono-great-coding-font
Best font evar! Seriously. I don’t know how it didn’t make the list.
May 1st, 2009 at 2:24 pm
Droid Sans didn’t make the list because I’d never seen it before! Great font though – and so is EnvyCodeR (linked from that page).
May 1st, 2009 at 3:24 pm
Instead of Bitstream Vera, you should consider DejaVu. It is an open source version of Bitstream Vera and contains much more of Unicode than Bitstream.
DejaVu is available at dejavu.sourceforge.com
May 1st, 2009 at 3:43 pm
I’ll stick to the default.
May 1st, 2009 at 9:15 pm
Envy Code R. AND/OR Anonymous
The 2 best programming fonts I ever found.
May 1st, 2009 at 10:32 pm
monospace good, non-monospace bad, all other considerations irrelevant. Next? :)
May 1st, 2009 at 11:41 pm
I have used “clean” for a few years now, both on my linux laptop and on a large screen. It’s neat and monospace, pretty much all I need. The X11 font name is
-*-clean-medium-r-*-*-13-*-*-*-*-*-*-*
May 2nd, 2009 at 12:45 am
You claim Arial is a “clear and readable typeface. It can be a little difficult to distinguish between uppercase i / lowercase L and nested single/double quotes”.
How do you reconcile these two adjacent sentences? Wouldn’t a “clear and readable” typeface for programming be one like Monaco where it’s *easy* to distinguish between completely different characters?
May 2nd, 2009 at 1:11 am
My latest favorite is ProFont. Its free and growing in popularity among programmers.
I’m on a phone an can’t paste a link — just google it. Tobias Jung has a nice demo site set up.
May 2nd, 2009 at 1:16 am
Firstly, using anything other than a monospaced font for coding is just crazy. I tried a few of the top fonts here and like others, found myself reverting back to Courier New.
May 2nd, 2009 at 1:36 am
love Love LOVE Dina. Clear, mono-spaced, and low-frills.
May 2nd, 2009 at 3:07 am
@Puzzled
Because uppercase i / lowercase L and nested single/double quote problems don’t occur often enough to be a massive problem. Monaco is nice, but I’d rather use a more compact and readable proportional font for day-to-day coding.
There – I’ve said it – I like proportional fonts for coding!
May 2nd, 2009 at 3:34 am
Short story : I have a small laptop, think netbook type, 1280×1024. This means I need small sharp and clear font. Cleartype and anti-aliased are just blurry. This is why I can only recommend
–
CG Mono :: http://www.dafont.com/cg-mono.font
size 5 fits : 92 lines at 245 columns
size 6 fits : 71 lines at 195 columns
size 7 fits : 64 lines at 160 columns
size 8 fits : 53 lines at 140 columns
–
Envy Code A :: http://damieng.com/creative/typography/envy-code-a
(true pixel based font, not the latter R series that just is blurry)
size 7 fits : 71 lines at 195 columns (my fave)
size 8 fits : 58 lines at 160 columns
size 9 fits : 53 lines at 140 columns
–
Arial Monospaced for SAP :: (no url)
(not pixel based, but is sharp)
size 8 fits : 53 lines at 140 columns
–
Linux console fonts :: http://www.ank.com.ar/fonts/
(look under FON type)
5×7 fits 92 lines at 195 columns
5×8 fits 80 lines at 195 columns
6×9 fits 71 lines at 160 columns
6×10 fits 64 lines at 160 columns
6×12 fits 53 lines at 160 columns
6×13 fits 49 lines at 160 columns
–
Terminal :: (comes with windows by default)
size 5 fits 107 lines at 245 columns (too small for me)
size 6 fits 80 lines at 160 columns (fave on random machine)
size 9 fits 53 lines at 195 columns
–
Speedy :: http://www.proggyfonts.com/index.php?menu=download
size 8 fits 58 lines at 140 columns
–
Sheldon family :: http://www.tobias-jung.de/seekingprofont/
Sheldon Narrow size 9 fits 53 lines at 160 columns
Sheldon size 8 fits 58 lines at 140 columns
–
Proggy series :: http://www.proggyfonts.com/index.php?menu=download
Terminus font :: http://fractal.csie.org/~eric/wiki/Terminus_font
–
–
Anyways, all the listed fonts are for blind people who need 52″ monitor and true type fonts so they look smooth.
I recommend checking out minimalist fonts. For past 2 years I code with Envy Code A smallest size. Previously I spent 3 years with Terminus smallest size (linux days). And before that 4 years with Terminal smallest size.
I am disappointed that none of the good programming fonts were mentioned here. Consolatas is amazing for printouts / presentations though, I agree. And Arial is pure imitation of Helvetica.
Cheerios
May 2nd, 2009 at 7:10 am
Another vote here for Envy Code R, mentioned previously. I’m a nut when trying to find ‘my’ development font, and I haven’t changed since I found that one…and I’ve tried all mentioned here, to be honest.
May 3rd, 2009 at 1:52 am
Fixed 6×13 is the best (for me). I use it all the time: http://www.hassings.dk/lars/fonts.html.
Also available as a windows Command Prompt font.
May 3rd, 2009 at 4:02 am
Nice article!
I’ve been using Inconsolata for a while now but Vera looks like it might be a good alternative!
May 3rd, 2009 at 8:36 am
Stopped reading when I saw the plethora of non-monospace fonts.
Anyone using proportional fonts = hobbyist/amateur programmer.
May 3rd, 2009 at 2:21 pm
Sometime, for change, I use “terminal” font :) just coz it feels good.
May 4th, 2009 at 11:57 pm
What about fixedsys!
My personal favourite is DejaVu Sans Mono (basically, same thing as Bitstream Vera Sans Mono). I can legally use it on both Windows and Linux too, which is nice.
DejaVu Sans Mono 9pt is way better than Consolas in both looks and readability. What is with these Microsoft groupies.
May 5th, 2009 at 12:27 pm
Triskweline by Henning Koch:
http://www.netalive.org/tinkering/triskweline/
May 5th, 2009 at 10:25 pm
James, the only amateur here is the one who thinks his way is the only right way to do it. It’s about personal preference and readability.
May 6th, 2009 at 3:08 am
Terminus!!!!11!!!
No, really. But Inconsolata is very nice as well.
May 7th, 2009 at 7:14 am
Andale Mono and Inconsolata are very similar (almost identical) fonts. Only slight differences between the 1 and l and the O and 0 in both fonts. Otherwise, everything else is the same. Both good for Programming.
May 20th, 2009 at 1:08 pm
I’ve settled in quite well with Bitstream Vera Sans Mono …
http://www.dafont.com/bitstream-vera-mono.font
It just seems to have all the characteristics of a good programming and text font …
May 26th, 2009 at 3:28 pm
http://www.dafont.com/bitstream-vera-mono.font
May 26th, 2009 at 3:34 pm
I’ve Settled in Nicely with Bit Stream Vera Sans Mono
May 26th, 2009 at 3:35 pm
Personnally, I love Liberation Mono :-) However, Droid Sans and Envy Code R are also very nice!
May 31st, 2009 at 2:39 am
Inconsolata FTW!
May 31st, 2009 at 10:37 pm