型についての議論のメモ

This entry was posted by on Wednesday, 16 January, 2008

http://mono.kmc.gr.jp/~yhara/d/?date=20080116#p01

Just for memo. This entry does not have any conclusions.

型推論してくれる言語の流儀について

>
  • 流儀は2つ。できるだけ型推論させて書かない派と、意味のあるところでは書く派 >
  • ML系言語では型は機械に推論させて任せ、必要がある場合を除いて書かないことが多い気がする >
  • Haskeller の多くは、モジュールが export するブツの型は明示的に書いている(そうでないのは書いたり書かなかったり)。推論できるから書かなくていいけど、書く >
  • なぜかというと、その方が読みやすいからだと前に nobsun が言ってた。Haskellerの総意かどうかは知らんけど個人的にも同意 >
  • そういえば OCaml でも、モジュールから明示的に export させたいときは型を書く (mliファイルのことね) >
  • ちなみに ocamlbrowser はモジュール名や関数名から型を知るツール。超便利。ないと OCaml では何も書けない >
  • Haddock (haskell のドキュメンテーションツール)でも、何はなくとも関数の型はわかるようになってる。これはかなり助かる
  • Ruby について

    >
  • 誰か言及してるか知らんけど ruby リファレンスマニュアル刷新計画では、メソッドの引数や返り値の型を記載している >
  • これについては特に論争にはならなかったと記憶している。やっぱりあった方が便利だと思うよ >
  • rdoc にそのようなノーテーションがあったかどうかは知らない。でも、あったとしても大して活用されていない印象
  • てことで、個人的な印象としては型情報はあると「助かる」。わかりやすい。一方、わかりやすさという点での、動的な言語からのありうる反論は、

    >
  • 型は完璧じゃない。どの粒度で分けるか? >
  • けっきょく詳しい説明は自然言語で書かないといけないから型はそんな重要じゃない >
  • ruby は to_s とかで適当に変換してくれるからいいんだよ >
  • 静的言語で int size って書くのと動的言語で単に size って書くののあいだに差はあるの?
  • さて?

    One Response to “型についての議論のメモ”

    1. ku-ma-me

      はじめまして。
      動的な言語は、型をなくすことで読みやすさを犠牲にするかわりに、書きやすさを上げているんだと私は思っています。だから「型がなくてわかりにくい」のは必然だと思います。
      ドキュメントは書きやすさより読みやすさが圧倒的に重要なので、型情報 (みたいなもの) を書くのは最適戦略に近そうです。
      余談ですが Haskell の場合は、読みやすさではなく最適化のために型を書くという人もいるようです。