With many programmers and a 17,000 line, student-managed code base, unit-related bugs are inevitable. One option may be to document the units of every single variable while enforcing even stricter code-review, but this is not always possible, especially in the heat of competition.
units-of-measure prevents incorrect code from ever deploying to our robot in the first place.
When developing control system software, real-time performance is a priority. This is why I’ve decided to use inline classes before they have fully matured.
units-of-measure was originally distributed as an annotation processor, but was later repackaged as a gradle plugin to support multiplatform builds.