トップページ > プログラム > 2014年11月30日 > /BRxH/wW

書き込み順位&時間帯一覧

7 位/260 ID中時間01234567891011121314151617181920212223Total
書き込み数00000000001000011011311313



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
動的言語で大規模開発

書き込みレス一覧

動的言語で大規模開発
531 :デフォルトの名無しさん[sage]:2014/11/30(日) 10:46:49.86 ID:/BRxH/wW
>>529
もうちょっと汎用的なメソッドを定義する場合、MyClassみたいな具象型よりも
Interfaceや型クラスを指定することが多いね
それで必要なだけの汎用性と静的型を両立できる
動的言語で大規模開発
539 :デフォルトの名無しさん[sage]:2014/11/30(日) 15:35:01.93 ID:/BRxH/wW
REPLとかで「このオブジェクトって何ができるんだっけ?」って調べるのは
動的言語では典型的な開発手法で、恩恵に預かってる開発者は多いと思うけど
静的型の補完も一緒だよ
単純にタイプ数をちょっと減らすとか、そういう話じゃない
動的言語で大規模開発
544 :デフォルトの名無しさん[sage]:2014/11/30(日) 16:33:33.88 ID:/BRxH/wW
>>543
静的型と動的型で同じ「Rename method」というリファクタリング機能をサポートしていると言っても、
動的型のそれは http.connect のメソッド名を変更したら
無関係な db.connect のメソッド名も変わってしまうような代物だろう
動的言語で大規模開発
565 :デフォルトの名無しさん[sage]:2014/11/30(日) 18:44:16.77 ID:/BRxH/wW
function foo(a) {
    a.bar()
}

bar() を呼び出せるなら何でも foo の引数に入れられるのが
ダックタイピングというのはどうだろうか
このスレだけでも
動的言語で大規模開発
568 :デフォルトの名無しさん[sage]:2014/11/30(日) 19:32:01.35 ID:/BRxH/wW
>>566
ただし、継承関係や共通のインターフェースを持たなくても
bar() を呼び出せるなら foo に入れられなくてはならない
動的言語で大規模開発
587 :デフォルトの名無しさん[sage]:2014/11/30(日) 20:30:01.03 ID:/BRxH/wW
>>581
Interfaceも構造的部分型も実行時に動的に分岐する
そうでなければポリモーフィズムとは言わない

さらに言えば、構造的部分型は「アヒルというクラス」に対して分類してるわけでもない
動的言語で大規模開発
593 :デフォルトの名無しさん[sage]:2014/11/30(日) 20:40:02.67 ID:/BRxH/wW
>>590
実行時にvalidationするのがダックタイピングというなら
構造的部分型は確かに違うな


"If it walks like a duck and quacks like a duck, it must be a duck"

という文章からそのような意味を読み取るのは無理だが
動的言語で大規模開発
596 :デフォルトの名無しさん[sage]:2014/11/30(日) 20:43:21.18 ID:/BRxH/wW
>>592
Haskellの型クラス、Rustのトレイト等が
それらの問題点を解決している
動的言語で大規模開発
603 :デフォルトの名無しさん[sage]:2014/11/30(日) 21:05:38.46 ID:/BRxH/wW
>>597
静的型でも振る舞うのは実行時だろ
チェック自体はコンパイル時だが

で、どこに実行時にチェックすると書いてある?
動的言語で大規模開発
618 :デフォルトの名無しさん[sage]:2014/11/30(日) 22:55:36.39 ID:/BRxH/wW
>>615
> 両者の間に直接的な関連性は無い(言い換えるとスレチな話題)

スレの主題に沿っているのは補完や型チェックの方だけど
動的言語で大規模開発
624 :デフォルトの名無しさん[sage]:2014/11/30(日) 23:22:20.73 ID:/BRxH/wW
>>621
そうか。じゃあスレ違いの話は止めないと荒らしになってしまうな
動的言語で大規模開発
629 :デフォルトの名無しさん[sage]:2014/11/30(日) 23:44:44.78 ID:/BRxH/wW
>>616
http://neopythonic.blogspot.jp/2008/10/why-explicit-self-has-to-stay.html

・ただの関数を、後からクラスにメソッドとして後付けできること(そのとき暗黙のselfの扱い)
・decoratorがあるから(動的にstatic methodやclass methodに変更できる)

というのが理由だそうだ
動的言語で大規模開発
633 :デフォルトの名無しさん[sage]:2014/11/30(日) 23:53:34.74 ID:/BRxH/wW
言語だけでいうならRustに期待しているんだが……


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。