Design note: why EK9 checks names

This note goes with Naming Quality Enforcement. EK9 makes three naming checks compile errors: reference ordering (E11026), confusingly similar names (E11030) and non-descriptive names (E11031).

You might be thinking: "My variable names are fine. Why is the compiler complaining?" Fair question. We're not being strict for the sake of it: names that do not say what a value means have been part of real failures.

What the research found

Real-world failures

In each of these, a value's meaning or limits were not carried by its name or type:

The Pattern: in each case the meaning or the limits of a value lived in someone's head, not in the code.

AI coding assistants

With AI coding assistants (Claude, GitHub Copilot and others), meaningful names matter more:

Why errors, not warnings

Style checkers can already enforce import order, as a warning that can be configured or suppressed. EK9 makes all three checks errors, for the reason in errors, not warnings: a name you mean to fix "later" ships. Once the compiler is the standard, a team never has to debate naming standards again.