Fog Creek Software
Discussion Board




The best font for programming

Over the years I've tried most fonts claiming to be great fonts for programming: ProFont, Lucida Console, Oloron (yuck!), Andale, ofcourse Courier New and several others. It's a hard battle between the extreme legibility required of the font, while not being distracting when scanning large amounts of code.

My Quest for the Holy Programming Font has now ended:
Proggy Clean (http://www.tactile3d.com/tristan/)
It's has perfect proportions, is extremely easy to scan while still very legible. Hallelujah!

Runner up:
Andale Mono.
Previously called Monotype.com and released for free by Microsoft in the core web fonts pack, can now be found at http://www.zeuscat.com/andrew/software/corefonts/. Just as good as Proggy, I find it tiny bit harder to scan. Download both and choose your favorite.

Sire404
Friday, November 07, 2003

Might I also suggest this font:

http://rossm.net/

Mr Jack
Friday, November 07, 2003

I'm using "Monospac821 BT", whatever that is.  Profont didn't seem to like Vim's bold syntax highlighting...

Tom (a programmer)
Friday, November 07, 2003

Oh yes, and I'm also a fan of "Lucida Console".  Recommended.

Tom (a programmer)
Friday, November 07, 2003

Thanks Sire404 - 'Proggy Clean' is perfect for me!  I'm running at 2560 x 1024 across two 17 inch LCDs and I think that it's the perfect balance between size and readability.

R1ch
Friday, November 07, 2003

Gosh. Never occured to me it might be a good idea to change the font for programming. Enlightment struck me! Thanks Joel and everybody!

Sebastian Wagner
Friday, November 07, 2003

I don't know.  This ProFont is a bitmap font.  I don't really find it much better than good old Manaco.  But what do I know?

Well a little bit I guess.  You can read my font programming series.

http://www.baus.net/archives/000008.html

Fonts, fonts, fonts..  aghh.

christopher baus (www.baus.net)
Friday, November 07, 2003

Personally I use MS Sans Serif - fixed space fonts are so last century.

Mr Jack
Friday, November 07, 2003

What's wrong with Courrier New? I kinda' like that one...

Nick
Friday, November 07, 2003

Personally, I've never had any problem with Courier New.

Is a monspaced font needed for code? 

I find a proportional font much easier on the eye.

The only time I use a monospaced font new is to view SqlServers.rpt files.

Ged Byrne
Friday, November 07, 2003

I recently installed OpenOffice - and found it came with a lovely monospaced font (which despite being 'so last century' is the only way to make all your tab indenting work and the comments line up neatly!).  It is called Bitstream Vera Sans Mono.  Visual Studio will only let you select the ugly bold version, but you can then go to the registry entry and change the name to the correct one.

David
Friday, November 07, 2003

I second Bitstream Vera Sans Mono, and I hadn't any problems using it with Visual Studio.

My problem, however, is that this font looks extremly nice on my 19'' screen, but sucks on my low-resolution (1024x768) notebook LCD.
*sigh* Nothing is perfect.

- Roland
Friday, November 07, 2003

CodeWarrior correctly lines up tabs in variable spaced fonts, hopefully VS will catch up sometime.

Mr Jack
Friday, November 07, 2003

I quite like the Raize font, see http://www.raize.com/DevTools/Tools/RzFont.htm

John Topley (www.johntopley.com)
Friday, November 07, 2003

I tried many fonts and eventually got addicted to FixedSys. It's ideal for my needs. Just looks weird when bold, but I can live with that.

FixedSys rules!

Stefan Haubold
Friday, November 07, 2003

What's wrong with the standard X11 "fixed" font?

Fire up an Xterm, Ctrl-Right-Click and select "small".

It doesn't have the slashed zero that ProFont does, but it seems to have all of the other desirable features.

David Jones
Friday, November 07, 2003

I’ve been using whatever the TextPad defaults are (just checked, Courier) and have had no problems… But now I’ve taken a look at different fonts.  Verdana and Arial Unicode MS seem to be very pleasing to the eye (ClearType on XP rocks!) but I really need my fixed-width fonts (am I the only one that likes to line up blocks of code?)

The Proggy font looks neat but for some reason I can’t select a font size other than 8 in TextPad.  Anyone know if that is a limitation of the font or of TextPad?

MR
Friday, November 07, 2003

Am I the only nut who uses Terminal 6pt on Windows?

Nate Trost
Friday, November 07, 2003

I don't understand why monospaced fonts are such a big deal. I don't mean this as a flame - just offering my opinion.

The only place where I care about lining up my code is the indentation at the beginning of a line. Where else are you people lining up code?

Comment blocks also line up because they always start with // (or with a '*' using the /* */ style comments).

Proportional fonts let me squeeze more letters into the same width (so I can either have more letters on a line or have two editor views side by side).

I used to be a monospaced coder, but a coworker got me hooked to a plain serif proportional. At first it's weird to write code that isn't monospaced, but work with it a few days and you get used to it.

NathanJ
Friday, November 07, 2003

Nathan,

I like to do things like (this obviously won't work on the message board since this is proportional, but..):
Somevar      = 1235;
someothervar = 12345;
sdfsa        = 1234;
...

or:
somefunctionwithmanyparameters( abc, cdf, ger,
                                asfsa, wer, afads );

or
if( myvar  = 123  and
    yourvar = 1234 and
    foovar  = bar  and
    ... many more ... )

And the biggest is in SQL statements (which I write a ton of)
SELECT *
  FROM joe
WHERE happy  = '123'
  AND feeling = 'fine'
etc.

MR
Friday, November 07, 2003

A lot of people are asking "what's wrong with..."

Here's the answer: if you want to maximize the amount of code you can see on a screen, you need to shrink the font down really small. Courier New, for example, gets foggy when it gets really small.

Tim Sullivan
Friday, November 07, 2003

Fixedsys, baby.

Clutch Cargo
Friday, November 07, 2003

Put me down for a second vote for Raize font.

Cletus
Friday, November 07, 2003

I just installed the ProFont and Sheldon fonts. I dislike most of the monospaced code fonts because they have HORRIBLE kerning. The whitespace between characters is too huge, making it different for my eyes to glob characters together into words.

Other code fonts are too serifed, trying way too hard to differentiate between 1, l, and I or 0 and O. My eyes get tired seeing so much serif.

I wish there was a tiny, monospaced version of my favorite font, Arial. The Sheldon fonts have a "Sheldon Narrow" that seems promising. It's non-serifed and has tight kerning.

I'm now considering making my own code font, that will suit my needs. It seems like there is a big demand for a good code font. :-)

runtime
Friday, November 07, 2003

MR,

Actually I used to do that stuff too - but I've been using a proportional font for a few years so I forgot. Now that I think back those issues bugged my a little at first.

But here are my justifications for why you don't really need them...  :)

1)
int x    = 123;
int abc = 23;

You can get the previous to line up nicely in monospace, but if you change x to be xyz or something then you have to spend time realigning your code. I've also found on larger teams that some people are lazy and don't bother to reformat when they change variable names so then it starts to look messy anyway.

2)
somefunctionwithmanyparameters( abc, cdf, ger,
                                asfsa, wer, afads );

I've found with a proportional font I can fit a 3rd or 4th variable on one line and usually avoid the problem. If I need multiple lines for variables I prefer to do this:

somefunction(
int x,
int y,
int z
);

same thing with the if statements. I guess that wastes more space in the long run, but I like the readability.

3)
SQL - ok, SQL is harder to format without monospacing, but I don't do much complicated SQL so it doesn't bother me as much.

NathanJ
Friday, November 07, 2003

I like Comic 12 pt

Rick
Friday, November 07, 2003

I just installed ProFont, ran it for a few minutes. Didn't like it so much, the balance of whitespace seems to be all wrong, and the exaggerated features were too distracting. I never really liked Monaco anyway. It's too "squat" which is a problem I have with a lot of monospaced fonts.

After some hunting I found Windows version of the X-windows standard fonts--6x12 and 6x13, which I've been using on Unix forever. I guess it might just be a case of liking whatever you're used to.

http://www.ank.com.ar/fonts/

Peter Meilstrup
Friday, November 07, 2003

I'll now be sticking with ProggyClean, thanks for telling about it!

Anyway, you're going to laught at me, but try Georgia Ref 12pt.

Alex
Friday, November 07, 2003

Final proof that programmers have no sense of aesthetics. :)

The only fixed-width font I've been able to look at for any length of time is Courier New, and only then since I got an SXGA laptop with Windows XP, so I can put the font size at 12pts with Cleartype on.  Perfectly sharp, perfectly legible, and not bad looking.

But lately, and I recommend everyone try this, I've been switching to proportional fonts.  Arial Unicode 10pt is excellent--good kerning, clear looking braces and brackets.  Also Lucida Sans Unicode 10pt.

I've stopped lining up =; the only indenting I do is on the left, and the code still looks good--better, in fact, in a proportional font.  Overall, much more legible.

Justin Johnson
Saturday, November 08, 2003

If you can get access to an SGI system somewhere, the IRIX X server comes with a really nice family of monospaced fonts called "screen." I'm not a font guru but they look basically like ProFont to me. IMHO they are much superior to the "fixed" family in XFree86.

I'll have to try the proportional thing too...

Dan Maas
Saturday, November 08, 2003

A problem with Courier New: 1 (one) and l (el) are identical.

long n = 1000l * 60l * 60l * 24l;

looks like:

long n = 10001 * 601 * 601 * 241;

Not what you want.

Walter Rumsby
Tuesday, November 11, 2003

No offense, but you need new glasses or a better monitor... in Courier New, the number 1 has a "hook" at the top while lower-case "L" doesn't. The distinction could be clearer but it's definitely there.

Chris Nahr
Thursday, November 13, 2003

Wait, that was nonsense. Actually both letters have a little hook but the number "1" also has a diagonal slant down from the top of the stem to the left hook. Still visible on my monitor at font size 10 points, though. What font size are you using?

Chris Nahr
Thursday, November 13, 2003

I'm a FixedSys addict myself.

It's one of the default bitmap non-ttf fonts available in Windows.  It's come to a point were I rejected a very nice text editor because it only supported TrueType fonts.

starvingartist
Friday, November 14, 2003

Verdana 8pt

Mark A. Richman
Monday, March 15, 2004

In fixed-width, I like Courier New 10pt, and in proportional, Arial Unicode MS 10pt

Shoaib Meenai
Saturday, April 24, 2004

About the 1(one) and l(el) thingy in Courier New, thery are indistinguishable at sizes 8pt and 9pt, but the distinction becomes quite clear at size 10pt.

Shoaib Meenai
Friday, April 30, 2004

In Courier New (I'm a Courier New fan), O(uppercase o) and 0(zero) are almost indistinguishable in bold, but, who cares?

Shoaib Meenai
Sunday, May 02, 2004

Courier New is bearable, but you should try Proggy Clean or Andale Mono.

Ronald Dobson
Tuesday, May 04, 2004

Andale Mono is a good font for programming but I find the CTAN fonts collection's CMTT8 to be excelent for programming. Only problem is that some effort is needed to use it in gvim or any other app without the visiblespace character.

Deo Lama
Friday, May 21, 2004

http://www.proggle.com/macfonts - _M8 is Monaco 9pt "ported" to Windows FON format. The best programming font for me.

Gleb DOlgich
Monday, July 05, 2004

RE: monospaced vs. proportional...

Not sure why nobody's mentioned this, but column-based text selection requires a monospaced font...  I use MultiEdit for most of my development and it only supports monospaced fonts for exactly that reason. 

Scott Mayfield
Friday, August 06, 2004

Hm, haven't seen someone mention the need for monospaced fonts if you need "images", i.e. ASCII-art. I sometimes need this in my coding. Just to make some complex things easier to understand.

I also find it easier to select text in monospaced text since, e.g., "i" and "l" can become very narrow and thus hard to select. (I even noticed Jakob Nielsen suggesting monospaced fonts for the URL-field of web browsers for that exact reason.)

Thomas schilling
Saturday, August 07, 2004

Visual studio 2003 does a good job of column selection no matter what font you use. Well, it selects the best column it can. Whether it does a good job is debatable.

Chris Capel
Monday, August 09, 2004

I use X11's 'Fixed' font under Linux. It looks way better than most monospaced Micro$oft Windows fonts.

Daniel Brodzik
Sunday, August 15, 2004

PROGGY CLEAN.
As a designer now I'm hook on programming. Who says a code window cant be 'beautiful'. ;)

Wurdu
Friday, August 27, 2004

*  Recent Topics

*  Fog Creek Home