37 votes

Comparing my favorite fonts for reading and writing code

49 comments

  1. [9]
    cfabbro
    Link
    Not trying to totally discourage you from posting, but I do think it's worth pointing out Tildes self-promotion rules (just in case you weren't aware of them):...

    Not trying to totally discourage you from posting, but I do think it's worth pointing out Tildes self-promotion rules (just in case you weren't aware of them):

    Self-promotion

    If you have your own site/project/channel/etc. that you'd like to share on Tildes, that's generally fine (in moderation), but it shouldn't be the primary reason that you post on the site. Tildes is a community, not a free advertising platform. Sharing your own content is welcome as long as you're involved in the community, but don't just treat Tildes as a source of an audience.

    https://docs.tildes.net/policies/code-of-conduct#self-promotion

    14 votes
    1. [8]
      lou
      (edited )
      Link Parent
      I agree. I'll go even further in the positive tone that was clearly your intention: Dear @jdsalaro, please feel free to share your own content on Tildes! But do know that Tildes is a community,...
      • Exemplary

      I agree.

      I'll go even further in the positive tone that was clearly your intention:

      Dear @jdsalaro, please feel free to share your own content on Tildes! But do know that Tildes is a community, and meaningful, substantial participation is required for this kind of promotion. Let us get to know you, and Welcome to Tildes :)

      9 votes
      1. [7]
        jdsalaro
        Link Parent
        Thanks for point this out @lou and @cfabbro ! I'll remove it as it certainly wasn't my intention to shamelessly self-promote, rather discuss what other folks thought of my picks :D Looking forward...

        Thanks for point this out @lou and @cfabbro !
        I'll remove it as it certainly wasn't my intention to shamelessly self-promote, rather discuss what other folks thought of my picks :D Looking forward to sticking around here ๐Ÿ‘Œ๐Ÿผ

        5 votes
        1. [2]
          lou
          Link Parent
          There's really no need to remove anything, and you even got a positive response. Just have that in mind in the future ;)

          There's really no need to remove anything, and you even got a positive response. Just have that in mind in the future ;)

          7 votes
          1. jdsalaro
            Link Parent
            Alright! ๐Ÿ‘๐Ÿผ

            Alright! ๐Ÿ‘๐Ÿผ

            2 votes
        2. [2]
          petrichor
          Link Parent
          Yeah, don't remove it! Maybe just write a lead-in comment for your next post.

          Yeah, don't remove it! Maybe just write a lead-in comment for your next post.

          4 votes
          1. jdsalaro
            Link Parent
            I should have rolled with "Fira Code rules and your font sucks, fight me" to get a flame war started :)

            I should have rolled with "Fira Code rules and your font sucks, fight me" to get a flame war started :)

            7 votes
        3. [2]
          cfabbro
          (edited )
          Link Parent
          Yeah, like lou said, there is no reason to remove it. I wasn't trying to get you to stop posting or remove this. I just wanted to make you aware of the self-promotion rule so you don't...

          Yeah, like lou said, there is no reason to remove it. I wasn't trying to get you to stop posting or remove this. I just wanted to make you aware of the self-promotion rule so you don't inadvertently get banned like you might have if that's all you ever post here. Just try to participate in good faith outside your own self-promotion topics as a community member, not just as a content creator looking for an audience, and you should be fine. :)

          2 votes
          1. jdsalaro
            Link Parent
            Sounds good, have a great weekend ๐Ÿ‘๐Ÿผ!

            Sounds good, have a great weekend ๐Ÿ‘๐Ÿผ!

            1 vote
  2. [4]
    pvik
    Link
    Really good article! Love the easy way to see the various fonts in different scenarios and switch between them all! Over the last several years I find myself going back and forth between Hack and...

    Really good article!

    Love the easy way to see the various fonts in different scenarios and switch between them all!

    Over the last several years I find myself going back and forth between Hack and Fira every 6 months or so, more so for a change than anything else!

    8 votes
    1. [3]
      jdsalaro
      Link Parent
      You're not the only one! I can't decide myself between Input and Fira ๐Ÿ˜… And someone on Mastodon just pointed out 0xProto, which I also really liked and I'm trying to find a place for.

      I find myself going back and forth between Hack and Fira

      You're not the only one! I can't decide myself between Input and Fira ๐Ÿ˜… And someone on Mastodon just pointed out 0xProto, which I also really liked and I'm trying to find a place for.

      2 votes
      1. [2]
        pvik
        Link Parent
        I missed 0xProto! I really like the balance they have with their parentheses, and given that I spend the bulk of my time in lisp based languages, I am going to give this a whirl this weekend.

        I missed 0xProto!

        I really like the balance they have with their parentheses, and given that I spend the bulk of my time in lisp based languages, I am going to give this a whirl this weekend.

        1 vote
        1. jdsalaro
          Link Parent
          Check out JetBrains and PT Mono, I've documented them in the Post, I really like their parentheses and general spacing between symbols.

          I spend the bulk of my time in lisp based languages

          Check out JetBrains and PT Mono, I've documented them in the Post, I really like their parentheses and general spacing between symbols.

          1 vote
  3. [2]
    panikode
    Link
    I like this! Iโ€™m a Fira Code user but am constantly tempted to buy a license for Berkeley Mono

    I like this! Iโ€™m a Fira Code user but am constantly tempted to buy a license for Berkeley Mono

    3 votes
    1. jdsalaro
      Link Parent
      oh man, stahp ๐Ÿ˜… I'm now feeling inclined to include it in the write up but I shall resist the temptation, what started as a small note for future reference is slowly getting out of hand ๐Ÿ˜ฌ

      oh man, stahp ๐Ÿ˜…

      I'm now feeling inclined to include it in the write up but I shall resist the temptation, what started as a small note for future reference is slowly getting out of hand ๐Ÿ˜ฌ

      2 votes
  4. [3]
    mr-strange
    Link
    No love for Courier?

    No love for Courier?

    3 votes
    1. [2]
      jdsalaro
      Link Parent
      oh boy, you people will be the end of my productivity this week ... jeez ! haha I'll add it to the future improvements backlog of this one note :D

      oh boy, you people will be the end of my productivity this week ... jeez ! haha

      I'll add it to the future improvements backlog of this one note :D

      3 votes
      1. tomf
        Link Parent
        Courier Prime is one of my favs. I went back to Operator, though.

        Courier Prime is one of my favs. I went back to Operator, though.

        2 votes
  5. [2]
    Comment deleted by author
    Link
    1. jdsalaro
      (edited )
      Link Parent
      I think you are ๐Ÿ˜… Those are way too hard on my eyes, how do you manage? Is there a trick? Cozette looks great for marketing stuff as well, retro vibes to the max ! Sofia Pro is also delightful,...

      I feel like a dying breed sticking with my comfy Bitmap fonts for programming/terminal use

      I think you are ๐Ÿ˜… Those are way too hard on my eyes, how do you manage? Is there a trick?

      Cozette looks great for marketing stuff as well, retro vibes to the max ! Sofia Pro is also delightful, I'd definitely use it for coding!

      1 vote
  6. [4]
    gurnec
    Link
    Have you given Cascadia Code a try? It's open source, comes in ligature/arrow and non-ligature versions, has versions with Powerline support, has a cursive alternative for italics, and has become...

    Have you given Cascadia Code a try?

    It's open source, comes in ligature/arrow and non-ligature versions, has versions with Powerline support, has a cursive alternative for italics, and has become the default for a lot of Microsoft products (including Visual Studio, VS Code, and Windows Terminal).

    3 votes
    1. jdsalaro
      Link Parent
      Not yet, but I will I might even add it to the post, but I'll have to probably trim out some otherwise the tabbed comparison will become too unwieldy :/

      Have you given Cascadia Code a try?

      Not yet, but I will

      I might even add it to the post, but I'll have to probably trim out some otherwise the tabbed comparison will become too unwieldy :/

      1 vote
    2. [2]
      jdsalaro
      Link Parent
      oof, it's truly beautiful! The only thing I disliked is its heavy weight, its way too heavy and becomes slightly unreadable at small fonts and distracting at bigger sizes. Other than that it's...

      oof, it's truly beautiful! The only thing I disliked is its heavy weight, its way too heavy and becomes slightly unreadable at small fonts and distracting at bigger sizes. Other than that it's incredibly appealing.

      I realized that by focusing on sane defaults and ease of use I was a bit unfair toward other fonts such as Cascadia Code or @Minty's Fantasque, I've added another short note regarding customization https://jdsalaro.com/blog/best-programming-fonts/#regarding-customization

      1 vote
      1. gurnec
        Link Parent
        I do agree with you, and tend to use the SemiLight variant for coding.

        I do agree with you, and tend to use the SemiLight variant for coding.

  7. [4]
    nrktkt
    Link
    I'm shamelessly in favor of setting language keywords to be ligatured cursive characters. Many people can't take it, but I find it so much easier, especially for languages that are new to me where...

    I'm shamelessly in favor of setting language keywords to be ligatured cursive characters. Many people can't take it, but I find it so much easier, especially for languages that are new to me where I don't know which syntax are keywords.
    Some fonts have cursive for italics, but no ligatures. I find this to be the worst of all worlds. Cursive without ligatures just doesn't satisfy my aesthetic ideal.

    3 votes
    1. [2]
      jdsalaro
      Link Parent
      can you explain this? I don't quite understand what you mean.

      I'm shamelessly in favor of setting language keywords to be ligatured cursive characters.

      can you explain this? I don't quite understand what you mean.

      1 vote
      1. nrktkt
        Link Parent
        Sure! Cursive you probably know, but it's a flowy stylistic way of writing. Ligatures are a font feature where two or more characters next to each other will be replaced with a specific character....

        Sure!
        Cursive you probably know, but it's a flowy stylistic way of writing.
        Ligatures are a font feature where two or more characters next to each other will be replaced with a specific character. For example <= with ligatures would appear as < but with a third line parallel to the existing bottom line (like in math class).
        In the context of cursive, ligatures allow characters to connect to one another in the way that they would if you were writing cursive by hand.
        Language keywords you might know, but they're special 'reserved' words in a programming language that have special meaning and can't be used by the programmer to name things that they create. So distinguishing these words in the editor helps you know if you should look for a word that the programmer has defined, or if you should Google to see what the word does in the language.

        See also https://rubjo.github.io/victor-mono

        3 votes
    2. Minty
      Link Parent
      A travesty, really.

      Cursive without ligatures

      A travesty, really.

  8. [2]
    syzygy_ng
    Link
    I love a good font writeup! I've been looking to find a new font just to switch things up, and honestly 0xProto seems very interesting. I'll have to give it a whirl :)

    I love a good font writeup! I've been looking to find a new font just to switch things up, and honestly 0xProto seems very interesting. I'll have to give it a whirl :)

    2 votes
    1. jdsalaro
      Link Parent
      Thanks a bunch, I appreciate it! Let me know how you like 0xProto, and thank the kind stranger on Mastodon who pointed me to it after I posted the OP!

      Thanks a bunch, I appreciate it!

      Let me know how you like 0xProto, and thank the kind stranger on Mastodon who pointed me to it after I posted the OP!

      2 votes
  9. [2]
    MaoZedongers
    Link
    I started using hack just so I could actually tell an "O"/"I" and an "0"/"l" apart since the system font was atrocious, idr what it was but it was windows. It's clearly programming oriented but no...

    I started using hack just so I could actually tell an "O"/"I" and an "0"/"l" apart since the system font was atrocious, idr what it was but it was windows.

    It's clearly programming oriented but no reason you can't use it everywhere.

    I still like the font but since I just use mint as my default OS now it uses ubuntu and sans by default which are both 1000x better still so I haven't needed it.

    2 votes
    1. jdsalaro
      Link Parent
      oh the irony when I can't tell your "O/I" from your "0/l" on mobile ๐Ÿ˜‚ Ubuntu is beautiful, but Ubuntu mono is a tad too narrow unfortunately IMHO

      oh the irony when I can't tell your "O/I" from your "0/l" on mobile ๐Ÿ˜‚

      Ubuntu is beautiful, but Ubuntu mono is a tad too narrow unfortunately IMHO

      4 votes
  10. [2]
    maaneeack
    Link
    I like the 3270 NF, I'm using it in windows terminal.

    I like the 3270 NF, I'm using it in windows terminal.

    1 vote
    1. jdsalaro
      Link Parent
      Is a bit boxy for my taste but I can see the appeal :)

      Is a bit boxy for my taste but I can see the appeal :)

      1 vote
  11. [2]
    onyxleopard
    Link
    For a mono-space font, Iโ€™ve been using a patched version of Menlo from Nerd Fonts which patches a lot of nice glyphs into many popular fonts for developers. I tried using the mono-spaced versions...

    For a mono-space font, Iโ€™ve been using a patched version of Menlo from Nerd Fonts which patches a lot of nice glyphs into many popular fonts for developers. I tried using the mono-spaced versions of Appleโ€™s San Francisco when it was introduced, but I couldnโ€™t get used to it.

    For a nice serif font for reading prose, I like Athelas, which Apple offers in Safariโ€™s Reader mode, and I also use in my RSS client.

    1 vote
    1. jdsalaro
      Link Parent
      Thank you for letting me know about Athelas ! I've been looking for a beautiful serif font I can use once I start posting my own stash of poems and comment on my favorite ones! That font is truly...

      Thank you for letting me know about Athelas ! I've been looking for a beautiful serif font I can use once I start posting my own stash of poems and comment on my favorite ones! That font is truly beautiful, wow.

      Menlo was my first "I'm a nerd and my system reflects my personality" font ๐Ÿฅฒ Glad to see it's been patched into the new decade ( I'll add a note to the post about NerdFonts, thanks !! )

      2 votes
  12. [2]
    vivarium
    Link
    Your post made me fall in love with Anonymous, especially when combined with the orange text colour you used in the second example. I have a big love of the aesthetic of Nixie Tubes, and that...

    Your post made me fall in love with Anonymous, especially when combined with the orange text colour you used in the second example.

    I have a big love of the aesthetic of Nixie Tubes, and that font/color combination specifically evokes that feeling for me. I think it's mainly due to the digits? The slashed 0s and the big, rounded 9s and 6s... Gosh, it's gorgeous. :3

    I don't know if I'll use it for my IDE, but I definitely have a hankering to update my terminal now.

    1 vote
    1. jdsalaro
      Link Parent
      :D thank you for your kind words fellow nerd :3 I'm planning to write some more about typography, design in human-computer interfaces and other nerdy stuff ( right now I'm infatuated with...

      :D thank you for your kind words fellow nerd :3

      I'm planning to write some more about typography, design in human-computer interfaces and other nerdy stuff ( right now I'm infatuated with historiated initials ) Feel free to subscribe so you I can let you know when I write something new :)

      2 votes
  13. [8]
    Minty
    Link
    I tried 0xProto, even went ahead and NerdFonted it for the day, but the perceived ink-to-space ratio for lowercase L, especially compared to lowercase I throws me off. Then the lowercase F appears...

    I tried 0xProto, even went ahead and NerdFonted it for the day, but the perceived ink-to-space ratio for lowercase L, especially compared to lowercase I throws me off. Then the lowercase F appears crooked from all the curling. And it's so wide! It's definitely one of the better fonts, but I find JetBrains Mono unbeatable, or Fira Code for a more serify look.

    1 vote
    1. [7]
      jdsalaro
      Link Parent
      Basically the same conclusion I arrived at after going through the pains of setting up the comparison :)

      I find JetBrains Mono unbeatable, or Fira Code for a more serify look.

      Basically the same conclusion I arrived at after going through the pains of setting up the comparison :)

      1 vote
      1. [6]
        Minty
        Link Parent
        Haha, yeah, code font comparisons can be a little annoying. Regular text can be previewed in FontBase, but with code you have to have a sample, and a realistic renderer, and... might as well take...

        Haha, yeah, code font comparisons can be a little annoying. Regular text can be previewed in FontBase, but with code you have to have a sample, and a realistic renderer, and... might as well take screenshots of an editor and a terminal. And here you are.

        While it doesn't have all fonts (0xProto notably missing), https://www.programmingfonts.org has quite a few still, and helps a lot in some initial exploration. Personally, though, I went through coding in VGA to Courier New to Consolas to Hack to JetBrains, and it seems I got stuck. Tried so many this year alone, but I always come back. It's very nearly perfection.

        If you like very curly fonts for coding, try Fantasque Sans Mono, it's included on the page above :D

        2 votes
        1. [3]
          jdsalaro
          Link Parent
          I'm still looking into it, and I must say I can't decide. I really like it but it's too wobbly, at times super readable and pleasing to look at but other times (long strings such as URLs) super...

          Fantasque Sans Mono

          I'm still looking into it, and I must say I can't decide.

          I really like it but it's too wobbly, at times super readable and pleasing to look at but other times (long strings such as URLs) super hard to follow.

          1 vote
          1. [2]
            Minty
            Link Parent
            So, how about Comic Shanns? ;D

            So, how about Comic Shanns? ;D

            1 vote
        2. taco_pizza
          Link Parent
          I'm glad someone else brought up Fantasque Sans Mono! The curlyness of everything just makes the letters look so smooth and I think helps showcase the high-DPI of modern monitors. I don't want...

          I'm glad someone else brought up Fantasque Sans Mono! The curlyness of everything just makes the letters look so smooth and I think helps showcase the high-DPI of modern monitors. I don't want reading code to make me feel like I'm staring at an old CRT.

          1 vote
        3. jdsalaro
          Link Parent
          NOOOO! >:(

          If you like very curly fonts for coding

          NOOOO! >:(

  14. zoroa
    Link
    Slightly off-topic, but I just found https://www.codingfont.com/ and figured folks here may appreciate it. It's a tournament style "game" that helps you find a font you like.

    Slightly off-topic, but I just found https://www.codingfont.com/ and figured folks here may appreciate it.

    It's a tournament style "game" that helps you find a font you like.

    1 vote
  15. [2]
    asciipip
    (edited )
    Link
    I really like JuliaMono, but I code (1) at small point sizes, (2) on displays maxing out at ~110 DPI. So I tend to get better results from bitmap fonts, where each individual pixel is accounted...

    I really like JuliaMono, but I code (1) at small point sizes, (2) on displays maxing out at ~110 DPI.ย So I tend to get better results from bitmap fonts, where each individual pixel is accounted for.ย In particular, I have yet to find anything I like better than 6x12 Terminus, which basically corresponds to an 8-point size.

    Once I move to higher-DPI displays, I'll probably have to reevaluate my fonts.ย I'll at least start with JuliaMono, since I like the way it looks.

    Ironically enough, I use Iosevka on my website, since I think it fits well with the rest of my design, but it feels too compressed for everyday use in a terminal and editor.

    1. jdsalaro
      Link Parent
      Definitely, I was quite surprised when people pointed out to me they use Iosevka for everything they do. Thanks ! I've added a note about lower DPI-displays and how Terminus might be well suited...

      it feels to compressed for everyday use in a terminal and editor

      Definitely, I was quite surprised when people pointed out to me they use Iosevka for everything they do.

      Once I move to higher-DPI displays

      Thanks ! I've added a note about lower DPI-displays and how Terminus might be well suited for those.

  16. oniony
    Link
    Regarding your comments on not liking the @ symbol in Fira. Fira actually has many options that some editors let you set to change how various characters are rendered. It's possible to use...

    Regarding your comments on not liking the @ symbol in Fira. Fira actually has many options that some editors let you set to change how various characters are rendered. It's possible to use alternative 3 for example, or have descending numbers. I'm pretty sure they'll be an option for an alternative @.

    Also, if your editor doesn't support these options, it's possible to bake your choices into a new font file and use that.