静的型付けについて

戻り値と引数の型を宣言しておくことで、つまらないエラーとそれを捉えるためのテストを書く手間が省ける、というのが利点のひとつとして挙げられるとおもうけど、これって要するに戻り値や引数の型を宣言できる、ということが肝要なのだから、べつに動的型付けでも実現できるよね、というかPerlがそれをやっているよね、ということを考えてる。(ただPerlのMouseはすごく大仰だし冗長になるし、だったらJava書くわ、というかんじだから、最適解だとはおもわない、ちなみにJava書いたことない)