I'd say that the idea is pretty much just common sense and gets used everywhere. Except instead of as abbreviated prefixes, people use all sorts of forms of it, e.g.
The idea has mostly fallen out of favour these days, but that's where it came from.
Sorry yes, I meant the abbreviated prefixes rather than the concept as a whole.
I think ideally, as SeanMiddleditch pointed out, we have strong typedefs so you couldn't do
typedef int Row; typedef int Column; Row x; Column y; x = y; // error, requires cast of some sort