What is the difference between "dichotomous", "binary", "boolean", etc.?
Solution 1:
Boolean refers to Boolean algebra, named after George Boole.
While Boolean true/false values have other uses in computer science - a heavy use of it today - the thing that makes it Boolean isn't just that it can such values can only be true or false, but that one can also do Boolean algebra on it (e.g. in the expression x ∧ (y ∨ ¬z)
expressed in computer code as e.g. x && (y || !z)
(C-style), x AND (y OR NOT z)
(Basic-style) and others). If we had a programming language that allowed of branching on a two-way value, but didn't allow for such Boolean algebra, then such values wouldn't truly be Boolean.
You don't do Boolean algebra with a dichotomous key, so it would would be incorrect to call it Boolean.
Binary means anything involving two things. A dichotomous key is hence a binary approach, but this meaning is different to some more specific meanings of binary (it has nothing to do with the binary number system, for example).
A dichotomy refers to splitting something into two parts. Hence everything that is dichotomous is binary, but not everything that is binary is dichotomous.
So, Boolean is wrong, binary is valid, but not as precise as dichotomous which is completely correct.
Solution 2:
In most programming languages, boolean variables are either true
or false
; in Ruby, however, a boolean variable is true
only if it is neither false
nor nil
. Moreover, Boolean operations can operate on objects other than boolean variables, and allow don't-care values as valid inputs.
A binary operation involves a choice between two, and only two, mutually exclusive alternatives, and thus does accomplish a dichotomy. However, binary as an adjective simply describes something that consists of two parts.
In biology, dichotomous key is a standard term to the extent that you will find it in most dictionaries:
dichotomous key, n. : biology : a key to classification based on a choice between two alternative characters [MW Unabridged]
There isn't a compelling reason to call it anything else.