オレンジが言いたい事としては、この議論をするなら、特に型システムの議論に慣れてない人がいる場合には、『動的静的の厳密な違いの話』( https://mstdn.nere9.help/@orange_in_space/105989721643608005 https://mstdn.nere9.help/@orange_in_space/105989751027039873 )と、『静的型な環境と動的型な環境それぞれの傾向の話』は厳密には違うって話もしてあげないと、混乱して可哀想かもって・・・><
や、人間を思いっきり信用していいんだという世界観のコンピュータで実行する分には好きにすればいいと思うんだけど、私はその世界観で動くプログラムは使いたくないし書くつもりもない、そういう話
Bさん、これ読むといいかも><(雪だるまアイコンの人の話が参考になるはず><)
動的型言語のふわふわ感 - Togetter https://togetter.com/li/163331
https://mathtod.online/@cmplstofB/105989698098192096
"「静的型が厳密」っていう表現,違和感あるな……。"
これふたつの意味に取れる><
ひとつは、静的か動的の違いは「型検査をいつ行うか?」の話なので、『静的検査を行うけどゆるふわな型システム』の環境もあるし、『動的に型検査を行うけど型がガチガチな型システム』もあるので、静的型付け=ガチガチという事にはならない><
それは型システムが「強い」「弱い」という風に説明される事が多い方の話になる><
でもBさんが言いたいのはその話じゃ無さそう><
静的型が、コードの品質を高める方法として本当に優れたものだと言えるのでしょうか? CやC++の歴史に引きずられているだけということはないですか?に対するJunji Ueharaさんの回答 - Quora
https://jp.quora.com/%E9%9D%99%E7%9A%84%E5%9E%8B%E3%81%8C-%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%93%81%E8%B3%AA%E3%82%92%E9%AB%98%E3%82%81%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%A8%E3%81%97%E3%81%A6%E6%9C%AC%E5%BD%93%E3%81%AB%E5%84%AA/answers/146867282
これとか雑な喩えだけど結構納得感はあるわね
その契約が遵守されていることの確認を自動化できるところが静的解析の価値であって、「検査をちゃんと書けば信頼できる」というのはそれ自体真実ではあるが、静的型付けと動的型付けの比較の文脈では有意義とはいえないような
> 動的データ型言語を使いながら、静的データ型言語以上に信頼性が高いプログラムを書く手法は80年代には確立しています
> 動的データ型言語でも信頼性が高く、セキュアなコードが必要とされる場合は契約による設計/契約プログラミングを利用すれば可能
https://qr.ae/pG88t5
マジか。UNIX shellで活用したいな。