「型を付けないほうが自由?」抽象化と型の関係について

型モヒカンは今日も戦う 読みやすさのため順番を少し前後させています。
6
m2ym @m2ym

@its_out_of_tune はい、そういうことです。 Lens や Eff も一つの解決策になり得ると思いますが、状態の一貫性とおモジュール性に関する問題は残っているように思います。

2014-12-09 03:36:12
ちゅーん @its_out_of_tune

@m2ym 時に、型付けによる深刻のバグや設計上のミスというのがどうにも想像できなかったのですが、具体的にどういうものだか教えて頂いて良いですか?

2014-12-09 03:22:01
m2ym @m2ym

@its_out_of_tune そこは若干言葉のあやがありました。静的に型付けされているならそれに越したことはありませんが、それより抽象度の低いまずい設計の方で痛手を被ることが多いということです。

2014-12-09 03:29:56
m2ym @m2ym

@its_out_of_tune 特にクライアントサイドの開発においてこれは顕著だと思います。 DOM の更新を手動で行なうのは、いかに型が付いていても、やっかいですしバグの温床になりやすいです

2014-12-09 03:31:47
ちゅーん @its_out_of_tune

@m2ym 「DOMの更新を手動で行う」のは、「まずい設計」の一例ってことですね・・・。DOM操作ってまさに状態管理なので、確かにややこしい部分な気がします。それこそ上手くラップした上で型付けしないと痛い目見そうですね。

2014-12-09 03:33:27
m2ym @m2ym

@its_out_of_tune そうですね。その着想をもっと広く適用できるだろう考えているわけです。

2014-12-09 03:37:37
ちゅーん @its_out_of_tune

@m2ym 動的型付けならば・・・という意味ですよね?

2014-12-09 03:38:28
m2ym @m2ym

@its_out_of_tune いえ、静的型付きプログラミング言語でも場合によっては可能だと思います。ただし、型システムが許す範囲内で、という条件が付きます。個人的にはそのオーバーヘッドを許容できませんし、型が付くからといって抽象化が楽になった、という経験もありません。

2014-12-09 03:47:18
ちゅーん @its_out_of_tune

@m2ym あ、「動的型付けならば制約が無いから楽にラップできるという事か」という意味でした。ので概ね理解できたと思います。 確かに、これはヒューマン・リソースでどうにかしなくちゃいけない話ですし、難しいですね・・・。 全体通して、仰りたい事がわかりました。ありがとうございます。

2014-12-09 03:51:20
m2ym @m2ym

@its_out_of_tune いえ、こちらこそ言葉足らずゆえに夜遅くまで突き合わせてしまい申し訳ありません。

2014-12-09 03:53:18
ちゅーん @its_out_of_tune

思いがけず面白い話が出来た。

2014-12-09 03:52:09
ちゅーん @its_out_of_tune

マサカリは投げるものである(やかましい

2014-12-09 03:52:28
ちゅーん @its_out_of_tune

結局、「抽象化」の道具として型システムを使う場合は、圏論的/代数的な背景が必要だしその範囲に留まる話で、その上でよりドメインに近い領域では、型システムによる制約がオーバーヘッドになりそれが我慢ならんという考え方もあるっちゃあるのか、とゆー感じ。

2014-12-09 04:01:06
ちゅーん @its_out_of_tune

それでも型システムはあったほうが良いやん?ってなるのは、そもそもちゅーんさんの脳みそが型システム無しじゃドメインを分析できないレベルでぽんこつだからって話なのかもしれない。

2014-12-09 04:02:01
m2ym @m2ym

型システムはカリーハワード対応的には論理体系みたいなものですから、それはあった方がいいと思います。しかし人間には本来そなわった論理体系と直観があるので、必ずしも必要とは思いません。と、エアリプ。

2014-12-09 04:05:37
m2ym @m2ym

必要に応じて自分の脳の論理体系を単純化・拡張すればよいと思いました。もっと言うと、正しさの根拠は自然かどうかですから、根本的には自分の直観に頼る以外に方法はないと思います。

2014-12-09 04:07:39
ちゅーん @its_out_of_tune

うーん、ただまぁ、やっぱこれはある程度は脳みそのリソースが大きくないとキツイのだよね、型システムはそれを形にするための補助みたいな役割があって、少なくともそれに支えられないと安全に構築するのが難しいというか・・・

2014-12-09 04:13:05
m2ym @m2ym

なんだか理解が進んだぞ。有益な時間だった

2014-12-09 04:14:37
ちゅーん @its_out_of_tune

@m2ym あっ、今日の後半の会話楽しかったので、ちょっとTogetterあたりに纏めたいのですが、大丈夫ですか?

2014-12-09 04:19:52
m2ym @m2ym

@its_out_of_tune どうぞ。こちらとしても大変有難いです。

2014-12-09 04:21:19

こっちはちゅーんさんが関わった部分を読みやすくまとめた話でつ。
m2ymさんはより広いレンジで議論されてるのでこっちをどうぞ

まとめ 状態、型、抽象化についていろいろ とりあえず。まとめ。誰でも編集可、編集自由にしますので、是非、適当に追加してください。 19003 pv 81 71 users 3