Iosevka for me, you can custom build it with the letter designs you want, it supports ligatures and it's condensed without been cramped (also has Term, non-term and Slab variants in the same build).
It's replaced my mono font everywhere, Fira Code is lovely but it feels way too wide once you've used Iosevka.
The only font that comes close is Pragmata Pro but that's not free.
I paid for the original Pragmata font in 2004, and he has kept sending updates surprisingly often ever since. I suppose I upgraded to Pragmata Pro in 2011, so only 8 years of updates on that. Money well spent for 40 hours a week of use
I wasn't knocking Pragmata Pro and the dude has the right to charge for his work.
That said for my needs Iosevka and Pragmata are pretty much a dead heat and one is free and open.
If you prefer Pragmata then sure the the cost per hour over a decade is irrelevant (the same reason I pay out of pocket for intellij ultimate at work, work would pay for it but I use it outside of work and it's not worth the hassle).
I have never really liked any of the other popular coding fonts and it really comes down to one thing: They are all stupid sans-serif fonts.
I have found, ever since displays grew out of the garbage 100 dpi age, that serif fonts are vastly more enjoyable to look at and easier to quickly visually discern.
As a result, Iosevka Slab is basically the only code-optimized font I can even consider.
Beyond that, I prefer a narrower font for monospace text. Monospace is already such an awful layout for readability, but, making it narrower at least helps reduce the horizontal scan range without imposing insane limits like 72 character lines.
> Monospace is already such an awful layout for readability...
So why code in a monospaced font then? There's no rule that says you have to write code in a monospaced font. I've used proportional fonts for many years, and almost every programmer's editor supports them.
I'm currently using a slightly modified version of Trebuchet MS (I replaced the tilde with a better one). Another example is Input Sans, one of the three fonts today's thread is about.
Reasons: I haven't found a proportional code font I like very much and, more importantly, many—MANY—existing code files include text arranged with the expectation of monospace fonts and if you use proportional, they become a mess.
All respect to those who like proportional fonts, to each their own, but I think of code as a 2d grid.
Same reason I use syntax highlighting: color is another dimension that helps me see what I’m doing. This is particularly notable in Lisps, where turning on rainbow parens can be like switching on a light switch, immediately helping me understand the shape of the forms.
It seems the weirdest thing to me that fonts – especially monospaced fonts – vary by width.
I'm working on a forum redesign at the moment. Picking a font took a surprising while, because the font the forum had used – Source Sans Pro – is naturally narrow. Put something wider in, and it's entirely not the same.
I have, similarly, replaced monospaced fonts everywhere with Fira Code. Characteristically, Iosevka looks too narrow to me. :)
I think Mononoki has reasonably similar proportions to Source Sans (matches better than Source Code), and is pretty and highly legible. Only issue is "bold is taller than normal" and vertically misaligned parentheses.
I'm fond of Iosevka as well - but the downside to the narrow font is that it uses very slightly more vertical space than say Bitstream Vera Sans which is my other "go to" font.
As cool and readable as ligatures are in print design and typography, I find them to be unhelpful and even sometimes downright confusing when it comes to code. For me they violate a general (unspoken) principle of monospaced fonts, which is not just that each character is the same width, but that each character is discrete. It can be difficult to tell _how many_ characters the ligature comprises.
When do you need to tell discrete characters apart? Is it personal, rather than professional – something about the way things ought to be, from your perspective?
I find Fira Code to have too harsh serifs and unnecessary details like the open lowercase g. Given my love for Input, I emailed DJR (the designer) about including ligatures but he wasn't interested, so I drew a set of my own: https://pasteboard.co/HWhfhsE.png
You know what I never expect to do? Use a VPN just to access the websites my Internet provider is too slow to reach. Tried to do that with the link you posted, still to no avail.
Could you repost your image to, say, Imgur? I'd like to see how you'd implemented ligatures.
(Turned out I remember Input because I saw Output, a font by the same author, and thought "Oh, that's nice! I could use that on my webs-- oh, it's not cheap. Bugger".)
I'm not a programmer. I'm a writer and a designer. Coding is what I do when I don't do either – less as a hobby and more a way to vent my creative frustration.
Aesthetics is important to me. Being in an ugly environment brings me down. Fira Code brings positive aesthetics with it. And ligatures are cool.
I'm the kind of a person that does things simply because they're cool.
I used Fira because I felt the same about ligatures, until I found Hasklig. It has similar ligatures, but the overall font is better imo. https://github.com/i-tu/Hasklig
Oh god, that website though. How many CSS animations do I have to suffer through before it lets me scroll down to any actual information? Make it stop!!
Man, you weren't kidding! That is literally the most useless website I've ever seen. I spent over two minutes on it and still couldn't find a simple table of examples.
The examples on the IBM site had zeros without slashes or dots. And the character set showed a slashed zero exists, but it isn't the default zero. I believe you if you're using it, but I'm not sure where your dotted zero came from.
I've looked at it just now. Found it too... skrawny? The lines are too thin and too jagged – the latter probably a consequence of the former. You can see how it differs from other proposed fonts in this thread.
I'm a sucker for ligatures.