DSL の話題 "デファクトスタンダードの支配が盤石に見えるのは、イノベーションがおこる直前だからかもしれませんよね。"

3
pokarim @pokarim

「名前」がナチュラルキーだからですね。わかります。 RT @mitukiii: プログラマなら分かってくれると思うんですけど、名前を付けるってのはとても労力を使うことですし、一度決めたそれを変えるのは更にエネルギーが要る、と

2011-07-18 09:58:28
pokarim @pokarim

名前というナチュラルキーを使うから変更のコストが増える。サロゲートキーを用意しておければ名前の変更時にIDEが無駄にがんばる必要もなくなる。そのうちそうなる。

2011-07-18 10:19:42
Keigo Imai @keigoi

@pokarim サロゲートキーをIDEが無駄にがんばって管理する必要が出てくるような気もします。

2011-07-18 10:22:45
pokarim @pokarim

@keigoi 管理する手間は一面的には増えると思います。RDBの正規化にも手間を増やす側面はあってそれと同じだと思います。正攻法でやれば全体としては割にあうはずです。ただ色々なものを整備しなおす必要がでるので一足飛びには行かないだろうとも思います。

2011-07-18 10:54:33
Keigo Imai @keigoi

@pokarim もはやプログラミングの「言語」ではなくほかの何かという感じですね。面白そうではあります。

2011-07-18 11:07:19
pokarim @pokarim

@keigoi そうですね。Excel、RDBMS、Smalltalkなど、環境がセットでアプリなのかプログラミング環境なのか曖昧なものは既にあってそんな感じでしょうか。隠蔽されていれば裏でどう管理しているかをユーザが意識する必要はなくなるでしょうね。

2011-07-18 11:18:48
pokarim @pokarim

@keigoi Google App EngineとGitHubとEclipseが一体になっていたら、名前の変更のときに何が裏でおこるかユーザが意識する必要はないでしょうね。プレーンテキストと粗結合が良いかパッケージされたものが良いかはドメインや抽象度にも依ると思います。

2011-07-18 11:25:55
Keigo Imai @keigoi

@pokarim おもしろいですね>Google App EngineとGitHubとEclipseが一体になっていたら ただ、ドメインや抽象度に特化すればするほどユーザーは少なくなるはずで、コストに見合わなくなるような気がしています。流用できる汎用的な基盤があればいいのかも

2011-07-18 11:35:19
pokarim @pokarim

@keigoi 汎用言語に比べれば、表計算ソフトは相当ニッチなDSLだと思いますが、ユーザーは十分確保できています。MS AccessのようなDBアプリのユーザ数はそれより控えめですが。ドメインとモデル、抽象度を適切に選択して組み合わせれば、元はとれると考えています。

2011-07-18 12:03:42
pokarim @pokarim

DSLを考える時ドメインが絞られれば絞られるほどユーザ数は減っていくと考えがちだが、表計算ソフト、SQL、PHPを見ればわかるように話はそんなに単純ではない。そのドメインに需要があるのは前提として、大切なのは、それを習得して使うことがコスト的に割が合うかどうかだ。

2011-07-18 12:12:09
Keigo Imai @keigoi

@pokarim ほかに具体的にどういうドメインがあるでしょうか? ちょっと方向性は異なりますが、MacのQuarts Composer(スクリーンセーバーのデザイン) や Yahoo Pipes(Webアグリゲータ) は言語から離れていて面白いと思っています。

2011-07-18 12:15:00
Keigo Imai @keigoi

@pokarim 表計算やSQLは多くの産業やシステムの基盤になっているという点では汎用的かつデファクトスタンダードで、似たようなドメインを見つけ出すのはなかなか難しいような感じがしているのです。センスと見識の問題かもしれませんが

2011-07-18 12:20:12
tomo🐧@learning @cocoatomo

@keigoi @pokarim 横槍ですが, Apple Script みたいなツールとか. 日常のちょっとした操作を手軽に関数化できるようなもの. .bat ファイルはちと重い. 「なでしこ」の思想も確かそんな感じで好きだったのですが, Mac に移ってからご無沙汰してます.

2011-07-18 12:20:24
Keigo Imai @keigoi

@cocoatomo @pokarim 汎用言語+ライブラリでカバーできるのか、DSLでないと実現できないのか、という違いがあるような気がしています。Apple Scriptがどちらなのかはわからないのですが、習得しやすいのはいいのかも

2011-07-18 12:23:29
pokarim @pokarim

@cocoatomo @keigoi 十分便利で一定の需要はあると思いますが、「手続き」的なものとは全く違うモデルを提供できなければ、@keigoi さんが仰るように汎用言語との戦いに苦労しそうですね。Python等とどう差別化するかという問題です。

2011-07-18 12:34:02
pokarim @pokarim

@keigoi 表計算やSQLの押さえている場所は、確かに「おいしい」領域です。ただ、既存の領域のごく近い場所に違った形のモデルを提供できる可能性は常にあります。例えば、Webアプリ作成という領域にPHPと違った軸で切り込むことはいくらでも可能でしょう。

2011-07-18 12:37:34
pokarim @pokarim

@keigoi デファクトスタンダードの支配が盤石に見えるのは、イノベーションがおこる直前だからかもしれませんよね。

2011-07-18 12:41:02
pokarim @pokarim

@cocoatomo @keigoi ドメインだけでなく、そこにどんなモデルを提供するかが大事なんだと思います。表計算とSQL,汎用言語の間にあるモデルの壁は簡単に乗り越えられる物ではありません。特定のドメインに上手くマッチするモデルを提供できるかが鍵だと思います。

2011-07-18 12:43:45
pokarim @pokarim

@cocoatomo @keigoi batファイルやシェルスクリプトと汎用言語は、ドメインはちょっと違いますが、基盤となるモデルが似たようなものなのでその境は曖昧になってしまうと思います。

2011-07-18 12:45:43
tomo🐧@learning @cocoatomo

@pokarim @keigoi なんとなーくデータフローみたいなものをイメージしてますが, ちょっとプログラム寄りかな, と自分でも感じてます. 書類や手紙の束に対して, かつて事務員さんたちはどう作業していたか? を考えるのが重要だと思っています.

2011-07-18 12:56:29
pokarim @pokarim

@cocoatomo @keigoi 同意です。>"書類や手紙の束に対して, かつて事務員さんたちはどう作業していたか? を考えるのが重要" その領域で、ユーザが解決したい問題はなにか、というのをきちんと考えるのは重要だと思います。

2011-07-18 13:01:24
pokarim @pokarim

@cocoatomo @keigoi Yahoo Pipesもデータフロー的ですが、Excelだって十分データフロー的です。データフローに着目するのは良いと思います。プログラム寄りになるかどうかは、見せ方次第のところもあるかと。

2011-07-18 13:03:27
pokarim @pokarim

@cocoatomo @keigoi あとはデータフロー的なものを考えるときに、時間軸をどう扱うかという点で、BPEL/π計算/ペトリネット的なアプローチと、表計算/リアクティブプログラミング的なアプローチに分かれると考えてます。そのどちらが適切かも領域次第だと思います。

2011-07-18 13:08:41
Keigo Imai @keigoi

@pokarim Pipesはドメインの一例として挙げただけで、他にもどんどんドメインの例を挙げていくことが一番おもしろいと思います。たとえばNII佐藤先生は物流の経路の仕様記述言語について論文を書いています: http://t.co/9EgOb79

2011-07-18 13:57:34
pokarim @pokarim

@keigoi まったく同意です。DSLや環境を整備する価値のある領域はこれからいくらでも見つかると思います。この仕様記述言語も面白そうですね。Alloyとかに似てる感じなんでしょうか。

2011-07-18 14:09:49