In the early computing systems it was easier to use two hard states 0 and 1 rather than three or more discrete levels as it means that you can hard switch your devices. Once your programming schemes are based around binary and working well, why change to another system.
What would be the advantage of using a tri-state logic in the majority of applications? This needs to be considered both from speed of processing and ease of implimentation.
it is not just easier to use, it is simplest possible logic (you can't really make a logic out of one value), but it is quite enough for everything, at the same time. suppose you have some 4-valued predicate F(x) that can be all the values v1, v2, v3 or v4. In terms of 2-valued predicates, that translates into two predicates P(x) and Q(x), that are defined like this: