In general programming languages, like java, C# etc. use dichotomic logic.
Perhaps it is not necessary, however three-valued logic can be more expressive and will improve readability. See an example:
Consider a function F(s) returning "true" if "s" is a unicode string or false if it is an ISO-8859 one. If s = "René", then F(s) is true provided that 'é' is codified by means of two bytes, or it is false whenever only one byte denotes 'é'.
By contrast, if all characters in the string s have a code less than 128, then we cannot discern whether it is codified ISO or unicode. In this case, a third truth-value, between true and false, assigned to to F(s) would be more expressive.