型有りと型無し

何かを理解した。


昨日も書いたとおり、型無し言語の気持ち悪い点は、「変更必要な箇所が全部修正されたかどうだがわかんない」っていう点だった。
だけど、この点は、「経験を積むことによって克服できんじゃないのか?」っていうのはどうだろうか。
それは、つまり、「単体テストの書き方」だとか、「単体テストを作るタイミングと量」だとか、「将来の変更にもぐにょぐにょできる柔軟性の高いコードの書き方」とか。だ。
こういう部分は、多分、経験によって、鍛えることができる。


で、だ。型有り言語、型無し言語の長所短所を大雑把に並べたら、


有り

  • エラーの多くがコンパイルエラーではじける
  • タイプ量が多い


無し

  • 柔軟性が高い
  • タイプ量が少ない
  • エラーがわかんない


と、いった感じだろう。ここで、上の考察が正しかったとしたら、型無し言語の「エラーがわかんない」っていう部分は、経験によって、克服できるっていうことじゃないか?
あー、いや、よくわからんけど、つまり


型有り言語のメリットデメリットは、経験にはあまり左右されないけど、型無し言語のデメリットは経験によってある程度克服できる。


と、いうような考えかたはどうなんだろうか。っていう話だ。もし、そうならば、「型無し言語はなんかうまく説明できないけど良いんだよ」と、言ってるような人達のことが理解できるような気がしてくる。よーするに、そういう人達は、デメリットを克服できるくらいにまで経験を積んだので、メリットだけを享受できてウッハウッハなわけなんだ。多分。
僕は、まだその境地には至ってないし、今後も至る予定はないので、結論は出せないけど、「型無し言語は経験によって成長できる部分が多い」っていう考え方は悪くないような気がする。