Fun Links 2016-02-12
There are many things about which developers can get quite passionate and even defensive. We are a strongly opinionated lot. There are some classic examples: brace style, emacs vs. vi, any language vs. any other language. It boils down to personal preference in the end.
Another area where personal preference and passion can come into play is with coding fonts. I love typography, and the inherent challenges of creating (or finding) the perfect coding typeface is exciting. However, I find at least personally, that I’ll spend some time searching for an excellent coding font, settle on something for a period and then start searching all over again.
This restlessness is akin to some people needing to rearrange their living space or their workspace occasionally. Because as a software developer, nothing is as “in your face”, aesthetically speaking, as your coding font.
However, evaluating a coding typeface is not an entirely subjective experience, there are some more objective things we can evaluate. Glyph coverage (how many different characters the font renders) is a good one if you have any needs for Unicode support or writing in anything other than English. Another is how well the font distinguishes various character groups:
. for example. Check for the position, size and shape of the symbols and operators that you use often. Do they work well with each other? Does it support multiple weights? Is there a separately designed italic version? All things to consider.
Below is a short list of fonts which I use, or have recently used, with the usual brief description. I’ll also throw in a list of alternatives because I recognize that not everyone has the same criteria for choosing a typeface. Before I do that, I will mention of course that there are a couple of standard monospaced fonts included with most operating systems, like Courier New, Consolas, Monaco, Menlo and Bitstream Vera Sans Mono.
Monoid is my new font interest as it supports coding ligatures. Ligatures take two or more characters which often appear together and combine them into a single glyph. So Monoid can take your
=> operator for example and replace it with a proper double arrow. Apart from this, it has a nice large x-height and prominent punctuation.
Envy Code R
Envy Code R has been my Visual Studio font of choice for many years. It has a nice tall x-height and looks good without anti-aliasing. The particularly nice thing about it for Visual Studio was that it has a specific version which treats “bold” as “italic” because Visual Studio used only to let you specify whether a font was bold for certain syntax colourings. I preferred to have italics in my source rather than bold.
Input Mono is a member of a family of three typefaces all using the same basic form. A nice clean shape, it has many weights and styles and allows you to customize some of your letterforms, so you can get the look that you like. The Serif and Sans versions of this font are good for things like Markdown documents where alignment isn’t so important.
- Inconsolata (https://www.google.com/fonts/specimen/Inconsolata)
- Fira Code (https://github.com/tonsky/FiraCode)
- Source Code Pro (https://www.google.com/fonts/specimen/Source+Code+Pro)
- Hack (http://sourcefoundry.org/hack/)
- Roboto Mono (https://www.google.com/fonts/specimen/Roboto+Mono)
- Anonymous Pro (https://www.google.com/fonts/specimen/Anonymous+Pro)
- Profont (http://tobiasjung.name/profont/)
- Proggy (http://www.proggyfonts.net/)
- PragmataPro (http://www.fsd.it/shop/fonts/pragmatapro/) (not free)
- Fantasque Sans Mono (https://github.com/belluzj/fantasque-sans)
- M+ (https://mplus-fonts.osdn.jp/about-en.html)