Physical Simulation and AI: Differentiability, Productivity, Performance, and Taichi Programming Language