Why restrict to 54-bit signed integers?
Because number
is a double, and IEEE754 specifies the mantissa of double-precision numbers as 53bits+sign.
Meaning, it's the highest integer precision that a double-precision object can express.
I suppose that makes sense for maximum compatibility, but feels gross if we’re already identifying value types.
It's not about compatibility. It's because JSON only has a number
type which covers both floating point and integers, and number
is implemented as a double-precision value. If you have to express integers with a double-precision type, when you go beyond 53bits you will start to experience loss of precision, which goes completely against the notion of an integer.
Your comment feels half-baked at best. You start to talk about "best editors" but you proceed to present your two best examples and neither has anything remotely related to editors.
CLion is undoubtedly the absolute best IDE for C++ projects, and it's multiplatform on top of it. It's not even a competition, specially if you're using CMake. Using Git integration as your best and single example to refute this is extremely puzzling by how silly it is.