Jetbrains Mono | |
---|---|
Pros | Cons |
Italics are easier to read | Less beautiful, lacks stylized characters |
Characters have defined space on their sides | Lowercase and Uppercase letters are more similar |
Supports languages other than english | Does not offer options |
Included in JetBrains products | Lacks a retina font variant |
Easier to scan through code | |
Backed by a company |
Fira Code | |
---|---|
Pros | Cons |
Different and stylized characters | Characters don’t have all the same margins around them |
Customizability | You have to build the font to customize it |
Retina font that works everywhere ligatures do | |
Easier to read through all your code | |
Symbol strokes end at differing heights, marginally easier to match up differing brackets | |
There’s not a dot inside zero unless you configure the font that way |
I put together a few basic samples of the fonts, nothing fancy. For Fira Code, I did not use the Retina version of the font to keep the playing field level - we’ve already established that JetBrains Mono does not have a retina version and that that is dumb.
Here is some sample TypeScript code, it’s animated and switches between each font every few seconds. I think the key take away here is: look at the comments, and look at the code overall versus the actual readability of the code.
Before you contact me to tell me I should just use an XML Parser: trust me, I would, but it’s a proprietary syntax - not much different here, but it’ll break parsers later.
A minor takeaway on this one, check out that regex in the block for “If the tad does not close itself”. JetBrains Mono does not have a ligature for a pipe and a greater than sign, but Fira Code does. I don’t know of any syntax that uses such a symbol, but I would love that ligature there - however, for regex and probably other such syntaxes, that ligature does make things a tad more confusing.
And here are just some characters and symbols from both fonts right next to each other, nothing crazy.
A takeaway on this one for me is the at-sign sybmol and the double ampersands ligature in terms of pros for Fira Code - I really don’t care for how JetBrains Mono cuts off an ampersand’s tail just because it’s a ligature, and look at that stroke-width consistency for JetBrains Mono.
Now, this is personal, and I just wanted to share all my thoughts and key factors on it, so take it with a grain of salt.
My takeaway is that while JetBrains may be a bit more polished and collected, I think overall that Fira Code brings some much needed style into your code and that’s worth the exchange in and of itself, plus of course the Retina version of the font - that could almost win it by itself, too.
I believe that Fira Code makes it much more enjoyable to read through code as you try to make sense of it, as well as having that extra style I mentioned. In contrast, I think JetBrains Mono may well be better for actually writing out your code - with everything being more consistent and straight forward with no fluff, that probably reduces the complexity of looking back and around inside of your code.
If I were someone to have multiple config setups for my IDEs/editors, I would probably honestly use JetBrains Mono when I write code, and Fira Code when I review other code, or when I come back to older code. However, I’m not, I review code and revisit old more more often than I write new code, and I love that extra flair so much from Fira Code, I think that wins me right on over, and I will continue to use Fira Code.