
Hivelogic - Top Programming Fonts - adambyrtek
http://hivelogic.com/articles/top-10-programming-fonts
======
ComputerGuru
Great article, and awesome fonts.

But for the record, OS X now ships with a new default monospace font called
Menlo which is quite nice... but it's really just Deja Vu Sans Mono with
modified punctuation (most importantly though is the slash through the zero).

View it here: [http://www.leancrew.com/all-this/2009/06/snow-leopards-
new-m...](http://www.leancrew.com/all-this/2009/06/snow-leopards-new-
monospaced-font/)

------
MartinCron
With modern languages and IDEs, I don't see any benefit to using monospaced
fonts at all. I have been using Calibri for the last few years because it is
readable and pleasant to look at, and I never have any problems lining things
up provided they actually need to line up.

~~~
MartinCron
Instead of a downvote, how about a real explanation of why exactly monospaced
fonts are actually required.

This bit of programmer dogma is totally unfounded. There is nothing more to it
than tradition.

~~~
jrockway
When you press the "next-line" key, it's nice to know where you're going to
end up. With a non-monospaced-font, you have to guess or count. With a
monospaced font, it is visually obvious.

~~~
MartinCron
But that is exactly how my next-line key behaves, my cursor is always exactly
where it should be. It's not like your tabs/spaces vary in width from line to
line it is just that an uppercase W is wider than a lowercase i.

~~~
jrockway
If you only want to move to the next line if you are at the beginning or the
end of the line, I guess it works. For any other navigation, your cursor jumps
to a random position. I just tried this, and for any line longer than about 3
characters, "next-line" becomes "random position on the next line". Not
useful.

Other problems include lining up similar constructs:

    
    
        my $foo = Foo->new(
            bar  => 'baz',
            quux => 42,
        );
    

With a non-monospaced font, there may not be an integer number of spaces that
would allow you to align things.

Using a proportional font for programming seems like using a railgun to put a
square peg through a round hole. Sure, you can do it, but why not just get a
round peg?

~~~
akrito
Scintilla-based editors, GTKsourceview-based editors (I just tried with Scite
and Gedit) and Emacs all correctly position the cursor when using the arrow
keys and proportional fonts.

As for lining up similar constructs, I mostly code in Python, and the PEP 8
style guidelines explicitly forbid that.

~~~
jrockway
I tried it in Emacs. Your definition of correct does not agree with mine.

If you draw a line parallel to the left-hand edge of your monitor down from
the character that the cursor is currently over, it should touch the character
that "next-line" will move to. That is not what happens when you use a
proportional font in Emacs. (If you are on the 10th character of the line, you
will move to the 10th character of the next line.)

What happens makes mathematical sense, but Emacs is a visual editor.
Programmed text editing is nice, but sometimes you notice a visual property of
the source code, and would like to exploit that instead of some lexical
property. Visual editing lets you do this, but proportional fonts destroy this
ability.

Anyway, sorry to hear about the Python style guidelines. If I did Python, I
would ignore that one. (Haskell is whitespace-sensitive and allows you to
align similar constructs. So this is just a Python thing.)

~~~
akrito
> I tried it in Emacs. Your definition of correct does not agree with mine.

Yes it does. In Emacs, with a proportional font, if I'm on the 10th character
of a line and press "up", I do _not_ necessarily move to the 10th character of
the previous line. I move to the character visually above the current one.

Sorry it doesn't work for you - we must have differing Emacs setups. I'm using
Emacs 23 in GUI mode.

Also, I'm a big fan of Haskell in general, but sometimes when I'm coding I
think its whitespace is a bit _too_ significant.

~~~
jrockway
Me too. I did "set-buffer-face" to "variable-pitch".

------
anigbrowl
What, no love for Lucida Console? For shame, Mr Benjamin, for shame.
[/typeface melodrama]

~~~
limmeau
Lucida Sans Typewriter 12 for everything (on my 1280x1024 screens at work).
The 75dpi bitmap font.

I even installed my own Emacs 23 with freetype support at work, but after
trying EnvyCodeR and Consolas and Anonymous and what have you, I went back to
lucidasanstypewriter.

------
jbr
My favorite: <http://www.ms-studio.com/FontSales/anonymous.html> (free)

Installing anonymous is one of the first things I do when I get a new mac.

~~~
KevBurnsJr
I also use Anonymous (on a PC to program in PHP) Even though the tilde is
janky. ~shrug

------
christopherdone
Deja Vu Sans Mono is highly superior to all the mentioned fonts there. It
works perfectly clearly with anti-aliasing. I honestly wonder if the people
praising other fonts are just trying to be different. I'm probably being
subjective. It would be cool to see some research into the top programming
fonts to find which are least tiring to the eyes, most legible when tired or
scanning, etc.

~~~
davidmathers
_Deja Vu Sans Mono is highly superior to all the mentioned fonts there._

?? It's number 3 on the list.

------
palehose
Call it stealing if you want, but here is a little tutorial on how to get the
non-free Consolas font without buying anything from Microsoft. The font is
included in a free to download dmg file from microsoft.
<http://www.wezm.net/2009/03/install-consolas-mac-osx/>

~~~
NikkiA
They give it away with all of their Visual * Express suites, and there is even
a seperate .exe installer for it, so I don't really think it counts as
stealing if you use some other method to get it in an easier form.

But that's just me, I don't work for MS legal :)

~~~
sp332
It is a breach of contract (if the EULA is enforceable), but it's not a
criminal act. And I doubt they'll go after anyone for it.

------
artificer
Nice article, but somewhat incomplete. He misses many fonts (like Lucida
Console, Envy Code R, Anonymous, Redhat's excellent Liberation Mono,Pragmata
and a whole lot of others), he doesn't explain the font differences other than
noting which he likes more, like serif/sanserif, hinting quality, character
set coverage (Greek? Cyrillic?) etc.

------
sker
I was a Consolas guy until I discovered Bitstream Vera Sans Mono. I find it
more readable, you might want to check it out.

~~~
jrockway
Deja Vu * is Bitstream Vera * with Unicode characters. Good if you're not
using Emacs and want nice-looking λs in your code. (Emacs has a map from
character range -> font, so you can use your own Unicode font along with your
favorite ASCII font. But using Deja Vu means you don't have to configure that
as much.)

FWIW, I use Deja Vu Sans Mono for coding. It is a nice-looking font,
especially when grey on black.

------
sant0sk1
I'm a huge Inconsolata fan. I prefer it big (16pt) and use it pretty much
everywhere.

~~~
NikkiA
Agreed, it's 11pt Incosolata for me on my linux emacs, and 13pt Consolas on my
windows emacs.

Beautiful fonts.

------
derobert
Neep <http://www.jmknoble.net/fonts/> Unfortunately, its a bitmapped (non-
scalable) font...

------
rue
There is nothing that surpasses SGIscreen at 10 or 11px. As a bonus, it
requires some leetness to find and use.

------
yan
It wasn't mentioned, but Pragmata is gorgeous. A bit pricey though.

~~~
holygoat
It was mentioned (at least when I read the post).

I find Pragmata so narrow it hurts to read. :(

------
SlyShy
Some fonts I like that they left off:

Envy Code R Pragmata Terminus

~~~
chrisallen
I use terminus for code everywhere.

------
Jeema3000
Wingdings all the way

------
there
am i the only one still using xterm with its default "fixed" font in black-on-
white?

