Font choices, and other religious wars

Scoble’s interview with Bill Hill reminded me that font choices are another weapon in the ongoing battle against information overload. Of course, any conversation about fonts is almost as likely to escalate into an all-out religious war as is a conversation about, say, code indentation practices*. So I’ll start out with relatively bland points, and then move on to the more controversial stuff. Here goes:

  1. You need ClearType. No, really, you do – unless you’re one of the small minority who are too color-sensitive. And you probably need to tune it.
  2. It follows from #1 that you need LCD screens – it’s the 21st century, and making little bits of phosphor glow by putting them on the inside of a giant vacuum tube and zapping them with electron beams just doesn’t cut it anymore. Use your laptop as a second screen if you have to.
  3. Microsoft’s “core fonts for the web” have been designed specifically for readability on computer screens, and you’d be crazy not to try them out first.
  4. If you’ve made it this far, you need a way to compare fonts easily and quickly at multiple point sizes. I like this page from Jeff Howard.
  5. Sans serif fonts are great for absorbing small amounts of information quickly – so use one for email. As Omar Shahine points out, the mainstream choices are Verdana, Tahoma, and Arial, which are basically three narrowing variants on a theme.
  6. Serif fonts are better for reading large amounts of information, because the serifs help the eye move horizontally along a line. They’re probably not a good idea for your typical web page, but try a serif font if you’re writing a lot of text. Just don’t use Times New Roman on a screen; Georgia should be your default.
  7. Consider using a “personal” font for email, especially if you’re in a small team. If Fred uses Verdana and Jim uses Tahoma and I use Trebuchet, it’s a lot easier to instantly get context in any long email thread.
  8. 11 point text is easiest to read. 10 and 12 point text are ok. Don’t use anything else for extended sections of text.
  9. Any modern IDE will let you code in whatever font you like, be it proportional or monospaced. Here the “weight” of characters such as ()<>{} becomes critical. They are often afterthoughts in font design, and can be screwed up in either direction – too heavy and they dominate your identifiers, too light and your structure is hard to parse. As with Peter Golde, I like Verdana.
  10. If you still insist on monospaced for coding (or, even worse, if you’re stuck with an IDE that insists on it), at least use a sans serif font. And since Tobias Jung put all that effort into hunting down ProFont, you could give it a go. But please, not at 8 point. It’s far better to get a second screen…

*Three-space tab stops. You know it makes sense.

[Update: I’ve added another post on ClearType]

Comments (15)

  1. Philip Rieck says:

    As someone who "gets" to go to many client sites and use lots of machines, I’d reprhase #1:

    1. You need ClearType. No, really you do – If you are not too color-sensitive and you have a high DPI LCD display and are driving it with DVI. And you definitely need to tune it.

    I never bother showing ClearType to people except on my own laptop. On desktops (especially 19" 1280×1024 LCD’s) everyone I’ve shown it too says "it’s too blury".

  2. Nat Lanza says:

    One thing you’re forgetting in #10 is the playing-nicely-with-others aspect. One of my coworkers spent a while coding in a proportional font, and eventually had to give it up because nobody else could get his indentation to line up properly. Maybe it would have been better with a whizzy modern IDE (we are, after all, a shop of unfrozen caveman emacs-using unix programmers), but none of the rest of us could make heads or tails of it.

    I’d use Verdana if I could, but Lucida Console is a pretty nice alternative.

  3. Mo says:

    Personally, I use two-space tab stops (because I like two-space indentation). The *big* "but" is: Make sure you use tabs for indentation, not spaces.

    It is, after all, what they’re there for, and it means you don’t impose your choices upon other people.

  4. matt says:

    you should checkout its pretty impressive.

  5. denny says:

    I find for some edting that I use fixed space in a program called textpad.


    when I have a bunch of code that can be cut/copy/pasted as a rectangle it rocks!

    like seting up a dataset and the sql for the data adapters…..

    I can grab a block of sql column names and paste them into a block of sql parameter def’s etc… very fast.

    one of my wishes for the ide is block copy cut and paste ala textpad!

  6. DuncS says:

    11. Make your link colour distinguishable from the text. Consider having hyperlinks permanently underlined.

  7. Rob McEwen says:

    …where possible, add additional "leading" or "line height". This helps tremendously with readability. (probably not possible in visual studio, for example).. but where possible (Blogs, web sites), this really helps.

  8. Good point on DVI – it’s really painful that screen makers are still charging us extra for the privilege of not undergoing useless D->A and A->D conversions that inevitably screw up image quality.

    Playing well with other unfrozen cavemen: yup, if you’re trying to make spaces line up *inside* of a line of code (e.g. making all end-of-line comments start in column 50 or whatever) then you’re pretty much doomed without a monospaced font. On the other hand, if you just care about where lines *start*, then a space is a space is a space, no matter what your font is.

    And I’d completely forgotten about the tabs-vs-spaces religious war 🙂

    PS Working on the link colors. Me unfrozen caveman when it comes to CSS.

  9. You have been Taken Out! Thanks for the post.

  10. JeffD says:

    >> one of my wishes for the ide is block copy cut and paste ala textpad!

    Hold down the ALT key while you click-and-drag some text in the code editor. 😉

  11. SpanishMan says:

    Personally, I can’t deal with a proportional font when editing code. However, if someone wants to do so it shouldn’t mess with your project. This *is* what TABs are for. And if you are using a tab anywhere but the beginning of a line you are going to hose someone with a different tab setting anyway – just don’t do it.

  12. Hirlpoo West says:

    While researching an issue for a customer, I came across this older post by Jonathan Hardwick regarding…