There are languages in which you have no choice. In Specman, for instance, you can't write:
var x: uint;
if (x) {
bla
};
But you can do:
var x: uint;
if (x != 0) {
bla
};
or
var x: bool;
if (x) {
bla
};
However, you can't do:
var x: bool;
if (x != 0) {
bla
};
Because you can't compare a boolean to an integer.
Coming from C and Perl I always thought this to be annoying, until I actually started writing a lot in Specman. The code is simply clearer like this.