新しいものを表示

ていうか、ガードレールのたとえが出たのでBさんが静的型付けがどう優れてるのか理解できそうな所まで来たのに、明後日の方向に進んでしまって超勿体無い・・・><

動的型付けの利点はあくまで「型検査を実行時まで先延ばしできる」事によるものであって、そうじゃない部分はそうじゃない・・・><

はっきりいって、ここまでの議論でBさんは動的型付けの利点を全く理解していないって断言できる・・・><
理解したうえで「動的型付けにも利点が」って言うならわかるけど><

「静的型付けがどう有利なのか?」「なぜ型を明示的に書く必要があるのか?」を理解していない人が型を設計しても、あんまり安全にはならない><
たとえば、曜日を管理するのに文字列型で管理するようなシステムにした場合には、曜日の誤りを型検査であらかじめ発見できない><
曜日を曜日型として設計し、それで管理するようにすれば、たとえば"炎曜日"みたいな意味不明曜日によるエラーは防ぐ事ができるし、静的型付けの環境であればそれを実行前に検査できる><

"「安全な」ガードレール"を超高速で設置できるシステムが、強い型システム><
そして、「ガードレールが変に繋がってないか? とか、ネジを止めるの忘れてないか? とか、位置がおかしくて道路ふさいで逆に事故の原因になるか?」みたいな事を
『実行前に検査するのが静的な型システム』で、
『調べず出発して走りながらガードレールがおかしいかを検査するのが動的な型システム』かも><

『ガードレールそのもの』では無く『ガードレールを構築するための仕組み』って理解してから
mstdn.nere9.help/@orange_in_sp
の
”単純に静的型システムの環境を使う『だけ』で防げる減らせる事は”
って話をもう一回読めばオレンジの"単純に..."の話の意図がわかるかも><
そして、なぜ静的型システムが必要で、そして強い型システムがなにに対して強力なのか? という話も理解できるかも><

ていうか><
型システムは『ガードレールそのもの』では無く『ガードレールを構築するための仕組み』である事に注意すべきかも><(超重要><)

orange さんがブースト

ガードレールがあるからといって安全というわけではない、それはそうだけど、ガードレールという製品が一般に安全を目的として作られており、正しく施工したらば世間一般で受け入れられる程度には安全装置として有効であろう、という期待があわけよね。

型検査も同じで、型システムという共通の理論的基盤が人々の目に晒され、実用コードでテストされているからこそ、万全でないにせよ「それなりに役立つし、役立たないシステムは低評価を受ける」という指標が発生する

これはほとんど規模のみの話といっていいかも><
その状況でUNIX shellが書きやすいのは単純に規模が小さく扱う情報が単純でドキュメントが少なくて済むだけで、OCamlは使った事無いけど、OCamlでもOCamlで構築された『UNIX shellでやりたかったことと同じ事』しかできない環境で同じ事をするのであれば、それほどは調べなければならない事は増えないかも><

らりおさんは型システムの議論慣れてるからそんな事は当然として話してるけど、型システムの議論慣れてない人はそこもなんのこっちゃらわからないわけで・・・><

ダックタイピングできるかどうかと動的型付けであるか静的型付けであるかは、厳密な話で言うと直接は関係ない><

オレンジが言いたい事としては、この議論をするなら、特に型システムの議論に慣れてない人がいる場合には、『動的静的の厳密な違いの話』( mstdn.nere9.help/@orange_in_sp mstdn.nere9.help/@orange_in_sp )と、『静的型な環境と動的型な環境それぞれの傾向の話』は厳密には違うって話もしてあげないと、混乱して可哀想かもって・・・><

たとえば、ある重さの数値があるとする><
ある人は「当然これはミリグラムうだろう」と思って100と指定した><
それを見た別の人は「当然ポンドだろう」と考えた><
これも各々にとって「当然そのとおりであること」かも><
でも、そんな事をしていたら事故が起こるので、実際には世の中では単位をつける事になってる><

orange さんがブースト

や、人間を思いっきり信用していいんだという世界観のコンピュータで実行する分には好きにすればいいと思うんだけど、私はその世界観で動くプログラムは使いたくないし書くつもりもない、そういう話

スレッドを表示
orange さんがブースト

個人的な印象の話をすると、静的型付きより動的型付きの方が良いとしている人が挙げがちなメリットが「当然そのとおりであることに、いちいち明示的に保証を書かずに済む」みたいな話に聞こえて、まあそれは「本当に保証するまでもなく成り立つならそうだろうけど……」という感想になってしまう。
人間ってそんなに信用できるか?

Bさん、これ読むといいかも><(雪だるまアイコンの人の話が参考になるはず><)
動的型言語のふわふわ感 - Togetter togetter.com/li/163331

ていうか、「型検査は何を検出し、何を排除できるのか?」は、一言で言うと「型の不整合を検出できる」かも><
「型の宣言や設計等が不適切である問題は、それは型検査によって検出できないではないか?」という疑問は正当で、それはその通り><
なので、単純に静的型システムの環境を使う『だけ』で防げる減らせる事は「実行時に起こる型の不整合による想定外の動作」だけとも言える><

orange さんがブースト

型が必ずしも仕様や意図を正確に表現できるわけではないが、常に誤っているわけでもないのだから、型で弾ける不整合を弾くことには実効性がある

スレッドを表示

mathtod.online/@cmplstofB/1059
"「静的型が厳密」っていう表現,違和感あるな……。"
これふたつの意味に取れる><
ひとつは、静的か動的の違いは「型検査をいつ行うか?」の話なので、『静的検査を行うけどゆるふわな型システム』の環境もあるし、『動的に型検査を行うけど型がガチガチな型システム』もあるので、静的型付け=ガチガチという事にはならない><
それは型システムが「強い」「弱い」という風に説明される事が多い方の話になる><

でもBさんが言いたいのはその話じゃ無さそう><

古いものを表示
:realtek:

思考の /dev/null