Coding Horror

programming and human factors

Is Your IDE Hot or Not?

Scott Hanselman recently brought up the topic of IDE font and color schemes again. I've been in search of the ideal programming font and the ideal syntax colorization scheme for a while now. Here's my current take on it.

Visual Studio 2005 font and color scheme

As you can see, I've finally given in to the inevitability of ClearType. Someone pointed out the zenburn vim color scheme in the comments. I think it's a nice dark background yin to my light background yang. So I set it up as an alternative for the dark background enthusiasts.

Visual Studio 2005 font and color scheme, Zenburn

Try these IDE color schemes yourself. Download the exported Visual Studio 2005 Fonts and Colors settings files:

To import, use the Tools | Import and Export Settings menu in Visual Studio 2005. But be sure you have the necessary fonts installed first – Consolas for the main font and Dina for the output console font.

Here's how to export your own IDE font and color settings:

  • Tools | Import and Export Settings...
  • Select Export
  • Click the All Settings node to unselect everything in the tree
  • Expand the tree to "All Settings, Options , Environment"
  • Click the "Fonts and Colors" node
  • Click next, name the file appropriately, and Finish.

What we really need is for some enterprising coder to create a "Hot or Not" site for IDE color schemes, where we can post screenshots and downloadable *.settings files for our preferred IDE color and font schemes. Update: Someone set up Studio Styles.

If we're posting comparative screenshots, it might be a good idea to use the same code sample in each one. Here's the code sample I used in the above screenshot, which highlights some potential programming-specific font legibility issues (O vs. 0, I vs. l, etcetera).

#region codinghorror.com
class Program : Object
{
  static int _I = 1;
  /// <summary>
  /// The quick brown fox jumps over the lazy dog
  /// THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
  /// </summary>
  static void Main(string[] args)
  {
    Uri Illegal1Uri = new Uri("http://packmyboxwith/jugs.html?q=five-dozen&t=liquor");
    Regex OperatorRegex = new Regex(@"S#$", RegexOptions.IgnorePatternWhitespace);
    for (int O = 0; O < 123456789; O++)
    {
      _I += (O % 3) * ((O / 1) ^ 2) - 5;
      if (!OperatorRegex.IsMatch(Illegal1Uri.ToString()))
      {
        Console.WriteLine(Illegal1Uri);
      }
    }
  }
}
#endregion

If you're formulating your own ideal font and color scheme, the only specific advice I have for you is to avoid too much contrast – don't use pure white on pure black, or vice versa. That's why my background is a light grey and not white.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror