...and overused. Every time I espouse this unpopular opinion amongst fellow programmers, I am met with stunned silence. Then, the questions start. How can you hate bools? people want to know. It does seem like an unlikely target for ire, something so small, so seemingly benign, so simple.
To be perfectly clear, bools and boolean logic are an unavoidable fact of programming. One cannot just do away with them. But one should be careful to use them like a scalpel rather than a sledgehammer. So, what is the problem with bools? In short, the semantics of boolean values depends on the context where they're used rather than where they're assigned. As programmers, we often control the latter, but not the former, and thus, they are an invitation to error.