Unit Conversion

Units of measurement are how abstract numbers come to represent things in the real world. Converting and composing units are a critical piece of science and engineering yet programming languages prefer to leave units out of the language. Method plugins inclusion of units is exciting.

I had an awesome conversation with a Brian Wilson, a JPL atmospheric scientist, on the way out the door from SciPy 2006. Among many other things I took away from that conversation were two critical needs that scientists have from computing: 1) massive, fast, n-dimensional arrays as a first-class data type, and 2) support for units.

Brian was really excited about the work Guy Steele was doing on Fortress at the time, and especially excited about the inclusion of units and dimension as part of the type system. As he mentioned units I couldn't help recall the Mars Climate Orbiter that disintegrated in the atmosphere because of a mismatch between metric and US customary units. As it turns out he had friends at JPL who had been involved in that mission. He stated emphatically that the dramatic failure of that mission was due to mis-management and not the engineering, despite the facts about units. Apparently the JPL engineers had identified the problem with sufficient time to possibly correct the code in flight before entering the atmosphere but were denied the chance by management.

All of that is a long way to get around to the claim that carrying values around with their units is a really, really valuable thing to include in fedwiki and perhaps needs to be generalized for broad application (if it hasn't already).