In programming certain word choices are valuable in this way. It's sad that pairs like true/false, good/bad, first/rest, and left/right are unequal length. But there are nice pairs like old/new, head/tail, fast/slow, same/diff, and right/wrong, which can help with create natural vertical alignment throughout a function.

In Japan they have the abbreviation “NG” (“not good”) that’s often used as the opposite of “OK”. I always liked how, when I worked for a Japanese machine learning company, classifiers would be between “OK” and “NG”. Maybe semantically “okay” and “not good” are not great opposites, but I always liked how having textual alignment makes the contrast immediately obvious

It's not unusual in France to use OK and KO. I never liked it much because it's too easy to confuse and no semantically a good opposite either, but visually it does look very balanced.

I wonder if that was part of the reason that some programming languages use constructs like "if / fi" "do / od" etc.

(Note: After writing the above, I checked with ChatGPT, it claims that the main motivation was to make it unambiguous which which "opening word" a "closing word" belonged to.)

Also have/want if old/new is already taken.

Ah, but I use a normal proportional font in my editor so same and diff have different widths.

That was the fun comment. The serious ones:

1. I'm trading the ability to align statements on consecutive lines for a more pleasant reading experience.

2. Nobody ever complained that my source code is

  a = 1
  ab = 2
  abc = 3
instead of

  a   = 1
  ab  = 2
  abc = 3
3. No tables or diagrams in comments of course but I think that I could configure my editor (emacs) to use a monospaced font there. I do use a monospaced font for the ``` ``` blocks of md files.

4. I'm using Atkinson Hyperlegible Next https://www.brailleinstitute.org/freefont/

2. You must have never written Haskell.

They would complain if it's:

  a   = 1
  ab = 2
  abc = 3

You caught my OCD. I like to use upper / lower a lot.

Row/col works but width/height doesn't, alas.

But w/h does.

I sometimes use abbreviations like wd/ht. Should be understood with surrounding context.

I hope! And I abbreviate w w w.

There's only two things I hate in this world: people who do column alignment for vars and function params, and the Dutch.

> It's sad that pairs like true/false, good/bad, first/rest, and left/right are unequal length.

You're just matching them wrong. On/off and yes/no may look unequal, but what about yes/off or on/no?

This reminds me of all the (fun) times I had coming across “enable toggle” and “disabler enabler”.

Bonus points for taking “YES” (looking at you FreeBSD) or “1” or “ON”.

[dead]

[dead]