I’m writing a computer graphics software package that I definitely want other people to use. And today I made an unusual decision in its design.
You see, there is one place where all of the standard packages ask users to specify an angle in degrees, so that a full circle is 360o around. This seems reasonable enough on the face of it. After all, it’s the way most people think about a circle.
But in fact, when people do actual math in computer graphics, they always work in radians, so that a full circle is 2π around (just like they teach you in math class). Hence my dilemma.
Should I go with the same “friendly to most people” standard that the other packages use (degrees), or should I be consistent with the way computer graphics is actually done by people who do computer graphics (radians)?
Eventually, I decided that this is really a political question: When I invite people to use my package, what tribe am I asking them to align themselves with? Because there really are multiple tribes here.
There are the people who say “I just want to call a software package that does stuff for me, and I really don’t care to know how it works.” Then there are people who say “I am using this package as a starting point for what will be my own experiments and mathematical innovations in computer graphics.”
Since I teach computer graphics, I realized that I’m really designing this for that second tribe — my tribe. I want people to poke around inside my code, see how I am doing things, maybe come up with their own way of doing it better. I am making this software available not merely to provide a convenience but to invite a dialog.
In the end I am choosing radians. Which means that I am chosing sides, aligning myself with those people who really want to dive deep and learn all about computer graphics.
Because math, like everything else, is political.
The classic example:
http://articles.latimes.com/1999/oct/01/news/mn-17288