以前、ちょっと話題になっていて、どうも私の理解とは異なる結論だったので気になっていた。コードの読みやすさは、どれだけ型推論に頼るかの問題であり、確かにその差は型システムの違いから生じるものではあるが、他のもっと本質的な問題を無視するのは問題ではないかと感じていた。まあ、でもそこまで強く主張したいとも考えていたので特にコメントはしなかったのだが、今日TAPLを読んでいたら言及があったので、やっぱり書いてみることにする。 「19 Case Study: Featherweight Java」の「19.3 Nominal and Structural Type Systems」のあたり。*1 まず、nominalな型システムとstructuralな型システムの定義から。TAPLでは、 subtypingに型の名前が重要な役割を果たすのがnominalな型システム subtypingが型の構造から