Hall of FamePatrick McKenzie20103 min readintro
Falsehoods Programmers Believe About Names
Summary
Patrick McKenzie enumerates 40 common misconceptions programmers make about human names, showing that assumptions about uniqueness, format, immutability, and character set are all wrong. Systems should treat names as opaque, Unicode strings and avoid rigid schemas.
- Never assume a person has a single, immutable, ASCII-only full name; names can have multiple forms, change over time, and use any Unicode characters.
- Avoid rigid schemas like separate first_name/last_name columns; store names in a flexible way that can accommodate cultural variations.
- Do not rely on case sensitivity, ordering, or uniqueness of names for identity; use separate identifiers instead.
- Expect names to contain numbers, punctuation, all caps, or be in any language; design for variable length and full Unicode support.
Anyone building user profiles, identity systems, or databases needs to handle names robustly to avoid bugs and exclusion.
6/10