10 of the Best Programming Fonts

By | | Web Tech

editor fontMany 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.

Arial

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

Bitstream Vera Sans

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.

Bitstream Vera Sans Mono

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.

Consolas

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.

Dina

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.

Lucida Console

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.

Lucida Sans

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.

Monaco

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.

MS Sans Serif

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.

Proggy Clean

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

Craig Buckler

Craig is a Director of OptimalWorks, a UK consultancy dedicated to building award-winning websites implementing standards, accessibility, SEO, and best-practice techniques.

More Posts - Website

{ 52 comments }

MN November 2, 2011 at 5:43 am

No font can beat “Courier New”.

Ryan May 31, 2009 at 10:37 pm

Inconsolata FTW!

jepoirrier.net May 31, 2009 at 2:39 am

Personnally, I love Liberation Mono :-) However, Droid Sans and Envy Code R are also very nice!

Florida SEO May 26, 2009 at 3:35 pm

I’ve Settled in Nicely with Bit Stream Vera Sans Mono

Florida SEO May 26, 2009 at 3:34 pm
Florida SEO May 26, 2009 at 3:28 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 …

deliot May 20, 2009 at 1:08 pm

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.

mhm May 7, 2009 at 7:14 am

Terminus!!!!11!!!

No, really. But Inconsolata is very nice as well.

dawgbone May 6, 2009 at 3:08 am

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.

James Booker May 5, 2009 at 10:25 pm
mmj May 5, 2009 at 12:27 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.

yogee May 4, 2009 at 11:57 pm

Sometime, for change, I use “terminal” font :) just coz it feels good.

James May 3, 2009 at 2:21 pm

Stopped reading when I saw the plethora of non-monospace fonts.

Anyone using proportional fonts = hobbyist/amateur programmer.

alexweber May 3, 2009 at 8:36 am

Nice article!

I’ve been using Inconsolata for a while now but Vera looks like it might be a good alternative!

René May 3, 2009 at 4:02 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.

rondeth May 3, 2009 at 1:52 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.

Adam Zochowski May 2, 2009 at 7:10 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

Craig Buckler May 2, 2009 at 3:34 am

@Puzzled

How do you reconcile these two adjacent sentences?

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!

SKormos May 2, 2009 at 3:07 am

love Love LOVE Dina. Clear, mono-spaced, and low-frills.

Flip May 2, 2009 at 1:36 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.

Mike May 2, 2009 at 1:16 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.

Puzzled May 2, 2009 at 1:11 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?

Pietro May 2, 2009 at 12:45 am

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-*-*-*-*-*-*-*

Grunties May 1, 2009 at 11:41 pm

monospace good, non-monospace bad, all other considerations irrelevant. Next? :)

Pedro May 1, 2009 at 10:32 pm

Envy Code R. AND/OR Anonymous

The 2 best programming fonts I ever found.

NetNerd85 May 1, 2009 at 9:15 pm

I’ll stick to the default.

Rick May 1, 2009 at 3:43 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

Craig Buckler May 1, 2009 at 3: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).

James May 1, 2009 at 2:24 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.

Steve May 1, 2009 at 12:56 pm

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?

raena May 1, 2009 at 10:06 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.

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.

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.

tmapm May 1, 2009 at 9:35 am

I’ve tried a few different fonts in the past, but I also seem to find my way back to Courier New.

BJ Duncan May 1, 2009 at 8:52 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.

Hamranhansenhansen May 1, 2009 at 8:07 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.

zuneone May 1, 2009 at 7:20 am

Consolas ftw

Molte May 1, 2009 at 6:38 am

What about “Liberation Mono” (the default Ubuntu monospace font)?

Scott Petrovic May 1, 2009 at 6:05 am

I can’t believe this is actually an article. These are the real questions that need to be asked. :)

stoons May 1, 2009 at 5:02 am

How can you change the font Notepad or, in my case, Notepad Professional, uses?

Kevin May 1, 2009 at 4:50 am

Envy Code R. Hands down. Made by a programmer, for programmers. http://damieng.com/

tiggsy May 1, 2009 at 4:38 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…

Edwin Martin May 1, 2009 at 4:34 am

Should be in de the list too: Andale Mono.

Gabriel May 1, 2009 at 4:31 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.

lostrowski May 1, 2009 at 4:21 am

fixedsys is missing :)

missito May 1, 2009 at 4:05 am

Anonymous is my best, a TrueType monospace font, nearly perfect.

Available at: Anonymous

Daniel0 May 1, 2009 at 3:44 am

I find Andale Mono really good.

Adam May 1, 2009 at 3:20 am

Ludica Console or gtfo

cydewaze May 1, 2009 at 3:16 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.

Craig Buckler May 1, 2009 at 3:12 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.

The Pixel Developer May 1, 2009 at 3:10 am

The Proggy fonts link is down, Any mirrors?

lukemeister May 1, 2009 at 3:01 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!

QuaffAPint May 1, 2009 at 2:53 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 :-).

Derek May 1, 2009 at 2:51 am

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.

Comments on this entry are closed.