My favourite for a few years now is a commercial font, Triplicate. It’s a true serif monospace font; every other monospace font I’ve encountered that is labelled “serif” is actually a slab serif. It has a proper italic face as well, which is a less rare, but it’s a functional italic face rather than ornamental.
It comes with some interesting variants, most notably Poly which is not fully monospaced, adjusting the widths of characters like i to be a little narrower, and W to be a little wider. I like to use that for code display.
Ah yes, I had forgotten about that one—it’s definitely the closest font I’ve found to Triplicate, and its serif style is partially slab and partially true serif (to a similar degree to Triplicate, really).
Oh yeah, I forgot to address the other point: Go Mono doesn’t really have true italics. One or two of its letter forms are adjusted (double decker a to single decker a), but apart from that it’s just sloped roman. Look at the Triplicate specimens to see the difference, if you want. The whole shape of the character changes.
You and I have very different definitions of beautiful and ergonomic - I don't like their table formatted pricing and I don't like that I have to scroll down to get to navigation.
Okay that one is gorgeous. It has this appearance that somehow reminds me of code examples in my old uni computer science textbooks. I'm not sure which particular ones, it just has that feel.
Even though it's a reasonable price for a commercial font, I can't really justify spending $99 on a coding font just for writing code. I might get tired of it after a few weeks. But if I were to write a programming book, I just might consider it for print.
Do yourself a favor and try to design a font from scratch using FontForge (free tool). Let us know what you learn from the experience, how long it took to perfect it and what was the end result.
It comes with some interesting variants, most notably Poly which is not fully monospaced, adjusting the widths of characters like i to be a little narrower, and W to be a little wider. I like to use that for code display.
https://practicaltypography.com/triplicate.html