Later in the submission, Butterick addresses this directly, and doesn't disagree:
> “What do you mean, it’s not a matter of taste? I like using ligatures when I code.” Great! In so many ways, I don’t care what you do in private. Although I predict you will eventually burn yourself on this hot mess, my main concern is typography that faces other human beings. So if you’re preparing your code for others to read—whether on screen or on paper—skip the ligatures.
But it is interesting still, how many seem to read the text it feels to them touching their privates and need to make themselves vent off.
Not dissimilar to those choosing to highlight the worst aspects of comments rather than addressing them in good faith. Please don't make things worse.
An argument, even one with strong language, can be about whether or not a tool is fit-for-purpose. This is allowed. This is discourse.
Right now, politically, a lot of arguments are actually attacks (on specific groups of people) in disguise, and I sympathize with your confusion. But arguments do exist. Not every argument is an attack.
I can't link to this book often enough: https://www.goodreads.com/book/show/29363252-conflict-is-not...
But metaphor is imprecision and unnecessary colour. Be clear and precise. Use specific language.
This is admittedly prescriptive usage, but I am prescribing this antidote for an overheated era, full of overwrought language.
Here he's referring to code in books, slide decks, and during presentations, not for editing.
Just below the section the above quote is pulled from, Butterick explains
> One inspiration for this piece was the LaTeX crowd, who would routinely write me to insist their typography was infallible. And yet. I kept seeing LaTeX-prepared books that incorrectly substituted curly quotes for backticks.... “But code samples like these aren’t really ambiguous, because everyone knows that you don’t type the curly quotes.” ... But many of today’s programming languages (e.g., Racket) accept UTF-8 input.... So ambiguity is a real possibility. Same problem with ligatures.
All right, oh my captain, keep the indents and spacing tight on the monospace and sail along!
Btw., anyone still using monospaced fonts in their editors?
The question is aren't you?
I'm not so sure if I want that, maybe I get dumb by it?!
It's weird in a way, because there isn't all that much alignment going on in my code[1]. There's indentation, but that still works with a proportional font. And yet, it still looks wrong and hard to read. I can't really figure out why.
[1] I know some people align assignments in multiple lines, or comments at the end of the line, or similar things. I've been working under code style directives that prohibited those because lines changed more often because of whitespace than because of content. Since my work requires me not to do that, I don't have the habit at home either.
I did actually spend a year or two coding in a variable-width font, back in the '90s, but I switched back after the novelty wore off.
Tell me you've never programmed without telling me you've never programmed… Almost all code editors and IDEs in current use are set with a monospaced font by default, and the overwhelming majority of programmers keep it that way.
No judgement if that is good or bad or at all. Just a reminder that it ain't monospace any longer.
> Your code is still monospaced in all the ways that matter.
Just it ain't monospace any longer. (reminder)
In monospace one letter/symbol (printable character) has constant width.
The ligature is one letter/symbol. so while the stylistic decision retains the monospace style of the replaced symbols, the ligature itself is double (or triple) sized compared with other symbols.
IIRC this is commonly called "monospaced ligatures" ref https://github.com/tonsky/FiraCode/issues/712
E.g. a compacting ligature for "www" seems to be welcome in some typefaces for coding. But again, only to stress the reminder: It ain't monospace any longer.
We do still may prefer for the typesetting pleasantry that it still is styled as monospace (or fixed width). but those ligatures aren't fixed width any longer as with the letter A, that's all.
This is the difference between what it looks like (two or three glyphs) and what it is (a single glyph). So we break monospace to keep it appearing fixed-width even with the ligatures.
Would be interesting if there is more typesetting theory about the width of ligatures in a monospace font.
1 ASCII byte, 1 cell. That way ligatures don't change the width of the original text. If a line used to require 42 columns, it still requires 42 columns. That's why we call them "monospace": each ASCII byte requires the exact same width, even when it's part of a ligature.
> a compacting ligature for "www" —
Is obviously out of scope. We're discussing monospace ligatures here, not compacting ones.
My fav sites on this topic: https://pixelambacht.nl/2015/sans-bullshit-sans/ https://www.sansbullshitsans.com/
Besides, if someone insists, it's also possible to make a language-specific setting in the editor to disable ligatures in those languages :)
Yes. On my computer. In my editor. That I am using…because I like ligatures, because they make my code easier to read. For me.
Use of ligatures on my setup does not force anyone else to use them? They’re not “viral” like a language feature.
“Oh but what if the >= Unicode symbol ends up in your source code and you don’t notice because you’re using ligatures?”
Is this the most contrived issue ever? Yeah and what if someone runs “find and replace” using Unicode confusables on my codebase? That’s arguably worse and requires no special font features. Plus I suspect most programming languages would throw an error immediately if you used the >= symbol instead of the pair.
If you don’t like ligatures, that’s fine, but there are those of us that do, and our font preference isn’t a threat to you.