🔍

đŸȘ€ The ASCII Trap

When designing a programming language, one quickly discovers that the limited set of readily typable ASCII characters is both a toolbox and a trap. Every slash, colon, asterisk, or bracket carries decades of precedent—semantic barnacles—and nearly the same caveats and escaping hazards no matter what language you are trying to design. Choosing one for a new purpose is rarely neutral; the decision is often less about novelty than negotiation with history. One does not simply declare that * means something other than multiplication (or that # means “private”—/me vomits). A slash might serve as division, a path separator, or a regex delimiter, and each usage brings quirks and parsing headaches. “Clever innovations” like CoffeeScript’s triple-slash regex literal were medicine worse than the disease. In the end, language designers are constantly shoehorned into the same patterns, forced to make compromises that balance readability, ergonomics, and the invisible weight of all the languages that came before.

programming shoehorned creativity writings published