BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース パネル:DSL:DSLの良い点、悪い点、酷い点

パネル:DSL:DSLの良い点、悪い点、酷い点

原文(投稿日:2009/4/10)へのリンク

OOPSLA 2008(リンク)の際に録画されたこのパネル(参考記事・英語)では、パネリストのJeff Gray氏(モデレータ)、Kathleen Fisher氏、Charles Consel氏、Gabor Karsai氏、Marjan Mernik氏、Juha-Pekka Tolvanen氏がDSLを使用することの利点と欠点について語った。

プレゼンテーション:DSLs: The Good, the Bad, and the Ugly (1時間30分)(参考記事・英語)

Kathleen Fisher氏(AT&T Labs Research)はHancock(リンク)について語った。Hancockとは顧客がやり取りする内容からその顧客のシグネチャを生成するためのC言語で記述されたDSLである。このアイディアは国際電話の発信における顧客ごとの行動パターンを特定する試みである。国際電話は監視されており、もしある顧客が通常とは異なる行動を取ると不正を知らせる警告が発生される。実際には発信をしていない顧客が大量に不正な発信を行っていると記録されている状況があるのでこのような手続きが必要となっている。Fisher氏はHancockのようなDSLの利点と欠点を紹介した。

Charles Consel氏(ボルドー大学及びフランス国立情報学自動制御研究所)はDSLを作成する際に重要なことは“扱うドメインをよく理解することと言語の設計に重点を置くこと”であると語っている。外部の顧客が使うDSLを記述する際には、それらの顧客があるDSLを採用する決め手となる点についてよく考えることである。Consel氏が話をした多くの顧客は問題をより早くより簡単に解決するのに役立つ抽象化レイヤ(DSL)を必要としていた。 悪い面についてConsel氏は既に成功したあるDSLから異なるドメインに対する新しいDSLを作ることの難しさを挙げている。これはドメイン分析の手順が自動化されていないために起きているとConsel氏は考えている。

Gabor Karsai氏(バンダービルト大学)はDSLはドメインを抽象化するのによいと考えている。DSLの問題は多くの場合それがプロプライエタリなものでありDSL内にカプセル化された知見を外部の人間が手にすることが出来ないという点である。人々は通常DSLとそれを扱うためのビジュアル・ツールさえあれば問題を解決できると思っていて、DSLがターゲットにするアプリケーション自体の設計が必要であるということを認識していないとKarsai氏は語っている。DSLはしっかりとアプリケーションの設計をしない人の役には立たないのである。

Marjan Mernik氏(マリボル大学)は、例えばDSLは単なるモデリング言語であるというような、DSLの定義の狭さについて不満を述べた。DSLは仕様記述、モデリング、そしてプログラミング用の言語である。もう一つの問題は、スクリプト作成や並列プログラミングといった、(DSLが扱う)ドメインの一般的な定義である。Mernik氏はこのようなドメインはDSLで扱うのに十分なほどには特化されていないと考えている。DSLが最も威力を発揮するのは、分析、検証、最適化、並列化、そしてドメインの変換である。

Juha-Pekka Tolvanen(MetaCase)は、自動車業界や家庭用品、携帯電話産業、そして銀行などに向けて100程度のDSLを開発したことがある。Tolvanen氏は本パネルにおける産業界及びツール・ベンダの代弁者である。Tolvanen氏はDSLの利点について以下のように述べている。品質、開発フェーズの早い段階におけるエラー検出、蓄えられた専門知識の提供、複雑さの隠蔽である。そしてTolvanen氏によると最大の利点は生産性である。背後にあるドメインを高度に抽象化した優れたDSLを使うと開発者はより早くより多くのものを作成することが出来る。顧客と仕事をしている際の問題の一つは顧客があまりに汎用的なDSLを作成してしまい特定のドメインに適用するよう局所化するのが難しくなってしまうことである。例えばパラメータの可視性のようなプログラミング言語の低レベルな特徴をDSLに取り込んでしまうミスを犯すと、背後にあるプログラミング言語を反映しすぎた粒度の粗いDSLが出来上がってしまう。

セッションの後半は解説と質疑に充てられた。
 

この記事に星をつける

おすすめ度
スタイル

BT