Something that has always puzzled me is the fact that when I change the font used in a program, even though in theory the font size is remains the same, the actual displayed size differs dramatically. For example, Inconsolata at 13 looks so much smaller than Source Code Pro at 13, so that I have to set it to 15 to make my eyes comfortable. In another example, Proxima Nova seems to be smaller than Helvetica Neue.
Why do I feel such a phenomenon? Is it only because different fonts have different single-character width, such that some fonts simply look more cuddled together? Or is it actually that font size doesn’t really mean a lot regarding the real size of individual characters (both height and width), and that different fonts might have radically different actual sizes even though the theoretical sizes specified are the same? If that’s the case, then font sizing looks to be a very confusing matter. Why isn’t there a more uniform way to represent the actual size a character is going to occupy on screen so that switching between fonts would be easier?