Hacker News new | past | comments | ask | show | jobs | submit login
Coding Font Selection 'Tournament' (daringfireball.net)
142 points by tosh 5 months ago | hide | past | favorite | 122 comments



The link to the tournament looks so much like a header (which I assumed would just be a permalink to the blog post that I am reading) that I spent a full minute looking for it


I think this is a hold-out from old-school blogging, where each post would have a url that was often an external link. Feeds often reinforced this, favouring the external link over the 'blog post permalink' (I guess since, who would care about that when they already have the full text content?).

On the site's home page, the posts include a "" link which points to the post itself. I'm guessing the reason the posts don't link to themselves is another hold-out from the old-school: a page linking to itself was typically considered bad practice.


I had to come here to see if anyone else was dumbfounded. The site is just generally awful to read.


I ended looking for the link then clicking the apparently first link “Via Jason Snell”. In that page the link to the tournament is also the header (which I did not notice). The last paragraph on that page had a link to the tournament and that’s what I ended up clicking. I’m glad I’m not the only one


Thank you!


I became an Iosevka convert this year. If there are things about it you don't like, you can likely build a custom variant that fixes those things. There are 54 variants for the zero character, for example. Pick your poison. https://typeof.net/Iosevka/


I like the build of Iosevka that the Zed editor people made, called Zed Mono. It's hosted on github [0] but there are no screenshots. You can see kind of how it looks in the screenshots of their editor on their website though [1]

0: https://github.com/zed-industries/zed-fonts/releases

1: https://zed.dev/


I use it for a few years already. It is not an option in this game, right?

I got Nanum Gothic Coding, but couldn’t find a good site to compare it with Iosevka side by side to check if they are similar


No, it's not an option in the game. Judging from comments around the interweb, there are a number of good choices that aren't represented.


I mean, if it were, it would always win...


Yeah I find Iosevka extremely readable and love how narrow it is. Basically the only monospace font I use.


I really like using Light for coding and Extra light weights for comments. It's a fantastic font.


Been on Iosevka for ages. Nothing else comes close for me. Not even berkeley condensed


I use comic shanns mono [0] for both printscreen annotations and in neovim with the hopes of subtly trolling whoever I'm sharing screen with.

For three years have I now suffered, with 0 reaction. Three years. I haven't lost faith though... one day, someone will say "what the hell kind of font is that? why would you do that?", and I will chuckle.

[0]: https://github.com/jesusmgg/comic-shanns-mono


I appreciate your pursuit of this artistic endeavour. Truly great art is always the product of great personal sacrifice.

That said, it does make me wonder about two alternative approaches:

A) When a screenshot is detected, change the font, produce the screenshot and then change it back. You could probably do this on a per-application basis with something like AutoHotKey, or there's probably a deeper way of doing it on the OS-level.

B) Use the magic of AI. Given it's monospaced, you could probably modify an image model to replace the relevant font of the screenshot.

Of course, these approaches may compromise your artistic integrity.


As a typography dork who annoys friends by pointing out fonts all the time, it saddens me I am not your coworker to fulfill this long con. Much respect.


I use Comic Mono [0]. I think it took about a year before someone asked if I was coding in Comic Sans.

I honestly love it. It's round and cheerful, and suits my crappy vision quite well.

[0]: https://dtinth.github.io/comic-mono-font/


Been using it for years now, ever since I discovered it. Obviously I use a version with ligatures mixed in:

https://github.com/wayou/comic-mono-font

I've tested all Ubuntu/MacOS/Windows Fonts, as well as Operator Mono, Fira Code and most of the other famed fonts.

But Comic Mono is one hell of a drug. It's beautiful and legible.


> Obviously I use a version with ligatures mixed in:

Thanks for the link!


I bought and use Comic Code [1] and use it as my main coding font. I actually really like it.

I work from home and only my wife has noticed...she thinks I'm crazy.

[1] https://tosche.net/fonts/comic-code


Monaco, which used to be the default font for MacOs, is my favorite. And it is a cousin of comic sans. It was designed by Susan Kare, one of the original designers of the Macintosh.

So: plenty professional and serious!


Isn't comic sans actually very readable and a recommendation for dyslexic people?


I extracted the TempleOS font (which itself was mostly ripped from FreeDOS apparently) and used it for all the text in my browser with a CSS override addon a few years ago:

https://github.com/rendello/templeos_font


Without Comic Sans (https://www.youtube.com/watch?v=ynliPsRmmcQ) the world would be a worse place.



Looking at their about[0] page, it seems like Typogram is a company started by the person who also created Coding Font. That might explain the "by Typogram" label.

[0] https://typogram.co/blog/about-us/


The Site is very slow on my Safari 17.6, Chrome and Firefox worked much better.


Interesting, got font I never even heard of: DM Mono. I guess I’ll try it.

Besides no proprietary fonts (I use Cascadia Code currently… actually this is also open, maybe only google font fonts?), some other things I wish were different:

1. Some alternative to the one-strike tournament. I got Space Mono vs Oxygen Mono in the first round, and liked both of those a lot more than most others. Oxygen won, but Space would have won against most other fonts.

2. Independent sizes. I don’t like tiny fonts (HN is at 220% zoom for me), some of these fonts are very small, so to properly compare e.g. Inconsolata with most other fonts, I’d have Inconsolata at 18 while my default was 17.


Its so dependent on font size (or more accurately PPI) that its hard to pick. On my current monitor my favorite Berkely Mono looks thin and hard to read unless I bump up the size higher than I'd like. But drag it over to a Retina screen and it looks fantastic.


Yes, most (if not all) new fonts nowadays seem to assume (very) high DPI and also have no hinting for low DPI. Every time I check a font that is praised here, it looks terrible at small point sizes.


Fira Code, which I've been using for years anyway! I found disproportionate glee in picking my usual font


Fira Mono.

I saw that some of the fonts had a ligature for === making it a long congruence sign instead of three equals signs, and I avoided those like the plague.


Same.

I was surprised that both Fira Code and Fira Mono were options, that was a bit cheeky.


Same here. I've never felt tempted to use another font since I adopted it--well, except for the Nerd Font variant, of course.


I ran this early last year when I was doing another coding typeface overview. I picked “Hack”, and wrote about it here: https://anderegg.ca/2023/02/16/typeface-tournament

This time I ran it and got “DM Mono”, which went neck-and-neck against Hack. I’m not sure this was in the lineup last time, but it’s a really nice typeface!


Unpopular opinion, Monospace fonts are slower to read.

Since I mostly code in camelCase, and I don't like it, I modified this proportional font with some padding before capital letters and made the space char much longer https://github.com/ericfortis/verdanacamel

The caveat is that it doesn’t tabular align lines, but I think that’s something IDEs should render for us.


Programming in variable spaced fonts is weird but understandable. Programming in a font which actively lies to you about the presence or absence of spaces is batshit crazy.

I agree with you about tabular alignment though. I do think it's stupid that "readable" code involves emulating desktop publishing metaphors with arbitrary numbers of spaces.


It is not lying, it’s not creating a space, it is padding capital letters. After a few hours they are not confusing. At any rate, that’s a workaround for camel casing.


Showing space (calling it padding is just semantics) where a space doesn't exist is the font lying to you.


> Monospace fonts are slower to read

Based on what?

I don't think reading speed has ever been the limiting factor for me when reading code. My comprehension is always much slower.

On the other hand, monospace fonts are vastly clearer. Exact punctuation is easier to see. And, obviously, you can align things however you want.


For the most part the speed gain of that font comes from the left padding on the capitals. But proportional fonts are faster to read allegedly because of the shape words forms. At any rate, before seeing that study I was anecdotally convinced.

Although speed is not a limiting factor, the little extra effort it takes to read monospace is taxing. In other words, not having to focus on the words with more deliberation helps on long days.

For the clarity, I also modified some punctuation glyphs. For instance, the ‘!’ is larger.

And tabular alignment is something IDE could make for us. There are some DSLs that have tables, IntelliJ has them.


I can’t explain why they are faster but I can demonstrate it. I think the best example is putting two man pages with different fonts side by side.


Oh I totally agree that reading body text is faster with a proportional font! I don't think many people would dispute that.

But with code specifically, it seems harder to see the exact punctuation. You're not scanning word shapes, you have to pay attention to individual symbols. I shudder to think of a RegEx in a proportional font, where a period barely has width. Or how do you deal with a single quote followed by a double quote? Or two single quotes? Or zero vs oh?


I find proportional fonts terrible for coding because they make subtle differences in punctuation hard to see, suh as " versus '' or … versus ... .


It doesn’t turn out to be problem in progress. Even having I and l look the same isn’t something that I ever need to think about.


I l | 1

I once had trouble with a variable named ‘l’ because I thought it was a pipe (bitwise or in js)


I just tried it out, but then I realized (a) I never use capital I as a standalone variable name...and I never used it period. i will always be an integer anyways. Since coding standards enforce nice variable names and forbid ascii spacing art, ya, it never comes up.


Ligatures are not particular to proportional fonts. For example, Hasklig has a few handy ones.


I don't like the spaces inside the camelCase but I do think spacing should be something IDEs fix for you, say for example a project uses 2 space indentation and you like 4, the IDE should be able to render virtual spaces without source changes.

Same for multiline strings, it should be able to render the whole block aligned to the start of the string without extra padding in the other lines.


Not that anyone asked, but after using and enjoying Inconsolata for the last decade I’ve come to really love Söhne Mono in the last few months.

Ref: https://klim.co.nz/retail-fonts/soehne-mono/


Even as someone who has bought many fonts for coding, including Pragmata Pro, Operator and others (i.e. not cheap ones), I was blown away that for just the Mono weights in regular and italic is nine hundred and sixty dollars.

Shame, I was curious about trying it. Operator and Pragmata go for $199.

It also irks me that I cannot buy a single user license for Sohne, but a minimum of a 5 user license.


Individual personal users just aren't type foundaries like Klim's target market. They want to land large businesses who use their typefaces as their dedicated brand font - and the pricing reflects that potential value.

I agree though that they've missed out on an opportunity to land individual personal use. They've just slapped their standard license on it, and didn't think much about it.


  > after using and enjoying Inconsolata for the last decade
Biggus Dickus?


You're thinking Incontinentia


Well, it is a pretty nonsensical name for a font. It appears to mean "unconsoled", which (a) has no valid semantics as applied to a font, since fonts don't have thoughts, moods, or feelings; and (b) has a very negative valence - being unconsoled is a bad thing.


Inconsolata was inspired by and named after Microsoft's Consolas font, which was presumably so named as it was meant for the console.


OK, but by the time you're just picking ordinary words for the name of your product, should you have any level of concern for what those words mean? Are we going to follow up with "inconsolable"?


Consolation! Console Nation? I am sure they have a crack font-naming team in Redmond, we haven't seen the end of it yet.


Haha is using Inconsolata a flex?



Me too. If anyone likes that font but doesn't want to spend so much money, I found SF Mono and CommitMono to be kind of similar looking.


The order website and compiler are so neat.


Doesn't have DejaVu Sans Mono, which would be a better contender than the obviously garbage fonts. I got Source Code Pro as the winner, which I think is very similar.


DejaVu is one of my favorites, and it is odd to not see it included.

Input Mono [1] by David Jonathan Ross is what I use these days. It's very similar to DejaVu, but I like it better because its geometry is a little rounder. DejaVu's "m" is very narrow, and it has fewer serifs (l, i, etc.), but it also has a serif version for those who want that (it's still very "sans"). It comes in many weights and has a proportional version which is top notch even for graphical design. The designer spent a lot of time on the fine details of the font. It's free for personal use.

Jetbrains Mono, which is included in the competition, is very good. Very similar to both DejaVu and Input.

[1] https://input.djr.com/


This should have an option to allow using system fonts (e.g. Consolas) to replace the proposed garbage fonts (such as https://www.codingfont.com/MajorMonoDisplay ).


Less conveniently, you can use your browser to inspect the code panel and change its font to whatever you like.


Funny, it gave me Roboto Mono, a font I've never used. I use whatever VS Code's default is, or IBM Plex Mono with Fira Code's ligatures when I decide to stop being lazy and go set a font. The differences between most fonts don't bother me much.


I'm a litigator and a fan of IBM Plex Mono and Plex Sans for my drafting!

(I draft and typeset my filings separately; IBM Plex would probably be viewed with disfavor in court, simply because it doesn't look like Times New Roman. I push the envelope by using Matthew Butterick's Equity family for that.)

The IBM Plex family is super, both on screen and in print — particularly for free! Very legible and well thought out.

The other typeface I prefer for my drafting is Atkinson Hyperlegible (also free).


Another MB fonts enjoyer! I like how MB designed Equity specifically to be metric-compatible with Times New Roman. Have you ever been called out for using it?


I see you are a person of culture! :-)

Never. In state court most people default to TNR and are blind to typography, so no one even notices. In federal, my opponents are usually the same way but many judges at least have the sense to use Palatino or something Century-like instead of TNR.

In state court appeals, we're required to use 14-point of either Arial or Bookman Old Style (double-spaced). D-: My eyes would bleed if I drafted with that typesetting — it's horrid.


Arial or Bookman Old Style?! … It's pretty hard to do worse than those two fonts. Eeesh. I'm so sorry.

I'm very glad to hear you get away with Equity. I'm well past the age where I am forced to write essays for school using TNR; when my kids are in school, if such madness persists, I'll help them swap it out for Equity and see if their teachers notice. >:)

Aside: I use the Stylus plugin for Firefox to read HN in Concourse. It makes for a more pleasant reading experience.


Because IBM Plex Sans JP exists I use the IBM Plex fonts. It's a whole lot easier than trying to pick fonts that work well together with a Japanese font. And IBM Plex looks fairly nice, so that helps.


My preferred font, Hack, made it to the final four before losing on a toss up. IBM Plex Mono won and is pretty damn close.


The deal-breaker with Hack, for me, is its curly quotes—they are just far too indistinct. A lot of monospace fonts make this mistake, although there's a pleasing number featured here that don't.


IBM plex mono also won out for me, although I’ve been using Fira Code for ages.


I used this to pick IBM Plex Mono for Gwern.net, which narrowly beat out the Adobe Source Code Pro which ranked highly & we had been using before.


JetBrains Mono

That's actually what I use and thinking before I even started it.

It seemed like a lot of the fonts were sort of dim looking. I like the brighter font because it makes it easier to read.


I was using JB Mono until recently I started switching to Iosevka - it's narrower and provides more horizontal space. Both fonts are great.


It has anonymous, which I used before I switched to my current favorite, mononoki https://www.programmingfonts.org/#mononoki

It's also missing the GitHub Monaspace fonts, which I've been playing with, but haven't fully switched for my terminal and editor.

They should add all the Nerd fonts: https://www.nerdfonts.com/font-downloads


mononoki is GOAT


I wish there was a version of this for proportional fonts as well. I never use monospace fonts for coding anymore if I can avoid it, but I'm still in search of the “perfect” proportional coding font.


My favourite is Verdana and I haven't found anything else that feels similar


Once I discovered monaspace font family, I never looked back

https://monaspace.githubnext.com/


SF Mono is by far my favorite, unfortunate it can’t be included It can be extracted from the apple dev fonts dmg if you want to use it in your editor on a non-OSX platform


You may gaze upon SF Mono only in conjunction with the APPLE DEVELOPER TOOLS; any unauthorized viewing will melt your eyeballs.

Here's the location of the Ark, for those still curious:

https://github.com/thelioncape/San-Francisco-family/tree/mas...


Fira Code, Inconsolata and IBM Plex Mono (using now for the last few years) are my favorites. After playing the game, it gave me Noto Sans Mono


Closer to the end the fonts became well nigh indistinguishable for me. I ended up with Roboto Mono but would probably be unable to distinguish it from close contenders on blind testing.


Is there any place that compiles all results? A leader board?


Unfortunately, it's missing a lot of commonly used paid fonts (Operator, ...), but I understand that it is mostly a licensing problem.

For the last couple of years, I am a Cartograph[1] lover. But Connary had changed the license pricing this year, making it a one of the more expensive coding fonts :(

[1] https://connary.com/fonts/cartograph/


Not sure if anyone is like me but I don't have a favourite. In fact, no matter how much I love a font, I have to switch it every few months or I get sick of it.


The best monospace font for me for coding and terminals is Atari ST 8x16 System Font.

But Iosevka Term works for me the best of all the non-pixel fonts out there.


I've done this before and just did it again to see if my tastes have changed, and to no personal surprise, I landed on JetBrains Mono again


The white on grey text on this site is absolutely brutal on my eyes. I agree that Source Code Pro is a great coding font though.


Use a dark mode extension like this one on FF: https://addons.mozilla.org/en-US/firefox/addon/dark-mode-by-.... Works well with HN


Thanks, I like dark mode but HN in its natural state is actually super readable for me (plus I'm used to it).


I’ve never understood how John Gruber presents himself as a connoisseur of fine UX and typography, and then for decades publishes a bland, often difficult-to-read site.


Though it's not actually a vector font, I've always liked the aesthetics of Fixedsys. And I still do.


Interesting, I ended up with Hack vs Source Code Pro twice and still picked Hack.

The site dont work very well with Safari 17.6.


Ever since I set my text editor to use Bookmania, I have smiled every time I open it. Fuck monospace.


Victor Mono, an absolute pleasure to use. Though Jetbrains Mono seems to give it a run for its money. The deciding factor seems to be the italic cursive font. Just enough differentiation to really set comments apart from the meat of the code.


I got Red Hat Mono going through the tournament. The font that I actually use, Source Code Pro, got second place. And I have to say, these two are so similar that there's basically no reason to switch between the two.


No tournament is needed. Everyone knows that Source Code Pro is the best coding font.


I reliably come out of this with Inconsolata. It's not a bad font, but I do prefer SF Mono & Monaco - it would be nice if this showed them in the tree if they were installed.


Yes, I would love to know what my runner up was. I unintentionally ended up with the same font I currently use, Fira Code… at least I’m consistent.


For me it's Inconsolata closely tracked by Ubuntu Mono.

For some reason DejaVu Sans Mono wasn't in the contest.


It doesn't include the actual best coding font https://www.dafont.com/pointfree.font


In a similar fashion, there's Comic Mono.

https://dtinth.github.io/comic-mono-font/


Yeah, but Pointfree is the superior and more authentic monospaced Comic Sans descendant, because Comic Mono has serifs and overly regular strokes.


It's hard to switch away from mononoki, Iosevka comes really close, if I spend enough time to full customize it to my liking maybe it could become my #1 pick.


Jetbrains Mono and Fira Code made it to the run off, but Fira won out in the end. Having used Fira for many years, at least I'm consistent.


Only monospaced fonts get to compete, which is a shame for those of us who use proportional programming fonts.


PT Mono for me


That’s where I ended up as well. Boring but clean.


My favorites are PT Mono (Mac native), Commit Mono and GNU Unifont (works well on smaller screens).


Roboto Mono for me - Off to see if its on NerdFonts ...


Noto Sans for me


Victor Mono all the way!


Did the game for fun and ended up with Inconsolata. The word "coding" should have been obvious by itself but no bitmap font? Really? Terminus or SGI screen over any of these, even with high DPI.

Also, the game simply didn't work on Firefox, here.


you guys don't code in comic sans?



And while it's not free, there's also Comic Code: https://tosche.net/fonts/comic-code


I use comic mono currently but switch on a semi regular basis with fira code and jetbrains mono depending on mood.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: