You know you've entered the highest pantheons of geekhood when you get excited about Microsoft's new fixed-width font, Consolas. I am always on the lookout for a better fixed-width programming font. After reading Scott's post, and then Steve's post, I was intrigued enough to copy it from a Vista install on to my XP box.
And that's when the disappointment set in. Here's Lucida Console, 9 point. Just to clear your visual palate.
Consolas, 10 point, standard font smoothing. MY EYES! THE GOGGLES! THEY DO NOTHING!
Consolas, 10 point, ClearType font smoothing.
I'll definitely agree that Consolas is one of the best looking ClearType fonts I've ever seen. That's probably because it is part of the first font family designed from scratch with ClearType hinting in mind.
However, I prefer not to use font smoothing on my programming fonts. And Consolas looks like crap without ClearType! Consolas appears to lack any kind of hinting for reasonable display at small point sizes. Consolas isn't just optimized for ClearType, it can barely be used without it.
Well, so much for that. Consolas, you are dead to me. Here's hoping someone at Microsoft wises up and adds the normal font hinting so Consolas displays legibly at 9 to 13 points.*
For the record, I am not anti-ClearType. On a high DPI display-- think 15" laptop display with a resolution of 1600x1200-- I definitely like it. But on a display with a more typical DPI, say a typical 19" 1280x1024 panel, the ClearType RGB pixel noise around the fonts is extremely fatiguing to my eyes. Particularly when reading fixed-width programming fonts.
Now, before you write me off as a font hatin' luddite, let me point out that Rick Strahl has almost exactly the same problem with Consolas, ClearType, and programming fonts that I do. It's a great technology, but it's also a high-DPI display technology, and Windows sucks for high DPI displays. That's a huge disconnect. And it won't be resolved until Windows Vista ships.
* If the whole hinting thing doesn't work out between us, it's good to know that Consolas can find some alternative work in spanish-speaking countries.
Have you tried Triskweline, it's a nice clean looking font and is a lot easier on the eyes than Courier.
<a href="http://www.netalive.org/tinkering/triskweline/">http://www.netalive.org/tinkering/triskweline/</a>
Lewis on August 8, 2005 5:40 AMI'm currently using ClearType on my 24" widescreen Dell at work.
I've been using it for the last few months and have gotten pretty used to it. But it still seems to make text look kinda blurry if I stop and stare.
On going evaluation...
Peter Bridger on August 8, 2005 7:42 AMI always run at 1920x1200 w/ cleartype on, which is perhaps why I like Consolas. Are you still using Courier? I was on Lucida Console for years, but have seen some rendering issues with the latest VS.
Like you, I'm always on the lookout for something better when it comes to my programming font.
Sorry I caused a stream of blood to come from your eyes :)
Steve on August 8, 2005 7:52 AMCall me old-fashioned but I'm still hooked on Courier New, 8pt, ClearType. Nothing beats it - looks just like an old typewriter. Maybe I like it because my first experiences with programming was actually typing out FORTRAN programs on my Dad's typewriter. :)
Consolas? Naah.
Mats Gefvert on August 8, 2005 8:05 AMHave you tried ProFont? it's excellent.
http://www.tobias-jung.de/seekingprofont/
Omar Shahine on August 8, 2005 3:20 PMI have tried ProFont. I'm a Proggy man, personally.
On high-DPI displays, however, I can't use bitmap fonts like Proggy and ProFont -- they're too small. In these cases I usually go with Andale Mono. I would consider Consolas if I had ClearType enabled.
Jeff Atwood on August 8, 2005 4:22 PMCall me a rebel, but I actually prefer a proportional font, even when I'm programming. I don't find there's any reason to have a fixed width font as I don't try to line text up with other lines.
I'm currently using Verdana 8pt font on 1600x1200 display and it looks great. I can see a lot of code at once.
I've also configured Visual Studio to display strings in a different color (Maroon) and that helps reviewing code as well.
Kiliman
Kiliman on August 8, 2005 4:39 PMCall me crazy but lately I've been using Terminal, 6 point on Visual Studio. It takes a day to get used to, but the benefits are you can fit three times the amount of legible code onscreen. I like Courier New too, but 6 point Courier is not readable.
thedisciple on August 9, 2005 3:26 AMPersonal recommendations for VS: "OCR A Extended" (comes with office or IE I believe), "OCRB" (comes with MS Works, I think), "Lucida Console" (with Windows XP, I guess).
Philipp Schumann on August 9, 2005 7:10 PMI was disappointed with Consolas as well, but for different reasons. I currently use Monaco for every fixed-width font that I can replace with it. I compared it with Consolas using my standard ambiguous character test:
|!1lIi
0Oo
,.;:_-=+`'"
<>(){}[]
Consolas looks better than Monaco, it's more compact, has better letter spacing, but its 'l' (lowercase 'L') looks too much like a '1' (number one). I've tried tested every fixed-width font I've come across, and none can beat Monaco.
This article was a great help for me when looking for fonts: <a href="http://www.lowing.org/fonts/">http://www.lowing.org/fonts/</a> I had been using ProFont before Monaco. If Consolas would just ditch that damn lower-left-serif in the 'l' I'd switch in a second. Everything else about it was perfect for me.
Travis on August 18, 2005 10:49 AMI was disappointed with Consolas as well, but for different reasons. I currently use Monaco for every fixed-width font that I can replace with it. I compared it with Consolas using my standard ambiguous character test:
|!1lIi
0Oo
,.;:_-=+`'"
<>(){}[]
Consolas looks better than Monaco, it's more compact, has better letter spacing, but its 'l' (lowercase 'L') looks too much like a '1' (number one). I've tried tested every fixed-width font I've come across, and none can beat Monaco.
This article was a great help for me when looking for fonts: http://www.lowing.org/fonts/ I had been using ProFont before Monaco. If Consolas would just ditch that damn lower-left-serif in the 'l' I'd switch in a second. Everything else about it was perfect.
Travis on August 18, 2005 11:55 AMHi Jeff,
Disappointed by Consolas' crap look without aliasing too...
So I've stuck with Pragmata TT.
Examples: http://blog.xeraph.org/coding/2005/08/07/programming-fonts
http://fsd.it/fonts/pragmata.pdf
Though, if you're looking for free, I guess you'll have to stick with the limited options there are..
Leon Breedt on August 20, 2005 1:55 AMIt is indeed quite nice, but 90 euros? I just tried "convert 90 euros to dollars" in google and got:
90 Euros = 110.05200 U.S. dollars
Ouch. For ONE font?
Jeff Atwood on August 20, 2005 4:28 AMBest mono programmers fonts I have seen are available from <a href="http://www.procon.com.au/Fonts.htm.">http://www.procon.com.au/Fonts.htm.</a>
I use their raster font (HVRaster) but they also have a TTF version of the font (HVEdit). The fonts have clear distinctions between all characters and make optimal use of screen width and depth to squeeze more columns and lines on the screen. Work well in Visual Studio.
Well, the Consolas font looks reasonably ok, but I really would like if the Lucida Console 10pt to look like Lucida Console 14pt - IMHO *the* best font ever (there's a notably difference occurring between 13pt/14pt).
--larsw
Lars Wilhelmsen on May 5, 2006 8:03 AMtry bold italic. Very nice.
Xepol on May 6, 2006 5:06 AMMy favorite programming font, the one I find myself always going back to, is Bitstream Vera Sans Mono.
You can find more at http://www.gnome.org/fonts/
Alan on June 13, 2006 11:13 AMmy vote for Bitstream Vera too. Because it is usable with anti aliasing. Monaco is nice, but italic text gets wider and it is not available in small characters on pc.
squiddle on August 28, 2006 5:01 AMI like Consolas, although I recently found out that it demands some edition of VS installed to allow installation. Bummer!
The Bitstream Vera family is another personal favorite. For work purposes I use DejaVu Sans, an open source font family based on the Bitstream fonts but extending it by adding Unicode fonts. It's Unicode coverage is impressive and keeps on growing. Check it out at http://dejavu.sf.net.
Why not go use Dejavu Sans Mono?
Justin on August 29, 2006 7:29 AMand to ck: Dejavu sans is based on Bitstream vera.
Justin on August 29, 2006 7:49 AMPerfectly solved my problem by setting ClearType
Thanks.
I use Linux a lot at work. I can assure you, there's no better font than Terminus. It was specifically designed for long work with the console. Unfortunately, it comes in linux bitmap variant only. There's been an effort to make a TTF variant, but you should judge for yourself is it worth. You can find the windows ttf here http://fractal.csie.org/~eric/wiki/Terminus_font
For windows I use consolas with cleartype turned on. But I don't usually code in windows :-)
Vladi on June 16, 2007 2:08 PMHave you tried the NSimSun font? It's the fixed width Chinese font that appears when you install the extra fonts for East Asian languages on XP, but it's really nice for programming. At least, it's nice on my 1024x768 display with cleartype switched off.
Steve on June 19, 2007 3:46 AMIm trying to find this font:
http://farm2.static.flickr.com/1204/993473102_73b1aa5bd1.jpg?v=0
Any idea?
>> Im trying to find this font:
<a href="http://farm2.static.flickr.com/1204/993473102_73b1aa5bd1.jpg?v=0">http://farm2.static.flickr.com/1204/993473102_73b1aa5bd1.jpg?v=0</a>
Any idea?
That's a sweet font. When you find can you please post it up? :)
Andrew on August 14, 2007 2:18 AMI only had a quick glance, but the curly braces makes me think it's Speedy:
http://www.proggyfonts.com/index.php?menu=download
Im using Tahoma 8pt proportional (non-fixed width) font with ClearType for coding on Windows and can say that i will never return to fixed width font.
AndreyM on October 4, 2007 2:09 AMProggy fonts are too bogus. Try out Dina. set the font size to 9. Make identifiers orange, overall background black with 40 green, blue and red. Change identifiers to grey. Make your comments green, with line numbers lime. Change operators to navy blue.
Jay on October 6, 2007 12:01 PMI hate to be a Simpsons pedant, but this is the second time you've linked to that quote, and yet misquoted it. The line is: "My eyes...the goggles do nothing!"
Phil on November 6, 2007 12:26 PMI use Lucida Console, size 7 (1280x1024). Believe me, I try almost every editor for Windows, none of them display it correctly, except my beloved Delphi Editor. I recently have tried Verdana (size 7), characters look great, but I would like to see a MONOSPACED (TTF) version... Any (good) designer can take the challenge?
Good Programming Font Criteria:
(found at: http://www.lowing.org/fonts/)
-Crisp clear characters.
-Extended characterset.
-Good use of whitespace.
-'l', '1' and 'i' are easily distinguished
-'0', 'o' and 'O' are easily distinguished (slashed zero)
-forward quotes from back quotes are easily distinguished -prefer mirrored appearance
-Clear punctuation characters, especially braces, parenthesis and brackets
Plus my personal criteria: (font designers forget them)
-Character must be based on Verdana, size 7.
-Symbol characters must be centered horizontally and vertically (all axis aligned)
-Must have Normal, Italic, Bold styles with SAME WIDTH for all of them!!!
-Must support size 7!!!
-ClearType support
Some pictures:
Lucida Console (Size 7)
http://img529.imageshack.us/my.php?image=lucidaconsole7sizeql6.png
Verdana (Size 7)
http://img413.imageshack.us/my.php?image=verdana7sizedf5.png
RenanUJ
sisex_ at hotmail dot com
sisex_@hotmail.com
Some pictures:
Lucida Console (Size 7)
http://img57.imageshack.us/my.php?image=lucidaconsole7sizeig1.png
http://img48.imageshack.us/my.php?image=lucidaconsole7sizebay3.png
Verdana (Size 7)
http://img413.imageshack.us/my.php?image=verdana7sizedf5.png
http://img57.imageshack.us/my.php?image=verdana7sizehighlightedax9.png
RenanUJ
Consolas, and run the ClearType Tuner and set the rendering to strongest, and it will be nice, dark, sharp and extremely legible at 8pt, although some might still prefer it at a larger size. 9pt and 10pt are nice too.
Soaa on January 4, 2008 12:02 PMSee this: http://codeblog.palos.ro/2008/02/08/smoothansi-font-best-for-programming/
Valeriu Palos on February 8, 2008 5:20 AM@Valeriu Palos
Seems like an incredibly crappy font in all areas. What are you thinking ?
I can't believe you're saying that! I'm not sure what you saw but I find this font far better than the rest! I put a screen-shot for'ya:
http://codeblog.palos.ro/2008/02/08/smoothansi-font-best-for-programming/
Like many others, I like Monaco as my best favorite. My second best favorite is Inconsolata. It's nice both in a terminal (on the mac at least) and in print.
http://www.levien.com/type/myfonts/inconsolata.html
Anonymous on April 30, 2008 1:01 AMI find Consolas better for HTML editing compared to programming actually. (aiming/copying+pasting stuff is a real joy with this font.)
ProFont is better for programming (maybe since you need to get a big picture of seeing the entire programming structure at once). But aiming/copying+pasting is hard with small fonts though, and with ProFont in particular, which make Dreamweaver editing a slight disadvantage. When using Consolas for programming, though, the fonts can sometimes feel rather cluttered compared to ProFont's clarity. But For HTML/XML, it works great. So, I tend to use Consolas for Dreamweaver, and ProFont for programming.
With ClearType, ProFont isn't too bad, but it's better without ClearType imo. So, if using both fonts, it would b good to have a quick toggler for turn on/off ClearType.
Glidias on July 13, 2008 8:17 PMProFont vs Consolas
----------------------
ProFont works best on non anti-aliased monitors without ClearType.
If your monitor is powerful enough to support high resolutions with crisp ClearType, (such as a new Vista system with ClearType on by default), than consider Consolas instead. It' a better programming font overall in terms of compactness and has a larger base size which comes out just as readable as ProFont.
Just remember that Consolas only works best if your monitor with ClearType can display the font clearly from point 8 onwards. Also, when it comes to structural readability, you need to space out and align your codes with such narrow-based fonts, taking advantage of it's horizontal compactness. If you don't, you'are asking for messier/crowded code, and you'd be better off using ProFont, which spaces things out better per character and can actually make crowded code appear "not-so-crowded". This is one of ProFont's known strengths which most narrow fonts lack, so make sure you space things out well with Consolas as per programming narrow-fonts standards, and Consolas would look real good both structuraly and sementically, and overall, much better than ProFont.
Regarding size and effeciency, Consolas at point 8 is actually far more compact (both horizontally and vertically) than ProFont at point 9 and has a larger character base-size which comes out just as readable (if not more readable since it has a bigger character base) compared to ProFont. It has options for italic and bold unlike ProFont, and Consolas looks real attractive with their bold and italic faces as well, which can be taken advantage of by an IDE. All these factors add to a coding font that on the whole is obviously better than ProFont.
Of course, ProFont can't exactly be compared to Consolas because ProFont is a relatively old legacy font, while Consolas is a new recent font release built for higher-end displays for ClearType. As such, the difference in time period means you just got to choose the font that displays right on your system and encourages better coding practices. Sooner or later, i can see ProFont becoming obsolete. But it still has its uses, especially if you need a tiny but readable programming font on lower end displays.
ProFont rating: 4.3/5
Consolas rating: 4.6/5
Criterias for a good coding font:
1) Vertical Compactness
2) Horizontal Compactness
3) Sementic Readability (Programming & Markup) x 2
4) Structural Readability (Programming & Markup) x 2
5) Individual Character Distinction
6) Character clarity/penalty
7) Aesthetics
A comparison between ProFont and Consolas.
http://home.graffiti.net/kidopreneur/profontVSConsolas.jpg
Basically Consolas IS better overall, but both scores are pretty much the same anyway so it doesn't exactly matter.
Somehow, ProFont is better for me personally for the following reasons:
1) I never liked the idea of tall narrow fonts because it can be harder to quickly aqquire target values/parameters, highlight and copy+paste them since the font is horizontally compresssed already.
2) I'm more used to wider fonts because they match fonts like Verdana, Courier New, etc., fonts which I've been familiar with.
3) Tall fonts remind me of studying code in programming books, but not writing/typing them. Somehow, wider fonts tend to emphasise a horizontal flow & speediness which works well for "snippet-style" programming.
4) ProFont brings out the structure and form of any piece of code (no matter how complicated or "messy") very well with the chunks, branches, values and parameters easily identifiable and isolated. Consolas (or other narrow-based fonts) tend to be pretty average in this area.
In fact, I've given up on Consolas already. I realised it isn't that much different from the array of other tall fonts out there (Bitstream Vera Sans Mono, Andale Mono, etc.). Consolas is just more compact. But sementic readability and neatness is still dissapointing and forcing one to use ClearType for blurrier small fonts rather than crisp small fonts, i'd rather prefer the latter.
So, it's back to crisp small fonts.
BATTLE OF THE SMALL FONTS
http://home.graffiti.net/kidopreneur/battleofsmallfonts.jpg
In this situation, Anonymous really comes in on top for me. And ironically, it wasn't intended to be a small font to begin with, yet turns out to be a potentially great programming small font.
Anonymous is well known to be artistically nice. Yet, it's mono-spaced. It's known to have some weaknesses, though particularly with ClearType and general clarity/cramp collisions with touching underscores and some characters. Thankfully, in this situation without ClearType and in FlashDevelop (together with some cool dark color settings), Anonymous shines really well.
The Contender/Runner-Up reviews
---------------------------------
2nd place: ProFont
ProFont's strenghts vs. Anonymous
ProFont has always been the MOST consistent in character spacing and the characters NEVER touch. This results in a very neat, blocky font that makes your program look EXTREMELY neat and in real good order. But it's true that spacings can be a bit too wide such that ease of readability does suffer somewhat, involving a certain degree of strain. ProFont's "wide consistency" is both a strength and weakness. Compare it with the other fonts where whose characters are closer together and therefore easier to read. Also, Anonymous have defined serifs which really adds to sementic meaningfulness and allows the user to read much faster than you would with ProFont, yet still maintians a consistency. But this consistency is known as "compact consistency", something which ProFont lacks severely. Which do we prefer? One which look "cleaner" but strains the eyes more, or the other which may look "crowdier" but is faster/easier to read? Frankly, the latter seems like a better a option.
Anonymous might seem more cramped/messier unlike ProFont's neatness, but it's compact and very readable because of this situation. When i tried reading over ProFont or Proggy, I couldn't absorb as much meaning as quickly as I could with Anonymous. Somehow, Anonymous truly brings out the personality of individual words really well, and on the whole, brings out the structure and meaning of the program FAR more than what ProFont will ever have. When viewing in ProFont (and Proggy as well), those fonts seem far more impersonal, and it's hard to draw out sementic meaning quickly with those fonts. Yet with Anonymous, it really has the tendency to make this chunk of "meaningless code" appear as understandable as plain English. Only Anonymous smartly differentiates out the variables vs. numbers vs. operators very well. I'm extremely impressed. Anonymous also shows why serifs really add sementic meaning to a chunk of code. Maybe that's why even the notoriously "ugly" Courier New is still being used as the default font in most IDEs, and why it's generally readable and easy on the eyes as well. With mathetmatical calculations such as these, Proggy and ProFont comes out as meaningless garble while Anonymous shines in readability and understanding.
So yes, Anonymous may look not as neat and lean compared to ProFont. But try reading and understanding those math calculations with ProFont. Which is easier? Anonymous turns out easier for me.
3rd place: Proggy
Proggy's main weakness:
Proggy is inconsistent in it's spacings. Sure, both Proggy and Anonymous collide, but Proggy is inconsistent unlike Anonymous which still maintains a "tight compacted" consistency. Honestly, Proggy is really like a buggy font imo and I wonder why some people might like to use it. Sure, the individual glyphs are very clean, attractive and easy on the eyes, but that's it. The entire typeface seriously needs improvements/fixes.
Why more Anonymous?
-------------------
Anonymous also allows you to work in the super-compact pt 6, the smallest font-size i've ever seen. And guess what? It's still just as readable, neat and sementically meaningful! Check out the screenshot.
http://home.graffiti.net/kidopreneur/anon6pt.JPG
I really wished the author could create a version of Anonymous that works crisply with ClearType as well. The serifs really make my day, and makes a GREAT difference to small font readability. There are many cases I've seen Anonymous not work the way it should, but it works here. Imo, it's the best programming font (at least) in this situation. Hope you have some luck with this font.
Scores:
Compactness - Anonymous wins
Sementic Readability - Anonymous wins
Neatness & Structure - Anonymous and ProFont tied.
I personally like the Raize font ( http://www.raize.com/DevTools/Tools/RzFont.asp ) for my IDE, the problem with Consolas is in my oppinion, that size 10 is too small, and size 11 too large. :|
Tommy on July 22, 2008 2:33 PMTerminus really is the best fixed-width font available.
Sam Pearson on September 16, 2008 4:11 PMI am using Consolas 11pt on my work machine on Windows XP and on Vista at home. So far I think this is the best font. I don't see any Clear Type problems, probably they was fixed in Windows XP Service pack 3.
Viktar on November 2, 2008 2:07 PMConsolas looks fine on Mac OS X as well even without ClearType, using Apple's anti-aliasing, as do the others in the family, although I only like Calibri, Constantia, and Consolas in roughly that order, they've replaced Helvetica, Georgia, and Monaco for me.
Sebastian
Sll on December 25, 2008 5:30 PMHow unfortunate I didn't come across this site until now.
Great suggestions and links in the posts.
Why have my eyes been suffering so long!
Ryan K on June 19, 2009 3:40 AMTry Consolas clear type with Vista. Very readable, very clear and easy on the eyes. Size 10 is great. Just upgrade.
Joe Mosky on August 5, 2009 2:10 AM| Content (c) 2009 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved. |