What does java natural ordering mean?
I've found two definitions – roughly:
the order of things that feels natural or standard to humans (like alphabetic order)
the order of things that is natural or intrinsic to the data type in question (like ordering numbers from smaller to bigger)
The two can obviously overlap, since what's "natural to a data type" is often something humans decided is natural.
Is it possible that "natural" comes from "natural language"?
The term “java natural ordering” is very artificial, because the natural state of things is chaos and not order.
It appears that some (early) artificial concepts relate to physical things in nature. For example:
Natural numbers can be related to quantities of countable things like the number of sheep in a herd, or like on this 5000 year old papyrus that you can witness in the Egyptian gallery of the Louvre, a number of bags of corn that someone owed to Pharaoh (accounting documents is really an old concept)
Decimal numbers can easily be related to measurable things, like the length of a field.
The natural order then refers to the order of the the natural thing to which the artificial abstraction corresponds:
a natural number is larger than another when it represents more things.
a decimal number is smaller than another if the field is smaller (visually) or if it takes less time to walk from one end to the other.
This is how a very long time ago the notion of natural order emerged for numbers. And mathematicians around the world still agree.
In modern times the true meaning of “natural order" is that someone decided what "natural” shall be and that order appeared logical and useful to some people. Encyclopedists in the 18th century invented the lexicographic order for easily and systematically finding a word in their large books. This quickly became “natural”.
But in reality there is no alphabet in nature. The alphabetical order of the occidental alphabet might appear completely unnatural and illogical to the users of the Chinese alphabet. So often, natural just means “arbitrary but useful convention” and “natural” just hides the diversity of conceptual mappings in the world.
Take a provocative counter-example: Imagine you have designed a system that manages a list of objects of class People. What should be according to you the natural order: the alphabetical order of their name? the numerical order of their social security id? the chronological order of their date of birth? their size? their wealth? Whatever the choice, it’ll be completely arbitrary and not at all natural, even if many would immediately think in alphabetical order (which puts me personally always at the end of the list).
In conclusion, both definitions are equally misleading. Use the term natural order only if you can map this order to physical dimensions. In all the other cases, clarify the nature of the order, because “natural” doesn’t exist in this case. Never hide well founded but nevertheless arbitrary and artificial behind ”natural”