Little 1 by Ann & Paul Rand |

The first time we learn to count we use our fingers in the simplest technique. Some time early in childhood we learn to show fingers for our age, "I'm this many (shows two fingers)". Then we actually learn to count, 1, 2, 3. Later taking it up to 10. So a base-10 number system seems like a natural human number system. But is this true?

I've been wondering why we used a sexagesimal number system (base-60) for time. A hour has 60

minutes and 60 seconds in the minute. Why use this system when it would appear a base-10 system would have been more natural?

Babylonian sexagesimal symbol set |

Compare the simplicity of a base-60 system to a base-10 system when one is in a shop counting baskets of grain. There is a high chance that there will be more than 10 baskets, but lower chance that there will be over 60 baskets before someone wants to start marking on clay tablets. Perhaps the shop keepers relearned to count in base-60 because it afforded fewer trips to the clay tablet.

For non-developers you may continue to think in base-10. As a software developer you need a slightly more abstract system. That system is Zero, One, Many. Simple. All you need. Zero is used to mean the empty set, nothingness, the absence of quantity. Zero has an interesting history. One is used to mean the unique thing, unity, not Zero and not Many. Many is used to mean a collection of like things. Modern programming languages have allowed this abstraction level with many types of objects to represent Many. We have Collections frameworks all designed to represent a specific constraints on Many, but the abstract concept is still Many.

Is there an anatomical representation of this system (Zero, One, Many)? How about the closed fist for Zero, the raised index finger for One, and the open palm held horizontally ready to hold the collection for Many.

See Also:

The History of Zero: How Ancient Mesopotamia Invented the Mathematical Concept of Nought and Ancient India Gave It Symbolic Form

The good thing about TODOs is that they are easily tracked, and after a simple search, could be transformed into whatever ticketing or bug/issue tracking mechanism the team is using.

One might argue that a TODO is simply an item in your uncommitted backlog that happens to be noted in your code.