DSL / Problems with DSLs


DSL

Problems with DSLs(DSLにおける問題)

一言要約

いろいろ言われているけど、どれもそんなに大きな問題ではないよ。

要約

みんなDSLの構築や適応に慣れていないので、問題が誇張されている。

学習曲線

DSLの知識が普及していないし、学習曲線を高めるのに必要な文書がない。だから本を書くよ。

構築のコスト

モデルの構築コストとDSLの構築コストは別。モデルの構築コストに比べたらDSLの構築コストはとても小さい。


設計の難しさ

DSLは表現力が制約されているため汎用言語を使ったライブラリやAPIの設計よりも簡単。
DSLの設計に失敗しても同じモデルをラップする別のもので置き換えればいい(変更や破棄が比較的簡単)。

DSLを使用するための学習コスト

言語の不協和音問題が取り上げられるが、DSLは汎用言語よりも理解と学習が容易。
DSLがなくてもプロジェクトには難しいモデルが登場する。
DSLを理解するのはモデルを理解するよりも簡単。DSLによりモデルが理解しやすくなる。

DSLスクリプトを移行する難しさ

内部DSLはリファクタリングツールが使えるが外部DSLに対しては難しい。
マイグレーションエグゼキューション(Migration Execution)と下位互換性を考慮した複数バージョンサポートが有効。

ファウラーへのフィードバック

担当者のつぶやき

傾向としては、どれもそんなに問題じゃないよ、みたいな言い方ですね。ずいぶんと楽観的?
ここではとりあえずの考察ということで、後半でより詳しく扱うらしいです。


みんなの突っ込み