2013-02-27

型が無い事の利点とやらが全く的を射てない

変数に型がないということの利点について考える

http://d.hatena.ne.jp/perlcodesample/touch/20130227/1361928810

が大変お粗末な内容だったので、反論記事を書きます

型推論ソースコードコンパイル時間を遅くしてしまますソースコードが大きくなってきた場合に、すばやく書いて、すばやく実行結果をもらうことができなくなります

今時のパソコンならコンパイル時間なんて大したことない。

大規模開発環境コンパイル時間よりリンク時間の方が問題になりやすいが、それは別に型の話とは関係ない。

あと、インタープリタ最近は実行時にJITコンパイラが走る。

実行時間に影響がなく、開発者の待ち時間で済む方が実はよいのでは?

統合開発環境での、メソッド自動補完の機能の実装が少し難しくなります

みんなが統合開発環境をつくるとでも?

そもそも型が不定なら補完することすらできないので、

比較対象として相応しくない。

変数に型がないとソースコードの変更に強くなります。たとえば右辺の返す型に変更があったとしても、受け取る側のソースコードを変更する必要はありません。

これは逆に危ない。

実行するまで意図したインスタンスが返ってこなくなった事実に気づかないから。

コンパイル時に指摘してくれる方が安全

変数の型を持つ言語は、型が異なるのだが、処理としては同一の処理を行いたい場合には、オーバーロードという機能を使う必要があります変数の型がなければ、オーバーロード機能必要ではなく、ただ単にif文で分岐すればよいだけなのでとても楽です。

インターフェイスというもの勉強してください。

CならVTable。Javaならinstanceofなど同等の事はできます

というか、これ。型を意識しまくったコードじゃないですか???

C++テンプレートのような複雑でデバッグしにくい機能を使ったりしなければなりません。

とあるインスタンスしか入ってないつもりのリスト

実は全然ちがうものが混ざってた!なんて事故コンパイラによって止められる分、デバッグする必要すら無いんですけどね。

変数に型がないとどのような型の値が代入されているかからないという批判があるかと思います。可読性の問題で

変数に何が入ってるかわからないよりも、

インスタンスが何を持ってるのかわからない方が可読性に問題がある。

  • 動的型付けの最大の利点は、リストの値の型を制約しないことで柔軟なデータ構造が扱いやすいことだと思うんだけど、そこに触れていないことが一番残念だと思った

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん