Greenspun's tenth rule