はてなキーワード: jitとは
変数に型がないということの利点について考える
http://d.hatena.ne.jp/perlcodesample/touch/20130227/1361928810
が大変お粗末な内容だったので、反論記事を書きます。
型推論はソースコードのコンパイルの時間を遅くしてしまいます。ソースコードが大きくなってきた場合に、すばやく書いて、すばやく実行結果をもらうことができなくなります。
大規模開発環境はコンパイル時間よりリンク時間の方が問題になりやすいが、それは別に型の話とは関係ない。
あと、インタープリタも最近は実行時にJITコンパイラが走る。
実行時間に影響がなく、開発者の待ち時間で済む方が実はよいのでは?
統合開発環境での、メソッドの自動補完の機能の実装が少し難しくなります。
みんなが統合開発環境をつくるとでも?
そもそも型が不定なら補完することすらできないので、
比較対象として相応しくない。
変数に型がないとソースコードの変更に強くなります。たとえば右辺の返す型に変更があったとしても、受け取る側のソースコードを変更する必要はありません。
これは逆に危ない。
実行するまで意図したインスタンスが返ってこなくなった事実に気づかないから。
変数の型を持つ言語は、型が異なるのだが、処理としては同一の処理を行いたい場合には、オーバーロードという機能を使う必要があります。変数の型がなければ、オーバーロードの機能は必要ではなく、ただ単にif文で分岐すればよいだけなのでとても楽です。
CならVTable。Javaならinstanceofなど同等の事はできます。
というか、これ。型を意識しまくったコードじゃないですか???
C++のテンプレートのような複雑でデバッグしにくい機能を使ったりしなければなりません。
実は全然ちがうものが混ざってた!なんて事故がコンパイラによって止められる分、デバッグする必要すら無いんですけどね。
変数に型がないとどのような型の値が代入されているかわからないという批判があるかと思います。可読性の問題で