[This fragment is available in an audio version.]
Our story thus far is here. Tl;dr: I looked at a bunch of monospace fonts and recommended a few. The piece went kind of nuts, way past 50K views as I write this, and a flood of comments here and on YCombinator, nearly all of which took the form of “You left out my favorite font, which is X!” So I harvested 14 values of X, and let’s have a look at them! I’ve enjoyed this little project enough to pay actual real money for three of these.
The methodology is the same as last outing. For each font, I post a shot of a the Linux ls(1) man page, switch Emacs into that font, and use it to write my feelings about it. Those fonts I consider excellent advance to round two, where I assemble screenshots of them displaying code in the Goland IDE.
In this episode: Anonymous Pro, Berkeley Mono, Cascadia Mono, Comic Mono, Courier Prime, Dank Mono, DejaVu Sans Mono, Fantasque Sans Mono, Liberation Mono, Menlo, monofur, MonoLisa, Recursive Mono Linear, and Victor Mono. Reactions of the form “But you didn’t look at X” will almost certainly fall on deaf ears.
Anonymous Pro · Start here.
It’s pretty anonymous, all right; as in exhibiting no distinctive features. But it doesn’t vanish, and its over-excited attempt at smart quotes is offensive. Does not advance.
Berkeley Mono (not free) · Start here.
Really a lot of people who reacted to Part 1 of this were passionate about Berkeley, “Best money I ever spent”, etc.
I can see why, a lot of the letterforms are easy on the eye, and it’s pleasantly solid.
I won’t use it though, because the kerning hurts my eyes. “Wait!”, you say. “Monospace fonts don’t have kerning!” OK then, it’s just that the letters are too far apart and the spaces between them are non-uniform in a jarring way.
Also, the baseline of the type feels jagged, which doesn’t help my eyes flow along. Does not advance.
Cascadia Mono · Start here.
It comes in Code and Mono, one of which has those coding ligatures. I’m in team anti-ligature but no biggie.
I can see why they said “fun”, it’s friendly and unassuming. But not for me, the letterforms are just too chunky-square, and it has the awful single smart quotes like Anonymous. Even if I used this in my IDE I wouldn’t in my shell, simply because of the broken underline, too small and squashed up against the bottoms of the letters. Doesn’t advance.
Comic Mono · Start here.
Here’s where I get myself in trouble, because… I kind of like it. Some of the letterforms are objectively ridiculous (“D”, “e”). And, as Wikipedia says, quoting the BBC, “The typeface’s widespread use, often in situations it was not intended for, has been the subject of criticism and ridicule.” Clearly, the scenarios I’m considering here are not what Comic Sans was intended for.
But, to my eye, it’s readable and friendly and unassuming. The characters have a smooth horizontal flow. Granted, its line-height is slightly too small, so your text looks a bit squashed, but that’s really my only technical objection. And, Dear Readers, these little letters carry, among those of our tribe, consequential cultural weight.
It advances. Don’t shoot me. Plenty of my code is Comical. Are you against happiness?
Courier Prime · Start here.
Disclosure: The Courier font was created in the year I was born, originally for the IBM Selectric, which was a fabulous piece of technology (for its day) and don’t you forget it. I spent years of my life more or less living in Courier (often Courier New Bold) on the screens of Unix workstations and X Terminals (If you don’t know what an X Terminal is, that’s OK. It’s not you, it’s me.)
There’s really nothing terribly wrong with this one. I could live with it. But our understanding of how to present electronic text has grown sufficiently during my lifetime that I don’t think Courier Prime deserves to advance in 2023.
But, maybe for screenplays?
Dank Mono (not free) · Start here.
It’s OK, I guess. There’s only one thing wrong, but it’s fatally, unforgivably wrong: That lower-case “f”, which looks like a newt that got squashed on the pavement. If you can live with that glyph, this font might make you happy because it’s nicely light, perfectly legible, and has good flow. But not for me. Doesn’t advance.
DejaVu Sans · Start here.
I can’t find anything negative to say about this one. It doesn’t excite me or make me happy but it absolutely doesn’t get in the way. Nice flow, nice balance, nice line height. It’s got “Sans” in its name and serifs are rigorously eschewed (except for the almost-unavoidable lower-case “l”), which I think adds integrity to the design. Advances.
Fantasque Sans Mono · Start here.
I detect a little influence from our friend Comic Mono, above? And I have to say that “wibbly-wobbly, etc” is not what I think I’m looking for in a working font.
But I don’t hate this. It’s balanced, clear, and readable. Its lower-case “g” with the bottom loop works, which most monospace attempts don’t. The tail on the lower-case “y” is kinda cute. Like Cascadia, in a shell window the underline styling is borked, but that’s a minor sin.
This is definitely not going to be for everyone, but there’s really nothing wrong with it. Advances.
Liberation Mono · Start here.
It’s perfectly OK, really no complaints, but unfortunately the next font in this list does everything it does just a little better. So, doesn’t advance.
Menlo · Start here.
If it’s good enough to anchor the monospaced text in MacOS, it’s probably good enough for anyone. Certainly for me. The fact that I’m a long-time Mac user is probably influencing me here, but I can’t imagine this one really bothering anyone. Vanishes. Advances.
monofur · Start… uh, where? Doesn’t seem to have a home page.
I’m not really sure what to say. The letterforms suggest Hobbit aesthetics, or maybe some other rural neighborhood in your favorite swords-and-sorcery books. They’re really not like anything else. “L” and “l” are unnervingly similar. The “a” should be wrong in theory but sort of works.
The whole font sort of works! Um… I like it? I don’t know if I’d seriously suggest it as a daily driver, but I’m going to advance it anyhow because I really want to see if it’s as charming in the IDE as it is here in my Emacs window.
MonoLisa (not free) · Start here.
I have a problem with this, as I do with Dank: One bad letter. In this case it’s the lower-case “g”. What were they thinking? That tail looks like that poor little letter slipped in the mosh pit and crushed its sacro-iliac.
Having said all that, it’s pretty easy on the eye, and I’m inclined to put some weight on its home-page’s claim that it’s optimized for readability. That “g” is not (quite) as egregious as Dank’s “f”, so should probably let it advance. Clever name, too.
Recursive Mono Linear · Start here.
Whereas I’ve been friendly to a couple of less-than-serious fonts above, I can’t get past the way this one presents all-caps; they look like menu text in one of those diners where they interview MAGA voters. Just not something I need invading my work-day. Doesn’t advance.
Victor Mono · Start here.
No thanks, not for me. There are people who like this kind of thing, see Iosevka in the last instalment. This is way more polished than Iosevka but that’s a low bar. I can’t imagine inflicting this one on myself. Doesn’t advance.
The finalists · That leaves Comic Mono, DejaVu Sans Mono, Fantasque Sans Mono, Menlo, monofur, MonoLisa. Let’s go look at some actual code, from this file.
Here they are, but they’re not alphabetical, because I want you to look at them; scroll back and forth a bit. See if you draw any impressions before you check which is which.
You can tell which is which by click-to-enlarge and look at the labels, or the filenames.
Sidebar: Dark mode? · I use dark-on-light in almost all my apps on almost all my devices. I even know why: I spent the first decade or more of my career working on ASCII terminals, 24 80-column lines in green or orange or white on black. If you got an upscale terminal from Ann Arbor or Falco, you could have 40 lines, and you were an aristocrat.
When modern bitmapped workstations showed up and had black-on-white like paper, it felt obscenely luxurious, and I’ve never gotten over that. But I digress.
I know a majority of people who look at code these days do it in dark mode. It’s fair to wonder whether that would change any of the impressions or conclusions here. Don’t ask me, though.
Conclusions? · There’s nothing here I couldn’t use.
Menlo’s the winner, by a mile. It does everything any of the others do, plus it fits more lines into your editor window than the competition. I think it’s the only one that’s going to join my all-star repertoire of Fira Code Retina, Hack, JetBrains Mono, and Inconsolata.
It’s a little annoying that none of the non-free fonts are firmly in the top tier; although I could learn to live with that sketchy MonoLisa “g”.
There will be times when I’m fighting some galactically stupid bug, or writing a blog about some catastrophically sad problem, when I may resort to Comic Mono or monofur, just to cheer myself up.
Comment feed for ongoing:
From: Andrew Reilly (Feb 15 2023, at 03:05)
You're two pages in and I can't believe that neither you nor your commenters have mentioned any of the Lucida Sans variants. I've used it (Lucida Sans Mono or Typewriter) whenever it has been available, back to the earliest days of X11 bitmapped fonts. Plenty legible and just jazzy enough to keep you paying attention. Not really fond of serifs, so Courier variants were never my thing. The modern Bitstream Vera variants are plenty easy to read, but they have the plain boring feel of '70s line printer.
I know. I must be weird or something. Nothing new there.
From: Kashyap (Feb 15 2023, at 10:56)
I’m not sure if the trail period is over, but you should really give TheSansMono a try (precursor to Consolas, used in NoStarchPress books). Even Raph agrees to it.
Secondly, many editors (probably even terminal emulators; iTerm 2 is adding support for this, for example) now feature ways to enable stylistic alternatives (not just ligatures), which can get Monolisa to use a non double-deckered “g” if I recall.
From: JD (Feb 16 2023, at 09:25)
is a fun “game” to compare monospaced fonts.
From: Tekl (Feb 18 2023, at 03:26)
Thanks for both articles. They were fun to read and remind me to my own journey through coding fonts. It took me some years to find “my” font that satisfies me that much, that I never did a font research again. It was hard to find the winner as some of my favorites were expensive. So, I dug the net to get illegal copies of them. At the end it was PragmataPro that pleased me the most over some weeks.
The decision, to spend so much money for a font, wasn't easy. There are so many free fonts out there which also work well. So, I deleted the font, and again I played with the free alternatives (many of the ones in your articles). I used many fonts for weeks and finally came back to Menlo. But I still missed PragmataPro a bit.
After switching from an iMac to a MacBook Pro, new parameters came into my focus. Because of the smaller screen and I’m dealing with plenty of windows side by side, the need for a condensed font came up. Again, I tried the free alternatives for weeks, but I wasn’t satisfied. So, I remembered my secret love, PragmataPro. But I required some arguments why I should spend money.
Some day I looked at my working space in my living space. Over the years, some expensive handcrafting tools like Japanese saws have replaced my cheap tools. The investment was worth every penny. So, I declared my coding font as a tool. As I like well-crafted tools and how pleasant it is to work with them, I ordered PragmataPro and never regretted it. I also contacted the designer for some new ligatures and he included them. Today I don’t use the ligatures anymore, but that’s a different story. ;-)
From: April King (Feb 18 2023, at 13:19)
Really great coverage, even if as a huge fan of Berkeley Mono I'm sad that it didn't advance.
I definitely feel like it does better as a terminal font than it does as a programming font, where I tend to prefer JetBrains Mono.
I do know that it version 2.0 of it is coming out soon, so it'll be interesting to see if it addresses some of the spacing issues.
From: Claire (Feb 23 2023, at 10:40)
After several months of considering back in 2020, I bought MonoLisa to replace Fira Code (which doesn’t have italics) and have been happily using it ever since in Emacs and terminals. As Kashyap mentioned, MonoLisa has a stylistic set option to change the lowercase g to a more traditional looped two-story g (and, in fact, there are _two_ stylistic sets, so you can get a loopless-g as well).
Alas, Emacs doesn’t let you change stylistic sets (yet, I presume, as HarfBuzz supports them), but MonoLisa has a tool to let you choose various options and generate a custom font with your choices. (They also have a variable version if you want to mess with the weights beyond the ones provided.)
The creators are also pretty responsive to feedback, which is nice.
From: Norm Tovey-Walsh (Feb 24 2023, at 01:43)
Deaf ears and all, fair enough, but I was persuaded to buy Operator Mono from Hoefler & Co a few years back. It's interesting and I did use it for a long while. Might again. I find it refreshing to switch them up occasionally.
But then, I edit in Emacs with a proportional font a lot of the time, so I might be some kind of mutant.