Kebab Case and Infix Notation 2023-1-8
Of all the conventions for naming things in programming languages, kebab-case is the most pleasing. It's better than camelCase and snake_case and everythingruntogether. The only problem is that we want to use -
as an infix operator for subtraction.
One fix is to require spaces around -
operators to disambiguate them from parts of identifiers. I mostly put spaces around operators anyway, since it's easier to read.
A minus sign is a very consequential thing in a program. In programs for controlling robots, negating a expression typically reverses its effect. But the -
character is visually very small. NASA supposedly lost a rocket due to a spurious -
in the code. (I'd fact-check this, but I fear I'd lose an afternoon down that rabbit hole.)
So rather than change the syntax of my language, I changed the rendering. An -
character (subtraction) renders as a big fat em-dash, and a _
character (part of an identifier) renders as a small en-dash, making identifiers look even better than regular kebab-case. Here's a screen shot, showing how visually prominent the negations are:
Thanks to Hillel Wayne for the inspiration [HN discussion].