I think the question that should be asked here is not why use long names, but why use short ones?
Short names are faster to type, but code is "write once, read many times". A programmer spends vastly more time reading code, than writing it. And I am not just talking about code reviews. Every time you look up the definition of a class, or when you try to remember or figure out what a function does, or when you are trying to find a bug, you are reading code. The easier you can make reading code, the more productive you will be.
Long descriptive variable names make reading code easier, while cryptic ambiguous abbreviations make reading code harder, resulting in longer development time, and higher probability of bugs.
Short abbreviated variable names make typing them easier, but the time you save on typing is a tiny fraction of the time you lose reading the code afterward. And if you think of the time you are going to spend debugging your code, because you have long forgotten what
pm actually means, and you have used it incorrectly as a result, then you will see that abbreviated names should be avoided at all cost.