User experience: Python vs R, PyMC vs Stan, PyTensor vs JAX

Theano was definitely doing reverse (and more patchly forward mode) AD all along, and worrying about avoiding duplicate computations between forward and autodiff. It also had higher order AD from the beginning.

Tensorflow 1.x was greatly inspired by Theano.