Post the IBM 360 the industry standardized on the 8-bit byte and the obvious integer types that are a multiple of that. Ada has the idea that you might define an integer in the range 1..1000 and the compiler would figure out how to represent it, an idea that's been thoroughly rejected by newer languages... I mean, you're never going to program for something weird like a PDP-10 ever again!
where you very much live 2's complement math, so if you want do do unsigned math in Java you are expected to understand that the unsigned integers are hidden inside the signed integers and vice versa. It's high level but you have to think like an assembly programmer!
The article of course ignores the direction of more dynamic applications languages like Python and Clojure that put bigints on your fingers and often have a disciplined hierarchy along the lines of
Post the IBM 360 the industry standardized on the 8-bit byte and the obvious integer types that are a multiple of that. Ada has the idea that you might define an integer in the range 1..1000 and the compiler would figure out how to represent it, an idea that's been thoroughly rejected by newer languages... I mean, you're never going to program for something weird like a PDP-10 ever again!
So we are very much in the world of
https://en.wikipedia.org/wiki/Hacker%27s_Delight
where you very much live 2's complement math, so if you want do do unsigned math in Java you are expected to understand that the unsigned integers are hidden inside the signed integers and vice versa. It's high level but you have to think like an assembly programmer!
The article of course ignores the direction of more dynamic applications languages like Python and Clojure that put bigints on your fingers and often have a disciplined hierarchy along the lines of