Comment by amake
2 years ago
To all the people complaining about how they don't like ligatures:
Nobody cares. If you don't like them, then don't use them. They are optional.
Lots of people like them. Let people like things.
2 years ago
To all the people complaining about how they don't like ligatures:
Nobody cares. If you don't like them, then don't use them. They are optional.
Lots of people like them. Let people like things.
Ligatures make code harder to read and harder to edit. It's not just personal preference, it's the science of usability. When I press backspace or cursor keys, I expect one glyph to be erased, not who-knows-how-many (half?!).
Authors of content and programs with ligatures-by-default subject their readers and users to the penalty of ligatures.
Some people like pain, but that doesn't mean we need pain switches on everything with pain set to on by default.
> When I press backspace or cursor keys, I expect one glyph to be erased, not who-knows-how-many.
That's you, and not very generalizable. Many people edit on sites with ligatures and many people edit non-Latin text where isolated, non-ligatured text is wrong (Arabic, some Indic scripts, Han characters, Japanese katakana).
Me personally, with respect to code, I pretty much think in terms of tokens: to remove the `==`, I backspace twice, rather than that to remove the `==`, I remove `=` and then the other `=`, and each requires one backspace.
Also ligatures in a monospaced font are going to tell you they’re multiple characters because they’re either fat af or misaligned. You know it’s coming.
To be honest though I think I like those big fat commas the best. As someone pointed out, using dot and comma as semantically important in software is a mistake because they only differ by one pixel.
3 replies →
If it's established science that they are worse, could you share some citations backing that?
> It's not just personal preference, it's the science of usability
It's obviously personal preference, because many people prefer it. If I found ligatures harder to read or edit then I wouldn't use them, but I don't, so I do.
> programs with ligatures-by-default
Such as?
>If I found ligatures harder to read or edit then I wouldn't use them, but I don't, so I do
people likely prefer them for aesthetic reasons, just like they do certain color schemes, but there are objective answers in regards to legibility, and many people certainly use suboptimal setups. Lots of people code sitting hunched in front of their computer too, which is their personal preference, but also objectively bad for your neck.
Ligatures suffer from some straightforward objective issues, like being semantically wrong in certain cases. An inequality check should be a ligature, but in a literal string the character sequence is likely not intended to be subsituted. As such they create unecessary ambiguity, which is just bad.
Also they functionally don't have a reason to exist in monospaced fonts which are the norm in coding. given that The issue they're intended to address is overlapping characters.
Preferring it is personal preference. It being good or better is science. People prefer dark theme even though it's objectively harder to read because of the reduced contrast ratio, among other reasons.
4 replies →
Ligatures make code easier to read because they map 1-to-1 to tokens. Ideally, the font would also be proportional; and the IDE would support elastic tabstops... But the tech isn't there yet.
Let blind people's text to speech readers read things. If you're printing it out, or you know it's for limited use digitally, go for it. But if you expect the public at large to read the digital text please make it text to speech accessible: no ligatures.
Ligatures (the kind mentioned in TFA) are inserted at the font rendering level. Screen readers don't even know ligatures exist, because the server sends ordinary characters that your browser's engine then groups into (and replaces with) ligatures as defined by the font itself.
The ligatures discussed are implemented at the rendering level. The byte sequence of text is unchanged vs the "no ligature" scenario. So this has zero impact on screen readers.