This page collects details from an early morning moment of inspiration that might slip from mind. As with many early morning fantasies, we are not yet sure how much effort there would be to create it nor if it would be worth that effort. Born of years of frustration with software business fixation on measurable goals. I do not think business understands measurement and imagine constructing a wiki to explore what I think measurement really means and where I think The Business misunderstands it.
The wiki might look like Ward's explanation about How Thermostats Work
.
Ask Ward for more details about how rational numbers were implemented in WyCash. For example, is the core mechanic having a function to compute greatest common denominator in a pair of rational numbers? See Foreign Currency ![]()
Review the code that implements unit conversions in the Method Plugin. Ask Ward if that implementation has something in common with WyCash rational numbers. See About Method Plugin.
There may also be an opportunity in this exploration for the author to find a motivation to deeply consider programmatic types.
We imagine building some objects for use in computations that make the realities and limits of measurement explicit.
To represent an abstract velocity (e.g. 20 miles per hour), we need a rational number where the numerator includes an integer and units of distance and the denominator includes another integer and units of time.
Representing a measured velocity requires a computational model of the device moving at speed. We need a measurement for the radius of the wheel and its tire. We also need a measurement of the revolutions per minute (RPMs). The RPMs would itself be a combination of a counter of the number of rotations and a measurement of time.
We would want those measurements to include a rational number and the units of measurement and an estimate of the accuracy of the measuring instrument.
With measurements including an estimate of accuracy, the computations should account for compounding of these margins of error.
In a real device, we must cope with the fact it will not have a constant velocity. So our model may need to include something about acceleration to accommodate inconsistency in the measured and computed velocity.
We imagine an ironic protest of the details in this proposed model of measurement: "In Real World Software Business™, we don't have time to measure everything."
I which case, we might offer a different object that can collaborate in computations that is an estimate or assumption. Instead of actually measuring the radius, we could specify an assumed radius. In this object, instead of an accuracy, we might have a notion of tolerance for the specified radius to fill a similar role in the computations.