DSLの過去と未来
憶測による未来予測
温故知新
プログラムの自動生成のうち
DSLに着目する
DSLとは、問題領域専用の簡易言語記述によって、プログラムを生成する技術
DSL記述 → ソース生成器 → プログラムソース
or → 実行ファイル
ミニ言語(リトル言語)
1970年代には確立
インタプリタ―パターン
正規表現を利用した
行指向言語など
「常にアプリケーション領域のボキャブラリーにを使ったコード記述を試みましょう」
DRY
◎ワークステーション文化
LISPerは平常運転
Lisp の最も特徴的な性質の一つは,書こうとしているプログラムに合
わせてLisp を仕立てることができる点だ.
LispそのものがLisp プログラムであること,Lisp のプログラムはリスト
として表現でき,リストはLisp のデータ構造だということ.これら2 個の
原則が相俟って,組み込みのものと区別のつかないオペレータをど
のユーザもLisp に追加できることになる.
(紹介文から)
Domain Specific Language
1990年代 ドメイン工学
ドメイン分析-ドメインモデル-オブジェクトモデル
↑
越えられない壁
ドメインエキスパートとソフトウェア技術の乖離
仕様vs実装 上流vs下流
→ ドメインエキスパートによるソフトウェア開発
・DSL
・コンポーネント指向
◎非ワークステーション文化
DSLはどこ?(20世紀最後の挑戦)
・Visual Modeler
・UML
・MDA
ドメインエキスパートは、プログラミングもしないし、お絵かきにも興味はない
(ドメインエキスパートは、時間単価が高いので、そんな作業はしない)
仕様と実装の乖離、実装→仕様の往復、実装の検証
→ すべてはコストの問題
より現実的(とされる)解決方法
ここまでのまとめ
ワークステーション文化→
自分がプログラムを書くのは当然
ハッカー、研究者、独立系ソフトウェア技術者(達人) → ミニ言語は平常運転
メインフレーム文化→
上流/下流分断 : コーダーがプログラムを書く
ドメイン工学 → DSL → プログラミングはドメインエキスパート(高コスト) → ×
→ プログラミングはオフショア (低コスト) → ○
→ 開発プロセスの見直しによるコスト抑制 (アジャイル) → △(多分)
DSLが失敗したのは、一番の問題であるソフトウェア開発のコスト削減が期待できないから(憶測)
第三ソフトウェア世界
なぜ、マーティンファウラーのDSLが反響を呼んだか?
http://bliki-ja.github.io/LanguageWorkbench/
Webビジネスの登場
Ruby On Rails (2004)
言語ワークベンチ (2005)
参考:クックパッド社の事業が軌道に乗ったのは2006年
http://womantype.jp/mag/archives/747
エンタープライズDSLの復権
本来の目的はコスト削減
→ 円安、中国などアジア諸国の賃金上昇トレンド
たくさんの失敗事例 コミュニケーションギャップによるコスト
アジャイル開発???
→ 機械は安い
○超高速開発コミュニティ (2013年設立) https://www.x-rad.jp/ から
「GeneXusによる開発では、GeneXusが自動生成する画面を利用する事が工期短縮、費用削減」
○富士通
富士通は8月28日、システムの開発と保守作業を効率化する業務プログラム開発支援ツール「FUJITSU
Software Interdevelop Designer」(Interdevelop Designer)を、同日から販売すると発表した。日本語の設
計書からCOBOLとJavaのソースコードを100%自動で生成できる。
コーダーの時代は終了

DSLの過去と未来