>>23
無駄な柔軟性があるから。

たとえばグローバル変数にしておけばどこからでも値を変えられて便利じゃね?
gotoがあればどこにでもジャンプできて便利じゃね?

動的言語の不必要に高い柔軟性はこれと同じ。安全にするのであれば制限を加えたほうがいい。

どうせ同じ変数に互換性がない型を入れたりしないので変数には型をもたせたほうがいい。
実行時にコードを柔軟に書き換える機能なんて持たせずに
継承とか多態とかそういう名前で制限される方法を使ったほうがいい。

こういう制限を持たせることで、その制限に反すること
(例 ローカル変数を触れない場所から書き換えようとすること)を
静的にチェックできるようになる。