

Suppose you’re looking at a code fragment that uses Unicode characters and see the symbol ≠. The problem? Many of the programming ligatures shown above are easily confused with existing Unicode symbols. In addition to alphabetic characters, Unicode assigns code points to thousands of symbols (including emoji). If you have a Δ in your font, you associate it with its designated Unicode code point, which is 0x0394. Instead, Unicode designates a unique name and number for each character, called a code point. This way, software programs don’t have to worry that things like the Greek letter Δ (= uppercase Delta) might be stashed in some special place in the font. Unicode is a standardized system-used by all modern fonts-that identifies each character uniquely. So what’s the problem with programming ligatures? For instance, these come from Fira Code, a heavily ligatured spinoff of the open-source Fira Mono. But instead of fixing the odd troublesome combination, well-intentioned amateur ligaturists are adding dozens of new & strange ligatures. Ligatures in programming fonts follow a similar idea. Conversely, this is why I loathe the Th ligature that is the default in many Adobe fonts: it resolves nothing, and always draws attention to itself. Ideally, you don’t even notice it’s there. In this type designer’s opinion, a good ligature doesn’t draw attention to itself: it simply resolves whatever collision would’ve happened. To fix this, the fi and fl are often combined into a single shape (what pros would call a glyph). For instance, in serifed text faces, the lowercase f often collides with the lowercase i and l. So in the end, even if they’re cute, the risk of error isn’t worth it.įirst, what are ligatures? Ligatures are special characters in a font that combine two (or more) troublesome characters into one. Ligatures in programming fonts are likely to either misrepresent the meaning of the code, or cause miscues among readers.


(Some days, but not today.) Programming code has special semantic considerations. Ligatures in programming fonts are a terrible idea.Īnd not because I’m a purist or a grump. Ligatures in programming fonts-a misguided trend I was hoping would collapse under its own illogic.
