10 of the Best Programming Fonts

This article was written in 2009 and remains one of our most popular posts. If you’re keen to learn more about fonts, you may find this recent article on IcoMoon of great interest.

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!

Comments on this article are closed. Have a question about Programming? Why not ask it on our forums?

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • Derek

    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.

  • QuaffAPint

    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 :-).

  • http://lukep.net lukemeister

    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!

  • The Pixel Developer

    The Proggy fonts link is down, Any mirrors?

  • http://www.optimalworks.net/ Craig Buckler

    @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.

  • http://cydewaze.org cydewaze

    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.

  • Adam

    Ludica Console or gtfo

  • http://degeberg.com Daniel0

    I find Andale Mono really good.

  • missito

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

    Available at: Anonymous

  • lostrowski

    fixedsys is missing :)

  • Gabriel

    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.

  • Edwin Martin

    Should be in de the list too: Andale Mono.

  • tiggsy

    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…

  • Kevin

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

  • http://www.stoons.ca stoons

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

  • Scott Petrovic

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

  • Molte

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

  • zuneone

    Consolas ftw

  • Hamranhansenhansen

    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.

  • http://www.duncanmedia.com.au BJ Duncan

    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.

  • tmapm

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

  • http://www.heyraena.com raena

    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.

  • Steve

    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?

  • James

    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.

  • http://www.optimalworks.net/ Craig Buckler

    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).

  • Rick

    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

  • http://www.jasonbatten.com NetNerd85

    I’ll stick to the default.

  • Pedro

    Envy Code R. AND/OR Anonymous

    The 2 best programming fonts I ever found.

  • Grunties

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

  • Pietro

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

  • Puzzled

    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?

  • Mike

    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.

  • Flip

    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.

  • SKormos

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

  • http://www.optimalworks.net/ Craig Buckler

    @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!

  • Adam Zochowski

    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

  • rondeth

    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.

  • René

    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.

  • alexweber

    Nice article!

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

  • James

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

    Anyone using proportional fonts = hobbyist/amateur programmer.

  • yogee

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

  • http://bitdepth.wordpress.com mmj

    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.

  • James Booker
  • dawgbone

    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.

  • mhm

    Terminus!!!!11!!!

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

  • deliot

    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.

  • Florida SEO

    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 …

  • Florida SEO
  • Florida SEO

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

  • jepoirrier.net

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

  • Ryan

    Inconsolata FTW!

  • http://www.itwave.org MN

    No font can beat “Courier New”.

  • Localancers.com

    Useful article!