SlideShare une entreprise Scribd logo
1  sur  11
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%自動で生成できる。
コーダーの時代は終了

Contenu connexe

En vedette

Dslからのコードジェネレーションで楽々play開発
Dslからのコードジェネレーションで楽々play開発Dslからのコードジェネレーションで楽々play開発
Dslからのコードジェネレーションで楽々play開発Yoshiteru Takeshita
 
文書をプログラムにする技術 - SimpleModeler + Mindmap & SmartDox
 文書をプログラムにする技術 - SimpleModeler + Mindmap & SmartDox 文書をプログラムにする技術 - SimpleModeler + Mindmap & SmartDox
文書をプログラムにする技術 - SimpleModeler + Mindmap & SmartDoxTomoharu ASAMI
 
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)Taku Aoyama
 
3分で読める「道は開ける」超要約(デール・カーネギー)
3分で読める「道は開ける」超要約(デール・カーネギー)3分で読める「道は開ける」超要約(デール・カーネギー)
3分で読める「道は開ける」超要約(デール・カーネギー)Taku Aoyama
 
組織のナレッジ共有の促進方法 - 人を動かす
組織のナレッジ共有の促進方法 - 人を動かす組織のナレッジ共有の促進方法 - 人を動かす
組織のナレッジ共有の促進方法 - 人を動かす貴仁 大和屋
 
モテない男のソリューション -万葉恋愛メソッド-
モテない男のソリューション -万葉恋愛メソッド-モテない男のソリューション -万葉恋愛メソッド-
モテない男のソリューション -万葉恋愛メソッド-sukopun
 
バーニングマンから考える組織論 20140223Co-Lab用
バーニングマンから考える組織論 20140223Co-Lab用バーニングマンから考える組織論 20140223Co-Lab用
バーニングマンから考える組織論 20140223Co-Lab用明弘 野村
 
女性にモテるためのIT系男子的部屋の片付け術
女性にモテるためのIT系男子的部屋の片付け術女性にモテるためのIT系男子的部屋の片付け術
女性にモテるためのIT系男子的部屋の片付け術やまもと さをん
 
プロの無職についての考察:序
プロの無職についての考察:序プロの無職についての考察:序
プロの無職についての考察:序Koichi ITO
 
【Nwr】0417おしゃれな生き方
【Nwr】0417おしゃれな生き方【Nwr】0417おしゃれな生き方
【Nwr】0417おしゃれな生き方nwrnet
 
収入と貯蓄の関係V1
収入と貯蓄の関係V1収入と貯蓄の関係V1
収入と貯蓄の関係V1Shimizu Hitoshi
 
マイケル・ポーターの『競争の戦略』を読んだら。
マイケル・ポーターの『競争の戦略』を読んだら。マイケル・ポーターの『競争の戦略』を読んだら。
マイケル・ポーターの『競争の戦略』を読んだら。剛 大島
 
Nwrノルウェースタディーツアー概要
Nwrノルウェースタディーツアー概要Nwrノルウェースタディーツアー概要
Nwrノルウェースタディーツアー概要nwrnet
 
Mon2 25
Mon2 25Mon2 25
Mon2 25medism
 
大阪大学サイバーメディアセンターにおける可視化サービスの取り組み
大阪大学サイバーメディアセンターにおける可視化サービスの取り組み大阪大学サイバーメディアセンターにおける可視化サービスの取り組み
大阪大学サイバーメディアセンターにおける可視化サービスの取り組みShinji Shimojo
 
DSLによる要求獲得でスーパーアジャイル
DSLによる要求獲得でスーパーアジャイルDSLによる要求獲得でスーパーアジャイル
DSLによる要求獲得でスーパーアジャイル陽平 山口
 
学ばないDSL
学ばないDSL学ばないDSL
学ばないDSLKenta USAMI
 
Google 日本語入力 TechTalk 2010
Google 日本語入力 TechTalk 2010Google 日本語入力 TechTalk 2010
Google 日本語入力 TechTalk 2010Yamagata Yoriyuki
 

En vedette (20)

Dslからのコードジェネレーションで楽々play開発
Dslからのコードジェネレーションで楽々play開発Dslからのコードジェネレーションで楽々play開発
Dslからのコードジェネレーションで楽々play開発
 
文書をプログラムにする技術 - SimpleModeler + Mindmap & SmartDox
 文書をプログラムにする技術 - SimpleModeler + Mindmap & SmartDox 文書をプログラムにする技術 - SimpleModeler + Mindmap & SmartDox
文書をプログラムにする技術 - SimpleModeler + Mindmap & SmartDox
 
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)
 
3分で読める「道は開ける」超要約(デール・カーネギー)
3分で読める「道は開ける」超要約(デール・カーネギー)3分で読める「道は開ける」超要約(デール・カーネギー)
3分で読める「道は開ける」超要約(デール・カーネギー)
 
組織のナレッジ共有の促進方法 - 人を動かす
組織のナレッジ共有の促進方法 - 人を動かす組織のナレッジ共有の促進方法 - 人を動かす
組織のナレッジ共有の促進方法 - 人を動かす
 
Leadership
LeadershipLeadership
Leadership
 
モテない男のソリューション -万葉恋愛メソッド-
モテない男のソリューション -万葉恋愛メソッド-モテない男のソリューション -万葉恋愛メソッド-
モテない男のソリューション -万葉恋愛メソッド-
 
バーニングマンから考える組織論 20140223Co-Lab用
バーニングマンから考える組織論 20140223Co-Lab用バーニングマンから考える組織論 20140223Co-Lab用
バーニングマンから考える組織論 20140223Co-Lab用
 
女性にモテるためのIT系男子的部屋の片付け術
女性にモテるためのIT系男子的部屋の片付け術女性にモテるためのIT系男子的部屋の片付け術
女性にモテるためのIT系男子的部屋の片付け術
 
プロの無職についての考察:序
プロの無職についての考察:序プロの無職についての考察:序
プロの無職についての考察:序
 
【Nwr】0417おしゃれな生き方
【Nwr】0417おしゃれな生き方【Nwr】0417おしゃれな生き方
【Nwr】0417おしゃれな生き方
 
(10)昇進管理
(10)昇進管理(10)昇進管理
(10)昇進管理
 
収入と貯蓄の関係V1
収入と貯蓄の関係V1収入と貯蓄の関係V1
収入と貯蓄の関係V1
 
マイケル・ポーターの『競争の戦略』を読んだら。
マイケル・ポーターの『競争の戦略』を読んだら。マイケル・ポーターの『競争の戦略』を読んだら。
マイケル・ポーターの『競争の戦略』を読んだら。
 
Nwrノルウェースタディーツアー概要
Nwrノルウェースタディーツアー概要Nwrノルウェースタディーツアー概要
Nwrノルウェースタディーツアー概要
 
Mon2 25
Mon2 25Mon2 25
Mon2 25
 
大阪大学サイバーメディアセンターにおける可視化サービスの取り組み
大阪大学サイバーメディアセンターにおける可視化サービスの取り組み大阪大学サイバーメディアセンターにおける可視化サービスの取り組み
大阪大学サイバーメディアセンターにおける可視化サービスの取り組み
 
DSLによる要求獲得でスーパーアジャイル
DSLによる要求獲得でスーパーアジャイルDSLによる要求獲得でスーパーアジャイル
DSLによる要求獲得でスーパーアジャイル
 
学ばないDSL
学ばないDSL学ばないDSL
学ばないDSL
 
Google 日本語入力 TechTalk 2010
Google 日本語入力 TechTalk 2010Google 日本語入力 TechTalk 2010
Google 日本語入力 TechTalk 2010
 

Similaire à DSLの過去と未来

Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」Kaz Aiso
 
2014年の社内新人教育テキスト #1(プログラミング言語概論)
2014年の社内新人教育テキスト #1(プログラミング言語概論)2014年の社内新人教育テキスト #1(プログラミング言語概論)
2014年の社内新人教育テキスト #1(プログラミング言語概論)Shin-ya Koga
 
Common Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろうCommon Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろうblackenedgold
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日nukaemon
 
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能Tadahiro Ishisaka
 
NDC Rader ~日本語テキストの日本十進分類レーダーチャートによる可視化アプリケーション~
NDC Rader ~日本語テキストの日本十進分類レーダーチャートによる可視化アプリケーション~NDC Rader ~日本語テキストの日本十進分類レーダーチャートによる可視化アプリケーション~
NDC Rader ~日本語テキストの日本十進分類レーダーチャートによる可視化アプリケーション~genroku
 
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整えるサーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整えるFuminobu Takeyama
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~Fujio Kojima
 

Similaire à DSLの過去と未来 (12)

Real world lisp
Real world lispReal world lisp
Real world lisp
 
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
 
2014年の社内新人教育テキスト #1(プログラミング言語概論)
2014年の社内新人教育テキスト #1(プログラミング言語概論)2014年の社内新人教育テキスト #1(プログラミング言語概論)
2014年の社内新人教育テキスト #1(プログラミング言語概論)
 
Common Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろうCommon Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろう
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日
 
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
 
RedPen texconf15
RedPen texconf15RedPen texconf15
RedPen texconf15
 
Obj c
Obj cObj c
Obj c
 
NDC Rader ~日本語テキストの日本十進分類レーダーチャートによる可視化アプリケーション~
NDC Rader ~日本語テキストの日本十進分類レーダーチャートによる可視化アプリケーション~NDC Rader ~日本語テキストの日本十進分類レーダーチャートによる可視化アプリケーション~
NDC Rader ~日本語テキストの日本十進分類レーダーチャートによる可視化アプリケーション~
 
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整えるサーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
 
Nishimotz pycon2011jan
Nishimotz pycon2011janNishimotz pycon2011jan
Nishimotz pycon2011jan
 

Plus de Akio Tajima

変身動物園.pptx
変身動物園.pptx変身動物園.pptx
変身動物園.pptxAkio Tajima
 
Rails,RSpec & Capybara で困った話
Rails,RSpec & Capybara で困った話Rails,RSpec & Capybara で困った話
Rails,RSpec & Capybara で困った話Akio Tajima
 
子供は本を読み、本は子供に読まれる
子供は本を読み、本は子供に読まれる子供は本を読み、本は子供に読まれる
子供は本を読み、本は子供に読まれるAkio Tajima
 
Decades around here
Decades around hereDecades around here
Decades around hereAkio Tajima
 
RJB - another choice for Ruby and Java interoperability
RJB - another choice for Ruby and Java interoperabilityRJB - another choice for Ruby and Java interoperability
RJB - another choice for Ruby and Java interoperabilityAkio Tajima
 
Ruby on windows 2010
Ruby on windows 2010Ruby on windows 2010
Ruby on windows 2010Akio Tajima
 
Ruby Extended Library
Ruby Extended LibraryRuby Extended Library
Ruby Extended LibraryAkio Tajima
 

Plus de Akio Tajima (12)

変身動物園.pptx
変身動物園.pptx変身動物園.pptx
変身動物園.pptx
 
Rails,RSpec & Capybara で困った話
Rails,RSpec & Capybara で困った話Rails,RSpec & Capybara で困った話
Rails,RSpec & Capybara で困った話
 
子供は本を読み、本は子供に読まれる
子供は本を読み、本は子供に読まれる子供は本を読み、本は子供に読まれる
子供は本を読み、本は子供に読まれる
 
C# on lambda
C# on lambdaC# on lambda
C# on lambda
 
Nougakudo
NougakudoNougakudo
Nougakudo
 
Decades around here
Decades around hereDecades around here
Decades around here
 
RJB - another choice for Ruby and Java interoperability
RJB - another choice for Ruby and Java interoperabilityRJB - another choice for Ruby and Java interoperability
RJB - another choice for Ruby and Java interoperability
 
Ruby on windows 2010
Ruby on windows 2010Ruby on windows 2010
Ruby on windows 2010
 
Asr
AsrAsr
Asr
 
N Lize
N LizeN Lize
N Lize
 
Ruby Extended Library
Ruby Extended LibraryRuby Extended Library
Ruby Extended Library
 
Rubyize
RubyizeRubyize
Rubyize
 

DSLの過去と未来