Nouns vs. Verbs

Nouns vs. Verbs

RPGs, as seen by RBG

My first impulse for this thought dates all the way back from 2019 - the article Verb-noun vs noun-verb 🌐 from Red Blob Games which, makes an interesting observation about the shift in interfaces of role-playing games that I’ll try to quickly summarize here - feel free to skip this section if you’re familiar with it.

Older games placed emphasis on verbs (user actions), of which there were plenty - for illustration, here’s Nethack’s keybinding map:

And this is contrasted with modern games, which typically only have a single “USE” button - thus emphasizing nouns, i.e. game items or objects to be USEd.

This is then extended to apply to programming languages as well - those that privilege verbs, i.e. functional languages (do(thing)) and those that privilege nouns, i.e. conventional OOP languages (thing.do()).

The key takeaway from this comparison seems to be that the latter, noun-centric approach seems to be more ergonomic both for players and programmers, who first choose the thing to operate on, and then select from a relatively small list of possible actions, as offered by autocomplete; as opposed to first selecting from the space of all possible actions and then the thing (which the action well may not even apply to).

RBG, as seen by TML

Now, there’s an obvious objection: There’s no reason, other than a lack of imagination, that autocomplete should be only able to complete “forwards”. An autocomplete system that first takes the object, and then inserts text not just after the cursor but before the token is perfectly possible. There’s certainly a point to be made, that this action does kind of flow “against” the syntax, which makes it a bit less predictable and marginally more difficult to implement; but it’s ultimately a minor one, as it really only holds for the current crop of IDEs. And outside of them (without auto-complete), the benefit of this syntax all but disappears - at least as far as I can tell.

Additionally, from a game-centric perspective, this is very much the charm of verb-heavy roguelikes! A potion cannot just be USEd (i.e. drank) but also thrown! A monster, just as a door can be KICKed… These interactions are costly to code, but well worth it for the richness they bring into the game world.

However, from a broader perspective, the distinction itself is very much valid, and does in fact illustrate why I (unlike RBG) prefer the verb approach over the noun approach!

Homogeneity of systems

The second impulse was the article One way to represent things 🌐 by Tom MacWright.

This approach can essentially be described as “verb-centric”, in that there is only a limited amount of the kinds of “nouns” available in the system, which can be applied to a wide variety of verbs.

This is also the strenght of the UN*X philosophy, since all of the little utilities fundamentally operate on text or files, so they can compose in simple, but powerful ways. Of course, the downfall of this is that a “file” or a stream of text is a very very dumb noun and, and thus a lot of the complexity of shell pipelines boils down to massaging either of those, because of the lack of their inner structure 🌐. More on this in “There is only one OS, and it’s been obsolete for decades” 🌐.

Other impulses

The term noun bias is used to describe a common pattern exhibited in children's early vocabularies in which the number of nouns exceeds the number of other word types.