No iOS, qual a diferença entre redimensionamento automático, AutoLayout e restrições?

Ao ler a documentação da Apple, encontro referências a autoresizing, AutoLayout e restrições. Qual é a diferença entre usar tudo isso no código? Qual é a maneira correta de aplicar essas técnicas programaticamente no iOS 9?

questionAnswers(1)

yourAnswerToTheQuestion