1) Make it readable. 2) Make it easy to maintain and extend. 3) Make it run. 4) Make it run fast if you have to.