What makes it so hard to program?