Hey guys! Have you ever heard of Unit of Measurement (UoM) libraries? Is this piece of C-type code scary to you?
static final double c = 1079252849; static final double SPEED_OF_LIGHT = 1079252849; static final double SPEED_OF_LIGHT_IN_KM_PER_H = 1079252849;
From a colleagues previous research, there are about 3700 of them right here on Github and about 586 of them are active projects. That’s quite a lot of libraries, and as a Informatics masters student at Uppsala University working towards my thesis, I’m trying to figure out the reasons to the lack of adoption of a lot of these UoM libraries by surveying and interviewing scientists and developers. It’s going pretty well so far!
If you’ve ever used C++ Boost.Units, JSR-385, F#'s inbuilt support for UoM or any other UoM library in any language (or have implemented your own custom solution, or have considered using one of these libraries), I would be super grateful if you could spare a moment of your time to fill out the following survey for me. It only takes about 5 minutes to fill out.
Here is the link to the questionnaire: https://docs.google.com/forms/d/e/1FAIpQLSfGsH9qSllDPaM5qBuvcSISWNH4fwzl1Gkcf50IOT9F4kABUQ/viewform.
I’ve posted this survey on Reddit and got some good responses. A few perspectives were that some of these libraries suffer from being overcomplicated/unusable with too much templatized baggage and restrictive with their types (such as forcing quantities to be doubles, leading to possible loss of precision), costly to adopt with so much existing code/overhead to getting started, lack of social push for these libraries. And even laziness and unawareness of these libraries!
If you have any reasons as to why the lack of adoption of these UoM libraries are a thing. Please take the questionnaire and give reasons. Feel free to post here or message me on the philosophy of unit or unitless code. If you’re interested in the replies of the redditors in detail, message me and I’ll give you a link to the threads I made on Reddit!