I mean, I certainly wouldn’t give someone else shit for using ligatures, but personally, I don’t like them, because:
- they break with monospacedness. Everything is in a nice grid and you’ve randomly got these character combinations that needlessly stick out.
- they sometimes happen in places where they really shouldn’t.
- they hide what the actual characters are. Especially, if go to edit that code, my brain will really struggle for a split-second when there’s a ‘≠’, then I delete one character and rather than the whole thing disappearing, I’m left with a ‘!’.
they break with monospacedness
The IDEs I’ve used had the ligatures be of the same character width as the original operator.
Oh, yeah, I meant that it makes two characters into one big one, visually reaching across two or three widths, or just having one of the characters larger than the usual grid, e.g. in :=
the equals sign reaches into the width of the colon.
This reminds me of a recent Microsoft font¹, so naturally here’s a rant about that: They developed a feature, called “texture-healing”, which basically allows characters that normally need to cramp into one monospace width, like m
or w
, to reach into the space of neighboring characters, if those neighboring characters are narrow, like an i
.
In theory, not a terrible idea, but then you get this kind of hate crime:
Obviously, might just be me again, but not having these letters align, just looks so much worse to me.
¹: It’s this font: https://monaspace.githubnext.com/
Do you also get surprised when you backspace a tab and suddenly it removes more whitespace than 1 characters worth?
Or did you learn it fast and really never think about it?
I think it’s more a “getting used to” thing, that once learned, you don’t think about, but it makes things more readable.
Sure, I could get used to it. But it being more readable is not even true for me, because the thing I got used to instead, is that !=
is the unequals-operator. I see that much more often than ≠
.