Tipo de botão "botão" vs. "enviar"

Existe uma diferença entre umbutton comtype="button" vstype="submit"? Existem diferenças funcionais ou é apenas um nome descritivo para facilitar a leitura do código?

Isso é diferente deinput?