Douglas Crockford

About

Books

Videos

2019 Appearances

Blog

JavaScript

JSLint

JSON

Github

How JavaScript Works

Cycles

Most people measure angles in degrees (0 ... 360). Most mathematicians measure angles in radians (0 ... ). But as a programmer, I think it is best to measure in cycles (0 ... 1). It is trivial to correct over-rotation (discard the integer part). It is trivial to find the quadrant (the two most significant bits). Table lookup implementations of sine are trivial as well.

All three units work, and each is easily convertible into the others.

cycle   =  degree / 360  =  radian  / 2π
degree  =  cycle  * 360  =  radian  / 2π  * 360
radian  =  cycle  * 2π   =  degree  / 360 * 2π

When converting between radians and degrees, there is an implicit step where values are first converted to cycles.

I am thinking that programming languages should make cycles the standard angular unit. It is the most convenient for programming. It is less baffling to normal people than radians. Computers can express cycles exactly. Computers have trouble with π.

Mathematicians may still have reasons to prefer radians, but they are smart enough to know how to do the conversion if they have to.