Comment Re:Oh come on. (Score 1) 250
The main reason why people recommend it is because of what happens if you mix signed and unsigned. If they are of the same size (e.g. signed int and unsigned int), then according to the spec, the result will be unsigned. So you divide, say, -2 by 1u, and get something very unexpected. If you always use the same signedness, then you can dodge this problem, and in general you do want to represent negative numbers every now and then, hence the default is signed.
In practice it doesn't work so well simply because so much of the language and the standard library uses unsigned anyway. For example, sizeof is unsigned, and so is strlen(), and in C++, size() on all the standard container types, including string. So if you want to write C or C++, you have to deal with signed/unsigned mismatch anyway.