gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

「型」があるのは福音だよ?

ん…マシン語(ニーモニック)でコード書いていて、そこからC言語に行った時に「すげぇ型ってのがあるんだこいつぁなんて便利なんだ!!」って思った人間からすると、色々とアレがナニでございました。
的な、とっしょりの戯言w


元ネタはこちら。
変数に型がないということの利点について考える
http://d.hatena.ne.jp/perlcodesample/20130227/1361928810

どのような型の値でも代入できる

そもそも最近「破壊的代入」について思案しちゃうような状況だからなぁ。
初手の代入であれば。「適切な宣言さえしておけば」、別にCだってC++だって「どのような型でも代入できる」よ?w
どっちかってぇとこれは「適切な宣言をしたくない」んだよね。なんで?

記述量がとても短くなる

短くなると間違いが混ざるからねぇ。
「短くなる」について、必ずしもそれが「肯定的な意味」だとは思えない。

変数に型がないと変更に強い

ダウト。
局所的には「楽」かもしれないけど、それは高確率で「全体の整合性」を破壊する。

関数のオーバーロードが不要になる
-中略-
変数の型がなければ、オーバーロードの機能は必要ではなく、ただ単にif文で分岐すればよいだけなのでとても楽です。

いやむしろその「ifでの分岐」とかしたくねぇからオーバーロードがあったほうが有難いのだが orz

複数の型を受け取りたいときに、インターフェースを実装する必要がない

おんなじ基底クラスなら受け取れるよ? by C++

C++のテンプレートのような機能も必要がない
関数の引数が配列を受け取る場合を考えてみてください。そして、配列に含まれている変数の型が、定まっていない場合を考えます。また配列自体が、普通の配列なのか、動的配列なのか、特殊なリストなのかということがわからない場合についても考えてみてください。変数に型があると、このようなたくさんのことを個別に考えて、うまくインターフェースを実装したり、C++のテンプレートのような複雑でデバッグしにくい機能を使ったりしなければなりません。

ぶも?
それは「型」とか「機能」とかじゃなくて、設計が悪いだけじゃない?

変数に型がないとどのような型の値が代入されているかわからないという批判に答える

そんな批判あるの?
そんな批判はおいちゃんはしないから、面倒だしここは割愛。

変数に型がないことのメリットは重複を少なくソースコードがかけること

コレもダウト。
「変数に型がない」と「重複を少なくソースコードがかけること」との間には、なんの関係性もない。


んで、こちら。
「変数に型がないということの利点について考える」の問題について考える
http://bleis-tift.hatenablog.com/entry/2013/02/28/%E3%80%8C%E5%A4%89%E6%95%B0%E3%81%AB%E5%9E%8B%E3%81%8C%E3%81%AA%E3%81%84%E3%81%A8%E3%81%84%E3%81%86%E3%81%93%E3%81%A8%E3%81%AE%E5%88%A9%E7%82%B9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E8%80%83%E3%81%88

その「変更の強さ」は「バグの埋め込みやすさ」に直結している

うん割とこの一言に尽きると思う。


おいちゃん的にはむしろ。
オプションでいいから「PHPにも、静的でハードな型付け」の概念を入れて欲しいなぁ、って思う(苦笑