動的型言語のふわふわ感

38
前へ 1 ・・ 3 4 次へ
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣 @tomooda

code writingだけでなく、sustainable softwareへの静的言語と動的言語のアプローチを考えてみるのも楽しそう。ツ RT @kazu_yamamoto: .@tomooda ソースコードがすべて手に入るプロジェクトでは、ダメな部分は書き直せばいいのでは?

2011-07-19 12:33:58
pokarim @pokarim

@kazu_yamamoto @keigoi 動的型が何かを与えてくれるという感覚はないです。静的型付け言語では、型推論があってもなにかと型を記述したり型を強く意識したりする必要があって、それが割にあう場合とそうでない場合があるかなという感じです。

2011-07-19 12:34:03
Keigo Imai @keigoi

@kazu_yamamoto なるほど。 HaskellやOCamlを使っている人の一部はRubyistも便利だからと使っていたりしますし、そういう人の意見は僕もすごく気になっています。単にライブラリや記法の問題なのか、それとも。

2011-07-19 12:35:33
pokarim @pokarim

@kazu_yamamoto @keigoi 仰る事はよくわかります。問題なのは、型システムだけでセキュリティーを担保することもかなり難しい問題だと言う事です。JavascriptやRDBMS、CSS、HTML、Flashなど外部のシステムとの関連が多いのも関係あると思います。

2011-07-19 12:35:52
山本和彦 @kazu_yamamoto

.@keigoi @pokarim Haskell にも契約は欲しいです。たとえば > 10 な Int という型を作るのは非現実的なので。SPJ は、すでに考え始めているそうです。

2011-07-19 12:37:14
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣 @tomooda

自分的には、文法を変更しないとメタプログラミングとは呼ばないですね。メソッド追加は単なる語彙の拡張で、文法の拡張ではないと思います。 RT @kazu_yamamoto: 単なる質問: 動的にメソッドを増やすというのは、メタプログラミングの領域ですか?

2011-07-19 12:38:53
山本和彦 @kazu_yamamoto

.@pokarim @keigoi シグニチャはコンパイラーに推論させて挿入さすればいいですし、型の整合性をとることは訓練した後には負担になりません。訓練したくないというのなら分かります。。。

2011-07-19 12:40:05
pokarim @pokarim

@kazu_yamamoto @keigoi ちょっと視点を変えてみます。スクリプト言語では、データや設定ファイルとソースコードの区別が曖昧です。ちょっとしたアプリでは対したロジックは書かないので、XMLでも書けるような設定データやHTMLテンプレートばかりかもしれません。

2011-07-19 12:40:17
山本和彦 @kazu_yamamoto

.@khibino @pokarim @keigoi うーん。僕の感覚では、テストをコンパイラーにさせるのか、自分でするのかの違いです。どちらも同じことをやっており、ランクは違わない気がします。

2011-07-19 12:42:34
pokarim @pokarim

@kazu_yamamoto @keigoi 自分に関してはいくらでも訓練しようと思いますが、その訓練が割にあうかどうかは人によるんじゃないでしょうか。そもそもスクリプト言語を勉強する事すら割に会わない人もいます。Excelにも静的型付けが必要だと思いますか?

2011-07-19 12:43:45
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣 @tomooda

動的型言語のふわふわ感を実現するための、使用語彙の凝集や各処理での間口を広げる努力、ってのは動的型言語のコストであり財産でもありますね。 RT @tkamiya: 「動的型の言語ってふわふわしててイヤ」というのもよくわかるんだよなあ。静的型と動的型では責任の在り処が違う、…

2011-07-19 12:44:24
山本和彦 @kazu_yamamoto

.@tomooda DSL を作らないとメタプログラミングしたことにならないと言う意味?

2011-07-19 12:44:25
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣 @tomooda

ドメインに特化するかどうかは別にして、文法そのものを扱わなければメタプログラミングとは思いませんね。 RT @kazu_yamamoto: DSL を作らないとメタプログラミングしたことにならないと言う意味?

2011-07-19 12:46:22
山本和彦 @kazu_yamamoto

.@pokarim @keigoi なぜ XML の例を出されたのか分かりました。後でたくさんテストをすることにならないなら、動的の方が割がいいかもしれませんね。

2011-07-19 12:46:38
山本和彦 @kazu_yamamoto

やはり、プログラマーという言葉で一括りにしてしまうのが問題か。。。こういったプログラマーには動的型付け、こうったプログラマーには静的型付けという風に言わないと、議論が発散してしまうのか?

2011-07-19 12:49:02
山本和彦 @kazu_yamamoto

.@tomooda たとえば、Rails はどう表現すべきものですか?

2011-07-19 12:49:40
山本和彦 @kazu_yamamoto

僕のメタプログラミングの定義は、だいたいこれと同じ。 http://t.co/DGW0unJ

2011-07-19 12:51:12
pokarim @pokarim

@kazu_yamamoto それはその通りだと思います。

2011-07-19 12:53:27
pokarim @pokarim

@bonotake 基本的にはそうだと思います。トレードオフ、割にあうかあわないか、という側面があることを考えれば、今後型システムが進化することでその線引きが変わる可能性もあると思います。

2011-07-19 12:55:15
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣 @tomooda

私はあれはリフレクションと呼びますね。LISPのマクロの場合は、S式の解釈を変更しているのでメタプログラミングだと思います。 RT @kazu_yamamoto: たとえば、Rails はどう表現すべきものですか?

2011-07-19 12:56:14
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣 @tomooda

ちなみに私は「ユーザーもプログラマーだ」派です。 RT @kazu_yamamoto: やはり、プログラマーという言葉で一括りにしてしまうのが問題か。。。こういったプログラマーには動的型付け、こうったプログラマーには静的型付けという風に言わないと、議論が発散してしまうのか?

2011-07-19 12:58:19
Ikegami Daisuke @ikegami__

ぼくの経験だと、Ruby で Type Error しょっちゅう遭遇しますけど、へぼ Ruby プログラマだからかな

2011-07-19 13:02:30
⍨ ナロち @tos_kamiya

単体テストがドキュメント並に重要だったりしますよね QT @tomooda 動的型言語のふわふわ感を実現するための、使用語彙の凝集や各処理での間口を広げる努力、ってのは動的型言語のコストであり財産でもありますね。 RT @tkamiya: 「動的型の言語ってふわふわしてて…

2011-07-19 13:04:26
⍨ ナロち @tos_kamiya

型推論を行う言語がメインストリームになるんでしょうね RT @takuchan でも動的型の言語が許されるのはハードが十分に高速化したからだよな。これはマルチコア化で状況が変わるはず。そしてまた単一コアで高速なコンピュータが出てくるまではさようなら。

2011-07-19 13:13:52
pokarim @pokarim

@kazu_yamamoto @keigoi たとえば、外部からの入力値によって実行時エラーがでたりでなかったりするような場合(依存型もある型システム的のチェックではエラー)、とりあえず実行して入力値をいれて試してみる、ということはできたらうれしいときもあるかもしれません。

2011-07-19 13:23:49
前へ 1 ・・ 3 4 次へ