"The difference between using CSS and setting canvas element attributes lies in the fact that a canvas actually has two sizes: the size of the element itself and the size of the element’s drawing surface."
"* Are general-purpose methods; they were not meant for animations * Are not millisecond-precise, despite your sending them millisecond values * Do not optimize the manner in which they invoke your methods * Blindly call your methods at approximate times, without regard to when it’s best to animate"