Diferenças entre os comandos de entrada no Python 2.xe 3.x

Ok, então eu uso muitos comandos de entrada, e eu entendi que no Python2 eu posso fazer:

text = raw_input ('Text here')

Mas agora que eu uso o Python 3 eu queria saber qual é a diferença entre:

text = input('Text here')

e:

text = eval(input('Text here'))

quando eu tenho que usar um ou outro?