[webkit-dev] the name "AtomicString"

Maciej Stachowiak mjs at apple.com
Wed Dec 19 14:37:10 PST 2018

> On Dec 19, 2018, at 12:33 PM, Michael Catanzaro <mcatanzaro at igalia.com> wrote:
> On Tue, Dec 18, 2018 at 9:31 PM, Darin Adler <darin at apple.com> wrote:
>> I’ve gotten used to the name AtomicString over the years, but I wouldn’t strongly object to changing it if other programmers are often confused by it’s similarity to the term “atomic operations”.
> Well there were two other developers in the thread Ryosuke linked to who made the exact same mistake as me, so I do think the current name is problematic. A change wouldn't need to be drastic, though. I think suggestions from the old thread like "StringAtom" or "AtomString" would be unproblematic. The problem is the specific word "atomic" carries an expectation that the object be safe to access concurrently across threads without locks; I think that expectation doesn't exist if not for the "ic" at the end.
> FWIW I've only ever heard the "interned string" terminology prior to now.

“Interned string” is really obvious to people who have seen it but mysterious to those who have not. Unfortunately, I don’t think there is a term for this concept that most programmers will already know. So the best we can do is a term that is clearly something you need to look up and can’t be confused for something else. Another term of art name for this concept is Symbol. Unfortunately, search results for String, Atom and Atom String don’t give a helpful explanation, and Symbol could be confused with the JavaScript language’s notion of symbols. “Interned String” gives helpful search results, but is not the normal use of the terminology. Usually there is an operation called “intern”, or there might be reference to “string interning”, but it usually gives back just a plain string, or a type with a name like “atom” or “symbol”.

On balance, if we change, I’d lean towards Atom, since it is concise, obviously mysterious if you don’t know what it is, and understandable to at least some people who have seem that name for the concept. The only downside is that it’s not obvious from the name that it is a kind of string.


More information about the webkit-dev mailing list