Dev Fonts
devfonts.gafi.dev
devfonts.gafi.dev
(Also note on that page, since people are talking about ligatures a lot in this thread: “No, there are no programming ligatures in Triplicate, and there never will be.” with a link to https://practicaltypography.com/ligatures-in-programming-fon..., which can be distilled to the quote “ligatures in programming fonts are a terrible idea”. I agree.)
Pragmata Pro and Operator are two other well-regarded and popular commercial monospaced fonts that are missing from this list.
I finally just paid for Pragmata Pro, and haven't regretted it. The unicode support is incomparable, and for someone who lives in emacs and console, support for things like the Powerline glyphs and the option to use Emacs' prettify-symbols mode means an awesome user experience.
I actually like ligatures when reading code, less so when writing. The thing I like about prettify-symbols and a font like pragmata pro is that I can toggle between strict representation and a cleaned up version with things like the below replacements:
(defun aja/pretty-symbol-push-default ()
(push '("!=" . ?≠) prettify-symbols-alist)
(push '("<=" . ?≤) prettify-symbols-alist)
(push '(">=" . ?≥) prettify-symbols-alist)
(push '("=>" . ?⇒) prettify-symbols-alist)
(push '("->" . ?→) prettify-symbols-alist)
(push '("lambda" . ?λ)prettify-symbols-alist))Put up 2 exactly same code snippets side by side. One in PragmataPro and one with SF Mono (or Consolas, etc.).
I purchased PragmataPro but regret it. Now I use it on Mechanical Drawing dimensions :) It is fantastic in CAD.
(edit) I'll additionally qualify my comment, from a mathematics background I can casually scan a handwritten "!=" which is the same as the ligature, but I just cannot retrain my adult brain to accept the ligature version which is the same as the handwritten one. Brain plasticity I suppose.
Obligatory digraphs/trigraphs reference: https://en.wikipedia.org/wiki/Digraphs_and_trigraphs#C
I think the whole idea of pre-pending ! to negate is a poor idea in general, it's too hard to spot especially in long convoluted lines where it's just thrown in before a complex bracketed expression.
It's brain training - you find "!" hard to spot, and I don't. And vice versa for ligatures. Thank goodness we both have choices!
if ( ! isLast(e) ) reads perfectly, especially since my native language doesn't insert the "not" im the middle like english does and my brain is used to that. if (isLast(e) == false) just jolts me out of that state where code reads as fluently as text. YMMV, of course, and I have a suspicion that your native language might play a role in that...
Mainly in that it ignores many examples of orthographic ligatures that don't fit the author's narrative. A (further deep-)linked blogpost on ligatures in general states:
> Ligatures were invented to solve a practical typesetting problem. In the days of metal fonts, certain characters had features that physically collided with other characters. To fix this, font foundries cast ligatures fonts [0]
But that's not true. That is why ligatures are used by many foundries more recently, but it's not why they were invented, and it doesn't cover all traditional uses of ligatures. German and French orthography in particular contain a lot of examples that are closer to programming operators in use than the author's "fi" example.
For example, if you type three '=' symbols in Firas Code or JetBrains Mono, you get ≡, but if you type a fourth '=' it snaps back to '===='.
I can invent some odd situations where I get a ligature in the middle of a string, but in actual coding (for me 80% JS, 10% HTML/CSS and 10% Ruby) I simply don't see any incorrect ligatures.
It is nice to read. That's not the only thing we do with code. Ligatures are fine for yourself in a private setting.
It's popularity is alarming.
Copy and paste it in a different font.
I agree as well with the point about ligatures, but I find funny that the advice comes from a site that thinks straight up normal text with no hover, no distinct color, no distinct font and no underline is a good way to signal linked pages https://i.imgur.com/9iVMfgD.png (who would have guessed Racket was a link?)
The same could be said about so many programming conventions most people take for granted. Sometimes programmers are their own worst enemies. "just because you can doesn't mean you should" is probably the #1 rule of programming, at least for me, and ligatures definitely fit into that category.
It's also quite ironic that the author's argument against ligatures in programming fonts is that the simple substitution doesn't respect semantic difference, whilst using emphasis to signify that there is a link present
(The ligatures in fonts such as Fira Code take up the same amount of space as the non-ligatured versions.)
(Open up TextEdit, enable Rich Text, select Courier, type "ff", highlight it, go to Font > Ligatures > Use All. The "ff" will now take up the width of a single character.)
I've run into a bug where certain styles of Courier Prime turns into ligatures in Google Docs. (Long story short, whether or not ligatures get enabled is a complex interplay between the OS, font, browser, and application, and not every layer always does it right.)
I'm not really sure why font designers even bother creating them in monospace in the first place though, I can't imagine any valid use for them. The only thing I can imagine is if a badly written application forces a ligature character, at least the end result will be readable rather than an empty box or something.
> They are licensed under the same open source license as the rest of the Go project's software
Which I assume is this one: https://golang.org/LICENSE
Now during the pandemic we might screenshare more often so I can disable it for that, but for development on my own time on my own screen it's nonyabizness.
For ligatures it's bikeshedding taken to absolutely ridiculous extremes. It's past prescribing night/dark mode, it's at the level of pre/proscribing colour themes in a text editor.
It is a personal choice and it doesn't affect anyone else bar me. If you don't like ligatures, I don't care, it has no bearing on whether I like ligatures (and it is a personal choice, what fonts are easier to read is always based on what I'm used to reading text in)
/rant
And dark/light is fundamentally different: it doesn’t actually change the content, just the colours. Similarly most font choices are purely presentational in effect, with the variation easily within what a normal viewer can be expected to read. (There are exceptions; for example, I’ve seen a couple of fonts go for a very old style of r in their fancy joined-writing style italics which Indians will have no trouble reading, but which has completely fallen out of use in most of the English-speaking world, certainly in Australia, and so may be difficult to read.)
But ligatures change the actual glyphs, so that your fingers must type something other than what your eyes see, and any viewer must decode the ligature’s meaning. And this is the key reason why the proliferation of ligatures in coding fonts becomes a problem for everyone.
If anyone else ever sees your screen (in person, in a screencast, or in teleconferencing with screen sharing), it has affected someone else.
At an objective level, I think it’s fairly clear that for most people in most circumstances, a light background is superior to dark, and ligatures are a bad idea. However, at a personal level, the subjective factors routinely outweigh the fairly slight objective factors.
Popularity breeds popularity. I have been exposed to ligatures in coding fonts on websites and other people’s screens. I never chose to use ligatures.
There’s an ancient philosophical question about personal freedoms in all this.
> Unicode [...] identifies each character uniquely. This way, software programs don’t have to worry that things like the fi ligature might be stashed in some special place in the font. Instead, Unicode designates a unique name and number for each character, known as a code point. If you have an fi ligature in your font, you identify it with its designated Unicode code point, which is 0xFB01.
This is true for the Roman script, but for many other scripts, Unicode does not provide dedicated code points for common ligatures. They would instead have to be denoted by two characters with a zero-width joiner in the middle (much like emojis).
Chances are it will look significantly different than the PDF once you load it into your terminal. Each of the three terminal emulators I have installed already render fonts very differently from each other.
As for the customer service experience, the author himself has responded (within the day even) to a couple of emails when I had questions about licensing.
"Triplicate has no demo version, but I do offer a 30-day return option: if the fonts aren’t your style, you can cancel your license for a refund."
Sun Gallant Demi is another one. Libertine/Libertinus Mono as well.
Also: https://github.com/yellow-type-foundry/xanhmono / https://fonts.google.com/specimen/Xanh+Mono
(However, if you try to enable both the Code and Poly features—Poly meaning “don’t be a true monospace, make characters like l and i a little narrower and characters like m a little wider”—you end up with a slightly narrower flat-bottomed l glyph, rather than a curved tail. See this, for example, in https://chrismorgan.info/blog/make-and-git-diff-test-harness..., which is set in Code + Poly. Disable the `code { font-feature-settings: "ss01" 1, "ss02" }` CSS rule to see the effect of removing Poly—you get the curved tail l glyph back again. I’ve been meaning to sort out a better glyph for the combination, but I haven’t gotten round to it yet, because it’s annoyingly difficult to actually do that sort of thing.)
What I look for is legibility between things like ({}), l1!|I, Oo08, mwnu, tl bpdq, ecoa, and being able to distinguish repetitio and symbols like --, ==, !!, "'`, :;, _-, and even ,.. (Something's going to try to parse that and absolutely shit itself)
I just grabbed B612 Mono.
n.b. I hadn't actually assembled those thoughts into one place before now. I apparently have Opinions about this!
I think Triplicate is the closest to the old Selectric Prestige font, which I loved. But if anyone has NSimSun replacements (paid or free), please let me know.
Unless you're programming in something like Brainfuck, ligatures are simply not going to fail because the operators that have ligatures are pretty much universal. The situation of mixing up ligatures and their respective unicode chars is also nonsense, as those characters aren't typable and will only ever be used in strings, so there's no way you'd not know which it is and it's pretty easy to check anyways.
Programming ligatures provide a tangible benefit to many of us, so the author's insistence that they are a terrible idea is simply ridiculous (although, reading through some other articles on the site, not too surprising, as the site is 80% good common-sense advice and 20% poorly explained personal opinions being treated as gospel).
Raku wants to have a word with you. https://docs.raku.org/language/unicode_ascii https://docs.raku.org/language/unicode_entry
TIA
thanks again.
Personally, however, I like to see exactly what it is I am typing, exactly which symbols are being used. Ligatures distort that.
Ligatures are fine when reading prose, but I find them too confusing when coding. That's a personal preference, though. I'm sure some people have no problem with them.
I expect a significant proportion of programmers do not like coding using fonts with ligatures, so it's interesting that this website only provides the ability to filter fonts to display only those with ligatures. I would have liked the option to only display fonts WITHOUT ligatures.
I feel the same way.
I do think I would enjoy programming in a language that used a slightly more extended set of real characters, as long as we had solid editor and font support so typing and viewing them wasn’t going to be an issue for anyone. For example, I’d like to finally have ≠, ≤ and ≥ lining up neatly with =, < and > in my code! I could imagine a few other carefully chosen and easily recognisable symbols, such as ∈ and true arrows, being helpful for readability as well.
But the world speaks in Unicode these days, so assuming there was adequate tool and font support, I think writing these characters for real would be much better than relying on ligatures. Even where ligatures are supported, they tend to use awkwardly wide glyphs to replace multi-character combinations so they don’t break alignment in a monospace font, and sometimes the fonts with programming ligatures seem to join certain combinations in bizarre ways just because they can, even when there’s no apparent need for it.
Ligatures in coding fonts are a poor workaround for bad keyboard layouts. If you want to see ≠ then type ≠.
Julia is the only ‘major’ language I know that supports most such characters.
Pre-deprecation, there were formatters which would replace the two characters with the single unicode character if you wanted. If you use a language which supports unicode function names and operator overloading, you could easily add support for your unicode comparison operators.
Edit: Unless your reason for checking is that you explicitly want a marginally smaller file (possibly just at bytes level) to download (in which case just use one of the many online tools providing subsetting to strip unicode ranges and do something like remove everything except basic ascii?) there's no real point filtering for fonts without ligatures because, practically, that's just all of them
I'm primarily working in Javascript, so it may make more sense to use ligatures in my dev environment. And, as others have said, ligatures need to be explicitly enabled in your editor.
I respectfully disagree with this claim.
It's conventional code notation that != is a Boolean test for (in)equality; that convention doesn't apply to ≠, which is overloaded in mathematics.
If I want to use ligatures, I have to explicitly enable it in my code editor.
My favorite programming fonts are PragmataPro, Iosevka and Jetbrains Mono. In that order. I used to use PragmataPro for everything, but I use Iosevka for everything but my IDE these days.
Also it looks pretty If you're staring a text editor for 8+ hours a day, it is important what you are staring at is pleasing to you.
So, as long as the font I'm using doesn't actively impair legibility, which is a pretty low baseline, it doesn't really matter - and in any case, if it's a visual aesthetic I want, I'll go do it in Illustrator where I can actually have precise control over every aspect of that aesthetic, instead of forcing my programming environment to double as an installation art piece.
(DejaVu Sans Mono, in case anyone cares, or Menlo on Apple hardware since it doesn't want installing. Haven't changed it in what must be close to a couple decades by now; somebody sneakernetted me a copy of Vera Sans Mono in my earliest days of moving up from the helpdesk and I never looked back. Doesn't changing fonts impose a cognitive overhead of its own for a while?)
...all of which is to say I favor brutalism, I guess.
Could be an editor, monitor, chair, etc. It might not seem like some of those little things matter -- if I can sit in the chair, it works for me! -- but they do to some and typography is one of those things.
I don't understand folks who don't understand this. I get it if you don't personally care about typography but every developer is making QOL decisions.
To answer this question you probably need to start broader with: why do ligatures exist in fonts at all? Then see if that applies to programming.
There's various accounts of the "reasons" ligatures came to be, but of the few I've seen all would (imo) apply equally to code as to language. The obvious one is pure aesthetic preference, but another is that ligatures came about as a way for business people of the time to differentiate letter/symbol-combinations for single repetitious use (as is done for operands: e.g. `===` has a single semantic meaning, it does not represent 3 programmatic operations in a row).
All in all though, I would guess this is about aesthetics mostly.
My own personal preference is to use ligatures in presenting code and avoid them in text editors/IDEs. I think this fits with traditional font use (writers would hand-write or typewrite manuscripts, ligatures would only be used by publishers/printers). It's possible presented code may "suffer" in readability for some unaccustomed to ligatures, so there's a trade-off to consider, but that's also true of books/articles using ligatures in natural language, and I think the problem is overstated in both cases. The nice thing is that copypasting the code doesn't force retention of the ligatures.
I think the flip side (which is why many people don't like them) is that with ligatures you can't see the actual code that you've written, only an approximation.
I do agree with the Butterick that when presenting code to others, for example as examples, the ligatures are a big no, because in this case you actually need to see what characters you need to input.
Iosevka has several presets, or can be completely configured: https://github.com/be5invis/Iosevka#ligations
It also introduce a ton of (unnecessary) complexity on top of the text formatting system, which in most cases are already a mess.
It helps to visually parse things a tiny bit more quickly, I think. And it makes things more aesthetically pleasing, for me. Combined symbols like == and <= really are unique, independent things that make logical sense as their own separate units.
(Not affiliated with JetBrains in any way)
There's so many subliminal things that I had never thought about/considered.
Increased letter height for better reading experience: this makes the proportions of the letters a little awkward, and makes ascenders, descenders and capitals less distinct. There’s a reason why the height of x should be quite a bit less than the height of d or M. They say “see how much nicer than Consolas this is!” yet I strongly prefer Consolas there.
Code-specific eye movement: again, increasing homogeneity regularly actually decreases reading performance. You do want patterns to be clear, yes, but trying to make everything closer to rectangular may well be taking things too far.
Functional сonstruction: who told you tails on letters like u were “unnecessary details”? The r and g ones are more subjective (Fira Code’s r especially is perhaps unnecessarily complex), but them tails be there for a reason, as they help with orientation of the letters and pattern recognition. Note that the g retained the taily thing at the top right corner.
Distinctiveness of symbols: I certainly have no complaints here—unless it be that the top left taily thing is inconsistent with the rest of the font, as with the letter i; but doing i and l in this way is quite common in monospaces.
Cut strokes: there’s truth to the pixel grid alignment technique, so long as the size is right or hinting is employed (… which it probably isn’t, nowadays). Tech personality, yeah, that’s probably true.
Italic: seems legit.
Ligatures for code: “To reduce noise”? This is an extremely contentious claim that I happen to believe is drivel (largely because your fingers still have to think in terms of the actual characters when you were typing, so even if you’ve reduced one cognitive load—debatable—you’ve certainly introduced another). “To balance whitespace”: fairly subjective, I think; in a proportional font, you do this sort of thing via kerning, where it works easily and naturally; but I don’t much like using ligatures to achieve the effect in a monospace.
That's the font you are reading this comment in, in fact.
Code is mostly words and words are much easier to read in a proportional font. Symbols are plenty clear enough in Verdana, all letters are distinguishable, and I don't use mid-line alignment so I don't see the point in a monospace font outside of the terminal.
Edit: it feels so wrong! Let’s see if I can get used to it.
Screenshot: https://i.imgur.com/lmOR9ze.png
> I don't see the point in a monospace font outside of the terminal
Why not use Verdana in the terminal?
edit: and maybe Haskell? the layout rules are complicated
personally I don't think lining up e.g. variable or parameter names in c style declarations improves readability at all, and it pollutes git diffs.
but I do use a monospace font in the terminal because many command line applications align their output into columns using spaces.
> but I do use a monospace font in the terminal because many command line applications align their output into columns using spaces
Ah, makes sense.
Iosevka has a proportional variant with all the fancy ligatures that’s just delightful.
Wrong. One of my favorite features of Firefox is that I get to choose whether websites can override my fonts. And they can't. Serifed Georgia is default, Ariel if they request sans-serif, and Consolas for monospace.
I forgot to mention that one may also set a minimum font size. That one does occasionally break a layout here or there, but it's worth it for easier reading.
I compared Iosevka with the 3 others just as narrow fonts (Inconsolata, Nanum Gothic Coding, and Ubuntu Mono). Iosevka won for me because it is taller or bolder than the others (felt more easily readable in small fonts for me), but also because it is more unique in its shape compared to regular reading fonts — the “o” is more squared for example.
Thanks for your comment! I will change to it just now!
I use Input for about two years and really like it. IMHO you need a high dpi/Retina display, though. I also like Output, a new font by Input‘s author, but haven‘t tried it yet. Might be a great fonts for usable interfaces
I used to be all about Consolas, Ubuntu Mono and Monaco pretty much interchangeably... until I tried Input and never looked back
Besides various stylistic choices (most-but-not-all positive, in my opinion), JuliaMono differs from other dev fonts by having _way_ more unicode coverage. (And from other high unicode coverage fonts by being monospaced.)
Q: Ligatures in programming fonts? A: Hell no https://tinyletter.com/mbutterick/letters/q-ligatures-in-pro...
> And not because I’m a purist or a grump. (Some days, but not today.) Programming code has special semantic considerations. Ligatures in programming fonts are likely to either misrepresent the meaning of the code, or cause miscues among readers. So in the end, even if they’re cute, the risk of error isn’t worth it.
Bottom line: this is a matter of taste, like syntax highlighting, use of bold/italic/font face, because everyone configures its own editor to their own taste.
I came to Anonymous Pro through the path of previously using tewi [0]. I was big on the whole linux customization / "ricing" scene in my early years of university, and because of how my desk was set up, i was close enough to my computer to be able to read it. I ran Arch, with tewi, at a 9 point font size. I just liked how it looked.
Eventually my desk setup changed and having such a small font was no longer viable. I went with Anonymous Pro because I found it to be similar, but also easier to read at larger sizes. For a while I coded primarily in vim, so maybe there was something about just setting it once in the terminal config and having what I needed. I also picked it because patched versions existed with powerline symbols, which I was into at the time.
I now primarily use VS Code on Windows, but I still use Anonymous Pro. I think the narrow strokes and the sharp cruves that you dislike are actually easier for me to read. They give characters a kind of crisp shape, and I find that helpful in distinguishing which characters are which. When I look at the colleciton of fonts, ones like Cascadia, Ubuntu Mono, and especially Nova Mono all look awful to me, because of how rounded they are. I'm also in the crowd of people who dislike ligatures in programming fonts
If I were to pick any of the fonts from this list to try, I would probably pick Hack or Noto Mono for something a bit more robust, or Source Code Pro for something similar to the slenderness of Anonymous Pro. But I think the more important thing is knowing what you like and picking one and settling on it. It surprised me when I went back to my dotfiles and I was looking at screenshots, just how long I've been using the same font. But it makes things easy.
This is with monitors at around ~130DPI. For regular old 96 DPI monitors I used tewi, a very small bitmap font.
I'm running Linux so most things are rendering on FreeType, here's a screenshot of Iosevka Term with some random youtube-dl code: https://i.imgur.com/qQHmOX2.png
It has the perfect thickness and clarity imho.
One thing I noticed: I really want a different font for my terminal than for my editor – for the terminal I went for DejaVu Sans Mono, it's clean but still has some character, especially the dotted 0.
No, I do it too.
> I find it more readable for the same reason it's more readable in books and other printed media.
OTOH, its really annoying when you edit code from someone who decided to try to "beautify" code by using alignment beyond indentation.
However, 1-2 space indented code becomes just too ambiguous when rendered with proportional fonts, because the spaces are way too thin. I wish editors would render em or en-sized spaces instead, at least for the line-leading spaces. That way we would get the same indentation as intended with monospaced fonts, but still save horizontal space, while maintaining readability...
Incredibly pleasant looking even today: http://paulbourke.net/dataformats/hershey/
OpenType conversions: https://github.com/scruss/AVHershey-OTF/tree/master/otf
Reminds me of vector arcade games like Asteroids and Tempest... By the way, another cool public domain font is the one used on all US interstates — 1948! https://en.wikipedia.org/wiki/Highway_Gothic
https://abrudz.github.io/APL386/
I’ve always liked the look, but I use Fira Code in practice because it is more readable and narrower.
[1] https://proggyfonts.net/download/
[2] https://en.wikipedia.org/wiki/Fixed_%28typeface%29It's like multi-select in text editors. When you think about it, it's actually an inferior form of search&replace. Inferior because it interacts badly with off-screen matches. I find arguments of kakoune users unconvincing.
My personal opinion is - and I'm fine taking negative karma for this - that ligatures mostly appeal to the front-end developers among us. To the people who abuse the words "beautiful" and "gorgeous", and admire web pages which have a single text column using up 1/3 of screen width.
Your syntax highlighter probably already recognizes single tokens as single tokens.
> It's like multi-select in text editors. When you think about it, it's actually an inferior form of search&replace.
I’m thinking about it, and it isn’t. Sometimes search and replace is an inferior form of multiselect. Multiselect is a less flexible form of macros, but provides immediate feedback.
> My personal opinion is - and I'm fine taking negative karma for this - that ligatures mostly appeal to the front-end developers among us. To the people who abuse the words "beautiful" and "gorgeous", and admire web pages which have a single text column using up 1/3 of screen width.
This is an unpleasant statement and apparently even you recognize that.
Let's do the same kind of pretentious generalization - I'd wager they are the same who think any language of higher level of abstraction than than C++ is an utter waste of time.
Edit: did I hit a nerve? I don't even believe that second statement, but it's a good example of how pretentious that comment sounded.
Multi-select: Useful if I want to do a find-replace, but only within certain select results for the "find" part. If I know where they are I can use Cmd+D or multi-select to just find those quick rather than crafting a nice regex find-replace query with "only in selection" etc.
Ligatures: It's SUBJECTIVE. I dunno why you're throwing out ad hominems like "only for frontend developers who like <things I think are bad>". I am looking at code for 8-12 hours a day. If ligatures make the code nice to look at, why the heck do you care what my code looks like? My ligatures aren't being pushed into your environment.
This is like judging someone as "lesser" than you because they like a different mouse because it's comfortable for them...
I see ligatures as solving, imperfectly, the problem of "my language has clumsy operators because it wasn't designed with support for unicode operators" lining up with the preference of "I prefer less-clumsy operators".
If you don't have the first problem then, even if your language also supports ASCII multicharacter operators, its just an autoformatter issue.
Aside from the ambiguity with similarly-appearing genuine single characters, programming ligatures tend to not really solve the problem they set out to in monospaced fonts, where you end up with a single symbol which invariably preserves the width of the ASCII multicharacter symbol, which either introduces extra empty space or extra visual weight or, often, both.
> My personal opinion is - and I'm fine taking negative karma for this - that ligatures mostly appeal to the front-end developers among us.
I've seen more praise for them from corners of the Haskell/Idris community than from the much larger front-end community. I don't think there is any real correlation between working in front-end and preferring fonts with ligatures.
I think this post would fit very well at /r/unixporn, similar to ASCII art, pixellated graphics or low poly models.
(I "kind of" agree because a sibling comment is right that multi-select is a restricted form of macros, not search and replace. Because the things you can do with the multiple cursors are more than just search and replace.)
https://github.com/arrowtype/recursive
I am not sure whether this is a actually feature of this font. Some ligatures, like => are only active in comments. It works both in Sublime Text and QtCreator: https://imgur.com/nWsZieo
https://www.myfonts.com/fonts/tabular-type-foundry/comic-cod...
Which now has a version with ligatures, which I have not graduated to yet.
https://www.myfonts.com/fonts/tabular-type-foundry/comic-cod...
I really liked Consolas in the example but it's not free so there's that.
What I didn't get is why the syntax highlighting option is so limited. Java didn't work for me at all even though it's in the dropdwon.
I also didn't understand why the width of the code area so artificially limited.
https://ia.net/topics/in-search-of-the-perfect-writing-font
It mostly retains the advantages of a monospaced font while being a bit easier to read and fitting more characters on screen.
I'd love to see more font-designers exploring this idea.
How is duospace for programming? Breaking the alignment isn't an issue?
I just set it and forgot.
Now, when I switch back to Fira Code, the first thing I notice is how far apart the letters are.
> Breaking the alignment isn't an issue?
At worst, you're only ever half a character off. Unless I'm explicitly looking for it, I don't notice the offset.
...it might be an issue if there's a limited line-length and you don't have an auto-formatter that will take care of it for you.
...or if you work with tables.
But since I don't have these issues, it just all feels very natural.
To pile on the nostalgia, I also changed my default terminal text color to monochrome amber (#FFB000) [1], even though I've never used monochrome terminals.
[0] https://www.dafont.com/nouveau-ibm.font
[1] https://retrocomputing.stackexchange.com/questions/12835/exa...
https://int10h.org/oldschool-pc-fonts/fontlist/font?ibm_vga_...
However, you should disable bold fonts in your terminal as it really does not look good in bold.
Of the more modern coding fonts, I find Iosevka the absolute prettiest (available under a free license anyway). My Visual Studio Code is set to use Iosevka.
Also, the list needs Dina [1] in its TTF version [2]
[1] https://www.dcmembers.com/jibsen/download/61/
[2] https://chrisrickard.blogspot.com/2010/05/geenatcom-dina-ttf...
[1] https://damieng.com/blog/2008/05/26/envy-code-r-preview-7-co...
Like you, I would have expected it to also update the example code to show the actual language.
> You may use the Apple Font solely in conjunction with Apple-branded applications, including, but not limited to, Xcode, Terminal.app and Console.app.
So no, you really can't. Unless you just don't care since it's so good, which is not something that I would condone, obviously, since that would be morally wrong.
It's just so easy to read.
Additional features that would really elevate this site:
- Votes!
- Sort/Filter by Font Family, Alphabetical, Last Added, (vote count)
- A long shot here... if you're looking for something to do, give yourself a ML project by trying to somehow analyze fonts for similarity and link to most similar fonts and most different fonts.
https://github.com/ryanoasis/nerd-fonts https://github.com/ToxicFrog/Ligaturizer
I tend to use tiny sized font and I don't see any option to change font size. I'm always surprised by the huge default font size in text editors and IDEs.
So I ask: Is there such a "standard" dev font size every dev uses and no one complains?
During the early part of my career, I used to love to design and develop with very tiny fonts. In-fact, there were a time when there was a craze for Bitmap pixel fonts which looks the best at 8px. I used to build apps for Physicians who uses a hand-held device called Pocket PC[1]. My weapon of choice when it comes to fonts were these 8px bitmap fonts for the interfaces.
They look super sleek and smooth but the physicians keep complaining about the font-size. The clinics/hospitals were replacing pen-paper with these Pocket PC Devices and the physicians depend on them for their earnings. I learned my lessons and made the fonts bigger. Designs do not look so nice (at-least to me and my team) but they loved my work. It paid for them, their families. The last time I heard, they were still using the 'programs' (not apps) for over a decade or so.
Of course, my IDE had tiny fonts too. Then I grew and aged. By the time I crossed 30, my IDE's fonts were big enough and I began liking it that way. Today, I occasionally write code with "Monaco" font at 16px on a 5K iMac. One day, I might scale it and even make the text/content bigger.
Enjoy your tiny fonts while it lasts, you will also appreciate BIG text and fonts as you progresses.
That sent me down a nostalgia trail to this[1] book which has similar advice for Pocket PC developers. Drag the buttons and other form controls onto your program, then at least double their size, to make them go from stylus-required to semi-finger-friendly. Implement some custom code to drag empty screen to scroll, avoid the SIP where possible, wow, lots of memories making UX better for mobile users in the pre-always-connected-mobile-device days.
We're still here working, even if the form factor has retreated to serving delivery drivers and warehouse workers more than the general public. Pocket PCs / Windows Mobile 6.5+ embedded devices are a (often barcode-scanner-enabled) tool to get work done, data input, or data referenced in the field, with no VPN or internet access in several cases.
I used to as a teenager coding on a 1366x768 laptop use a 8px font size, as that was the only way to get 2 editor panes side by side. I'm in my late 20s now, so not an old age issue, but would not describe such a font size as comfortable these days. Part of that is monitors today are higher DPI, and part of it is that I now sit reasonable ergonomic distances from my monitors.
Even when physical panel size/resolution/scaling/panel type is the same, a different model can present different text clarity... e.g. https://www.rtings.com/monitor/reviews/dell/ultrasharp-u2720...
And we haven't even mentioned eyesight yet!
I've come to like them when italics are restricted to keywords. I've found that it makes it much faster to recognize the structure of the code.
From the blog pos announcing the font.
[0] https://medium.com/@philpl/what-sets-dank-mono-apart-1bbdc1c....
In some the lowercase "l" looks almost the same as a 1 (one). Some will make the lower case "l" curved, but then some (like Iosevka) will remove the bottom bar for a one.