Zero-One-Infinity Rule

( prov.)

   "Allow  none  of {foo}, one of {foo}, or any number of {foo}." A rule
   of  thumb  for  software  design,  which  instructs  one to not place
   {random}  limits  on  the number of instances of a given entity (such
   as:  windows in a window system, letters in an OS's filenames, etc.).
   Specifically,  one  should either disallow the entity entirely, allow
   exactly  one  instance (an "exception"), or allow as many as the user
   wants -- address space and memory permitting.

   The  logic  behind this rule is that there are often situations where
   it  makes  clear  sense  to  allow  one of something instead of none.
   However,  if  one decides to go further and allow N (for N > 1), then
   why  not  N+1? And if N+1, then why not N+2, and so on? Once above 1,
   there's no excuse not to allow any N; hence, {infinity}.

   Many  hackers  recall  in this connection Isaac Asimov's SF novel The
   Gods  Themselves  in which a character announces that the number 2 is
   impossible  --  if you're going to believe in more than one universe,
   you might as well believe in an infinite number of them.

[glossary]