自由といえば聞こえはいいけど、その自由には責任が伴うという感じ。そんなめんどくさい言語は極力回避というのが自分の正直なところ
2011-07-19 11:53:33いわゆるLLの使いやすさに学ぶところは多いけれど、不要な自由度のために静的型を犠牲にしている部分もあるのではないか、逆に静的型でその使いやすさを得るためにはどうしたらよいのか、まじめにかんがえたほうがよさそうだ
2011-07-19 11:59:13逆で、関係する全てのコードを掌握なんて出来っこない(未来はわからない)から、自由度を担保しておきたい。 RT @kazu_yamamoto: 動的が好きという背景には、関係するすべてのコードは掌握できるという自信があるの?
2011-07-19 12:01:15.@keigoi 動的型付けでないと「こういうことがやりにく」というよい例をあまり聞きません。誰か分かり易くまとめてくれませんかね。
2011-07-19 12:02:15「動的型の言語ってふわふわしててイヤ」というのもよくわかるんだよなあ。静的型と動的型では責任の在り処が違う、というのに気づくまではそう思ってたし
2011-07-19 12:05:18@kazu_yamamoto Rubyのライブラリの設計なんかはたぶん静的型ではつらい部分もあると思うのですが、もてはやされている分、なにか良い側面が必ずあるはずで、参考になる気がしています。...←思う、気がする、とまったくの当て推量ですが
2011-07-19 12:09:23.@keigoi 動的型付けがよいと言っている人の多くは、C への反動で、Haskell とかは知らないことが多いです。どちらもよく分かっていて、しかも動的型付けがよいという人の意見に耳を傾けたいなと思っています。
2011-07-19 12:12:01@terurou たしかに。メインストリームの静的型付け言語がインタプリタ実行できていればもっと別の世界が待っているような気もします。 F#やHaskellはできますが
2011-07-19 12:13:49コンパイルしなくても動くのがいい(Haskell の GHC でもできるよ)、とりあえず動かしながらデバッグしたい(型エラーを起こさないようなプログラミングをする習慣を付けた方がよくない?)とか、とか。。。
2011-07-19 12:14:06若気の至りで書いたライブラリーを書き直そうか迷っている。動的型付けで書いていたら、書き直さなくて済んだとは思えない。。。
2011-07-19 12:16:14むしろ、ソースコードやライブラリを外に出さない、いわゆる自製社内システムとかのほうが静的型言語を使いやすい。型やインターフェイスは一旦外に出しちゃったら「書き替えるから」では済まないよね。 RT @kazu_yamamoto: ソースコードがすべて手に入るプロジェクトでは
2011-07-19 12:17:55@kazu_yamamoto @keigoi まだ考え中なので思いつきベースですが、たとえば型推論に失敗したら、その部分は、とりあえず動的型付け的に実行してまう(もちろん実行時エラーはでるかもしれない)というようなことって考えられないでしょうか?
2011-07-19 12:23:56.@pokarim @keigoi 理屈としてはアリなんですが、僕が知りたいのは、その言語ではどういう問題が解きやすいのか、です。
2011-07-19 12:25:37@kazu_yamamoto @keigoi あと、たとえば依存型がなかったり一部でしか使われていなければ、当然ですが型チェックによってすべてのプログラムの不整合をはじけるわけではないですよね。だからなんだというわけではないですが。
2011-07-19 12:27:04@pokarim @kazu_yamamoto 関係あるかどうかわかりませんがプログラムに部分的に型をつけるgradual typingという研究があります。 http://t.co/0TP1VBS
2011-07-19 12:27:40@kazu_yamamoto @keigoi どういう問題が解き易いか、というのもありますが、どのように問題を解くか、ということもあると思います。
2011-07-19 12:28:16あるあるツ その点、PythonやSmalltalkは保守的すぎやしないかと思ったりもする。たぶんこの辺は言語というより社会の問題だね。 RT @kazu_yamamoto: しかし、動的なのに仕様がコロコロ変わる言語は、一体何なのかね?。。。
2011-07-19 12:28:48.@pokarim @keigoi 僕が静的言語を好きなのは、コンパイラーがたくさんの間違いを見付けてくれるからです。もちろん見付けてくれない間違いもあります。逆に動的言語は、それを犠牲にして何を与えてくれるのか知りたいです。
2011-07-19 12:29:22@kazu_yamamoto @keigoi 自分の感覚ですが、仕事でちょっとしたWebアプリを実装するときは静的型チェックの必要性をそれほど感じません。リアクティブDBの実装をしているときには無いと困ります。
2011-07-19 12:32:27@pokarim @kazu_yamamoto 五十嵐先生が今年のPPLで発表されていた依存型の型システムでは、契約(contract)の違反がコンパイル時に検出できない部分は実行時に判定しているようでした(うろ覚えです)。 http://t.co/wqxpHqT (PDF)
2011-07-19 12:32:44