I decided to try using proportional fonts for coding starting a year or two back. It worked out well and I stuck with it, because proportional text is easier for me to read on the whole, and because it allowed more characters to fit comfortably on each line on average. I did find after a while that occasionally the lack of alignment between characters on two subsequent lines was a problem, but then I configured my editor so that it showed comments and text strings in a monospace font and that fixed the problem for me.
I first encountered this in Bjarne Stroustrup's 2000 book, _The C++ Programming Language_. As he notes in the introductory material:
In code examples, a proportional-width font is used for identifiers. … At first glance, this presentation style will seem “unnatural” to programmers accustomed to seeing code in constant-width fonts. However, proportional-width fonts are generally regarded as better than constant-width fonts for presentation of text. Using a proportional-width font also allows me to present code with fewer illogical line breaks.
I switched years ago and would never go back to monospace.
This seems a great solution, and I'll definitely be trying it. I feel like monospace fonts are the Roman roads → horse ruts → rail gauge of our industry.
Comments
I decided to try using proportional fonts for coding starting a year or two back. It worked out well and I stuck with it, because proportional text is easier for me to read on the whole, and because it allowed more characters to fit comfortably on each line on average. I did find after a while that occasionally the lack of alignment between characters on two subsequent lines was a problem, but then I configured my editor so that it showed comments and text strings in a monospace font and that fixed the problem for me.
I first encountered this in Bjarne Stroustrup's 2000 book, _The C++ Programming Language_. As he notes in the introductory material:
I switched years ago and would never go back to monospace.
I edited a proportional for coding, I’ve been using it for 10 years and it’s great except for tabular alignment.
So it would be nice if IDEs rich-rendered regions column aligned.
eg, object literals in JS, in which space separator are as a wide as needed to align the values.
JetBrains MPS has a decision table rendering for DSLs, which is similar to what I described.
Check out "elastic tabstops":
https://nick-gravgaard.com/elastic-tabstops/
Are you Nick?
No.
Thank you anyway, that gave me an idea for implementing it.
Here's the prototype https://x.com/efortis/status/2039539455128686677
I am curious, which editors allow different typefaces for different code elements? (XCode, I think, but what else?)
I use Emacs.
I’ve been using Monaspace with Neovim for at least a year.
Also terminal apps like Ghostty, Wezterm.
I want to use proportional fonts, but the terminal fonts don’t support those font grids well.
This seems a great solution, and I'll definitely be trying it. I feel like monospace fonts are the Roman roads → horse ruts → rail gauge of our industry.