トップページ > プログラム > 2019年10月05日 > b9+wkgN8

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

3 位/199 ID中時間01234567891011121314151617181920212223Total
書き込み数00000000000000000020441011



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
次世代言語18 V Julia 他

書き込みレス一覧

次世代言語18 V Julia 他
248 :デフォルトの名無しさん[sage]:2019/10/05(土) 18:11:40.37 ID:b9+wkgN8
>>207
Cはキャストでどうにでもなるけどそれが全ての型がない言語を代表してるとでも
旧ObjectWorksだと何も困ることはなかったな
任意のインスタンスに存在しないメッセージ投げようとしても警告が出てセーブできないし
無理やりevalで実行時解釈させようとしてもエラートラップするだけで原因はすぐわかるようになってる
引数はいわゆるanyだがどのクラスに限定するのか記述することもできる(そうしたいのなら)

型で縛ってる言語は労力かかるわりに仕上がり悪いことが多いね
次世代言語18 V Julia 他
249 :デフォルトの名無しさん[sage]:2019/10/05(土) 18:18:15.93 ID:b9+wkgN8
そもそも型推論はコードの安全性を高めるのが目的というよりも
型が定まることにより最適化の恩恵を受けられるというのが本来の筋だと思うんだよな
次世代言語18 V Julia 他
255 :デフォルトの名無しさん[sage]:2019/10/05(土) 20:08:36.34 ID:b9+wkgN8
コンパイラにできることは型が正しいか検査することだけであって
正しい処理をしたかどうかなんて担保できないんだよね

型の辻褄は合わせました、ロジックは間違ってて要求仕様を満たしてません
こういうのを何度も見てると本末転倒とさえ思える
型に振り回されすぎて実際のコードがゴミになってる
これはいかんね
次世代言語18 V Julia 他
258 :デフォルトの名無しさん[sage]:2019/10/05(土) 20:19:05.31 ID:b9+wkgN8
>>256
少人数でも大人数でも動的なほうが問題起こしにくいよ
コード量も少なくて労力がかからないというのは利点しかない

機能追加にしても動的だと合わせやすいけれども静的型付けだと
どうしても綿密にやらないといけない割に不具合起こしやすくなる
強い型付けは想定されていなかったことに対して非常に弱い側面あるね
次世代言語18 V Julia 他
260 :デフォルトの名無しさん[sage]:2019/10/05(土) 20:32:05.04 ID:b9+wkgN8
個人的におかしいと思うのは
強い型付け言語の利点としてなぜかコードの安全性なるものが神話化してしまったことなんだね
それは全く担保できないことなんだけれども。

大きな利点があるとすればコンパイラがより最適化しやすくなる、ということだけだけど
HaskellなんかのUnboxed Valueがさっぱり早くないところを見ると疑問もある
次世代言語18 V Julia 他
261 :デフォルトの名無しさん[sage]:2019/10/05(土) 20:34:18.71 ID:b9+wkgN8
>>259
通らないコードはテストもされていないってことなんだよ
そこを心配するのはそもそもおかしいのだ

動的なエラートラップはすぐに原因がわかるのと対処も早いので進捗は早めになる
次世代言語18 V Julia 他
274 :デフォルトの名無しさん[sage]:2019/10/05(土) 21:37:33.45 ID:b9+wkgN8
>>269
それは現実離れした極論だね
修正が必要になるのはどの言語でも変わらないよ

テストコードが動かない場合、あるいはtest protocolが失敗するケースでは問題が起きてるから修正にはなるがそれだけだ
引数に全く違うオブジェクトが入ってきた場合の振る舞いはすぐにトラップするからわかるよ
全体修正なんてことにはならないしなったこともない
次世代言語18 V Julia 他
275 :デフォルトの名無しさん[sage]:2019/10/05(土) 21:39:22.95 ID:b9+wkgN8
>>272
メソッド名の変更は全体に適用できるので問題ないね
命名変更程度なら用意されてる
呼び出す方も全て変わる
次世代言語18 V Julia 他
276 :デフォルトの名無しさん[sage]:2019/10/05(土) 21:42:13.51 ID:b9+wkgN8
>>264
旧仕様のクラスのままで新仕様のクラスをテストする、ということが動的の場合はできるのだ
こう言ったことに限らずあらゆる局面で柔軟性が高いのは利点だよ
開発サイクルの速さはこういうことにもつながっている
次世代言語18 V Julia 他
278 :デフォルトの名無しさん[sage]:2019/10/05(土) 21:50:21.79 ID:b9+wkgN8
>>264
重要なことを書くのを忘れた
「型を追わなくていい」んだな
そこに注力する必要がなく、適切なprotocolと定義があるかを見ることが重要になる
型付け言語と動的の場合それぞれアプローチが変わってくる
次世代言語18 V Julia 他
283 :デフォルトの名無しさん[sage]:2019/10/05(土) 22:08:26.33 ID:b9+wkgN8
CLOSなんかでも総称関数で想定外のオブジェクトが渡されたら大変なことになるなんて言う人いないと思うが
最終的に呼ばれるはずだったslotが存在しないオブジェクトを扱おうとしていたら直ちにトラップか
コンパイルする処理系だと事前に警告だから

どこをどうやっても全体修正なんてことにはならない
強い型付けをしても想定通りに動かないコードが出来上がってしまうのは
すなわち型だけで安全性を高めることはできない証左とも言える

その理由の一つに一般的に型とは振る舞いを定義しているものではないからだ
型が合わなければ通さない、合っていれば通す、ただそれだけのことであって
通した後の処理まで面倒見ているわけじゃあない
本末転倒になっているのはこの部分だね


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