Hacker News new | ask | show | jobs
by howdydoo 1607 days ago
If you think "→" misrepresents the meaning of "->", then certainly "->" also misrepresents the meaning of a semantic arrow "→". The set of symbols in 7-bit ASCII is somewhat arbitrary after all.

Let's say "→" misrepresents the meaning of "->" even as much as 0.1% of the time. Would you rather your risk of error be 99.9%, or 0.1%?

I'm sick of anti-ligature people telling everyone else not to enjoy their fonts, on every single post about a font. Ligatures have caught on for a reason.

6 comments

> I'm sick of anti-ligature people telling everyone else not to enjoy their fonts

Who is doing that? Certainly not the author. It sounds to me like you're taking the author's opinions as a personal affront, which seems... weird.

If you say it is a "terrible idea" that kind of implies that anyone who has the idea to add them to their font or use a font that supports it has made a terrible choice. At least, that's how I interpret it.

It's certainly not the most neutral phrasing.

The only thing that is annoying with -> as two characters is the misalignment of the horizontal center. If the ligature had always centered the - to the middle of the >, I’m not sure so many people would be pushing towards having a single arrow.
Ligatures caught on because users like 'clean' designs where 'clean' means 'the removal of affordances which are not needed by frequent users but are useful to new users'. Your example doesn't make any sense because while the dash arrow attempts to mimic an actual arrow it's not ambiguous that it's two characters and will be understood by a compiler as such. A reading of source code either on a blog or shoulder surfing with this font does have that ambiguity, which is the problem.
I don't think "→" necessarily misrepresents the meaning of "->" (though see the objections throughout the thread re: differing ways that languages notate "not equal to.")

The point is that programming isn't just an exercise in semantics. But it is deterministic symbolically.

The issue is that people also share screenshots, and ligatures are not universally shaped or styled, unlike ASCII.
Screenshots are a suboptimal way to share code in general, and should be avoided. If you are trying to copy code from a screenshot something has gone horribly wrong in your process. If you are having trouble reading ligatures, that may be a learning curve issue you can adapt to with more use. (Arguably, most ligatures should be obvious with enough familiarity with the programming language without needing to look them up or learn them.)

Most other ways of code sharing you just copy and paste into a non-ligature font if you need to.

Aside: "ASCII" symbols are neither universally shaped or styled either. The easiest and obvious example to mind is the plain 0, dotted 0, slashed 0 choice and confusion with nearby symbols such as O and o and θ (Theta, not far away in "Extended ASCII"). Similarly all the variations of lower-case L (versus 1 and i). Those choices vary considerably between fonts and are another huge reason some people prefer certain monospace fonts over others and the debate over "best" will likely be an ever ongoing one. You may not think these issues compare to ligature use, but it's exactly the same sort of style debates.

Works great until some jerk uses `→` as a variable name...