@teo_zero 12d
I'd say that 2 is indeed quite common in Computer science. In graphs, for example, each edge has 2 ends. In an abstract syntax tree, a binary operator has 2 children. All raster images are based on 2 dimensions. A "for each" loop often involves 2 variables: the iterator object and an index.

In all such cases it makes sense that a language/ construct/library special-cases 2 elements without generalizing for an arbitrary number of elements.

By the way, 3 is much less common, except in some specific domains, like 3D vectors, UNIX permissions (user, group, other), etc.

@alex_sf 13d
The argument against two would be: if you can do two, why can you not do three?
@GauntletWizard 13d
Wherever I need "Two" I usually find that what I actually need is a one and a many; there's not a master and a replica, there's one master and many replicas. There's not two places that the data is when doing a raid restripe, there's many places the data probably is and one place it should be.
@ChainOfFools 13d
I seem to recall that there are certain languages (human languages) that have cases specifically for talking about pairs of objects, situated semantically between singular and plural. I think one of these is an archaic form of Greek, maybe ancient or Hellenistic.
@playingalong 13d
It has always "bothered" me that AWS allowed for up to two API keys per IAM user.
@mmphosis 13d
@jerf 13d

But I have the decency to feel bad and leave an apologetic comment.

@adhesive_wombat 13d
A ping-pong buffer certainly seems like generalising to a ping-pong-pang-peng-pung-p(infinity)ng buffer would be overkill.
@hprotagonist 13d
i fairly regularly want pairwise, yep.
@grensley 13d
Two is quite relevant for relationships