推动历史发展的因素有哪些