“But I can just write a key-translation layer at the edge of my Clojure program…”
… and then you’d lose the main benefit of namespacing, which is the ability to track a data attribute across your entire system rather than just one component of it.
- Sometimes there are other reasons for translating key names, like storage size. For example, longer key names lead to bigger storage size for for JSON (string) columns in SQL Server and even JSONB columns in Postgres.
- Translating keys does not always mean you lose the ability to track it across your system. Sometimes it just means you search via a regex (for example, accepting either
_
or/
.)