新しいものを表示

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

オレンジが言いたい事としては、この議論をするなら、特に型システムの議論に慣れてない人がいる場合には、『動的静的の厳密な違いの話』( 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さんが言いたいのはその話じゃ無さそう><

あと、静的型付け かつ 安全優先で型を明示的に書く事を好む人は冗長であろうとも明示的に書こうとする人が多いわけで、静的 vs 動的の話も、動的型付け好きな人は、ふわっとした感じの話で短く意見を書くけど、静的型付け好きな人は冗長になろうともより厳密な話に出来るように書くので、文章も長くなるし書く機会も増えて「静的型付け好きな人って型システムの話ばっかり長々してる!!!」ってなるのも当然かもだしこの文章もそんな感じにメタな事になっている><

ようはガッチリした厳密さを求める人が静的型付けを好むわけで、静的型付けと動的型付けの長所短所の話も同様にガッチリと目的のコードを書く前にはっきりさせたがるのは当然><

これ、とてもメタで、静的型検査ってつまり「誤りは出来うる限り実行前に検出され排除されるべき」なわけで、動的型付けの発想が誤ってるのであれば、当然のように動的型付けによる被害を避けるためにその誤りを指摘し排除する行動するのは当たり前かも><
一方で動的型付けは「とりあえず動かしてみたらいいじゃん」なわけで、型システムの問題に対しても静的型付け好きな人ほどは積極的な意見表明をしないのも当然かも><

orange さんがブースト

静的型が、コードの品質を高める方法として本当に優れたものだと言えるのでしょうか? CやC++の歴史に引きずられているだけということはないですか?に対するJunji Ueharaさんの回答 - Quora
jp.quora.com/%E9%9D%99%E7%9A%8

これとか雑な喩えだけど結構納得感はあるわね

ていうか、動的と静的の違いはつまり実行前に行うか、実行時に行うかの違いなので、たとえば「動的環境でも、主目的のコードを一切動かす前に全て型検査するコードを確実に走らせれば検査できるよ!」とか言い出したら、「それ、静的検査の再発明じゃん・・・><」だよね感><

orange さんがブースト

その契約が遵守されていることの確認を自動化できるところが静的解析の価値であって、「検査をちゃんと書けば信頼できる」というのはそれ自体真実ではあるが、静的型付けと動的型付けの比較の文脈では有意義とはいえないような

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

> 動的データ型言語を使いながら、静的データ型言語以上に信頼性が高いプログラムを書く手法は80年代には確立しています
> 動的データ型言語でも信頼性が高く、セキュアなコードが必要とされる場合は契約による設計/契約プログラミングを利用すれば可能
qr.ae/pG88t5

マジか。UNIX shellで活用したいな。

試すまでも無いかもだけどわざわざWPFでも試してみたけど、ちゃんと対応してた><

スレッドを表示

ていうか、XBUTTON1とXBUTTON2に対応すれば戻ると進むを自分のWindowsアプリにシステム標準的な設定で対応できるわけだから、Windowsアプリつくる時は忘れないようにするといいよね感・・・><

Windowsで5ボタン対応が忘れ去られがちなのの同じく、AndroidでもそこらのAndroid端末に無かったりキーボードにも用意されてないようなボタンにちゃんと対応してるアプリと対応してないアプリがあるの、せっかく開発環境でのエミュレータでハードウェア持って無くても試せるのになんだかな感><

古いものを表示
:realtek:

思考の /dev/null