« 「論理設計」にこだわる利点 | トップページ | 値の変更が制限される項目「強属性」について »

2015.11.21

ドメイン特化基盤がドメインを豊かにする

 前回記事で、ソフトウエアの本質は「機械に対する形式化された動作指示」であり、それゆえにドメイン特化基盤(Domain Specific Platform, DSP)が必然的に生み出されると書いた。これについてもう少し補足しておきたい。

 ドメイン特化基盤とは何かを説明する前に、アプリ開発の素朴なスタイルを見よう。OSの上に、JavaやC++といった汎用プログラミング言語で書かれたアプリを実行するための基盤が置かれている。その言語仕様に沿った動作指示(コード)を粛々とまとめることで、個別案件向けアプリの開発がなされている(次図)。

▼図1.さまざまなドメイン向けにアプリが開発される
20151119a_2

 さまざまな分野向けのアプリが開発されるわけだが、それらの分野を総じて「ドメイン」と呼ぶ。たとえば私が専門とする「業務システム」もドメインのひとつであるし、「ゲーム」や「組込ソフト」もそれぞれドメインである。上図はそれらの多様なドメイン向けのアプリ開発がなされている状況を示している。

 このような態勢でアプリ開発を繰り返すうちに、ある日誰かが気づく。「似たようなコードブロックをいちいちコーディングするのはばかばかしい」。そこでかれは、形式化された処理仕様を与えれば記述を自動生成してくれる「コード・テンプレート」を開発する。

 Eclipse等のIDEが提供する「try..catchで囲む」の補完機能などは、そのような工夫の中でも粒度の小さい(汎用的な)もので、ドメインに関係なく利用可能である。いっぽう、より粒度の大きい(ドメイン固有な)コード・テンプレートも存在する。「アプリケーション・フレームワーク(APFW)」と呼ばれるものがそれで、コード生成機能の他にドメイン固有のさまざまな共用関数が組み込まれている。

 市場と結びついた「稼げるドメイン」であれば、この種の「ドメイン固有の工夫」が生み出されるのは自然のなりゆきである。市場から合理化圧力を受け続けるし、人材も資金も流入するからだ。

 ただしそのような技術があっても、それを取り入れるかどうかは開発企業やプロジェクトによって異なる。結果的に、特定ドメインにおける開発スタイルは、次図のようにプロジェクト(p1,p2,p3,p4)毎に違ってくる。スタイルによって、個別案件向けに付加される記述(水色の部分)の量が違っている点に注意してほしい。

▼図2.ドメイン内での合理化が進展する
20151119b_2

 この種の工夫を活用しつつアプリ開発を繰り返すうちに、ある日誰かが気づく。「そもそも、汎用プログラミング言語での手作りにこだわる必要なんてないじゃないか」。そこでかれは、形式化された動作指示を渡せば「汎用プログラミング言語で手作りされたアプリ」であるかのように機械を動作させるソフトウエアを開発する。

 その動作指示の様式が「DSL(ドメイン固有言語, Domain Specific Language)」であり、その動作指示にもとづいて機械を動作させるソフトウエアが「DSP(ドメイン特化基盤, Domain Specific Platform)」である。

 DSPは「アプリケーション・フレームワーク」とどう違うのだろう。本質的な違いは、DSPが言語処理系を完全に覆い隠す形で築かれる点にある。それはちょうど、言語処理系がOSを覆い隠しているのと同じ形である。つまりDSPを利用すれば、クラス構造等の「言語仕様」を意識せずに個別案件向けアプリを定義できるようになる。「初音ミク」を使うミュージシャンが、クラス構造を意識せずに音源を作っている状況と同型である(参考記事「オブジェクト指向とイパネマの娘)。

 このように多様な技術が生み出された結果、特定ドメインにおける開発状況は図3のようになる。付加されるべき記述の量が、プロジェクトが採用する開発スタイル毎で大きく差がついている。とくにP4では、付加部分が言語処理系と完全に切り離されている点に注意してほしい。

▼図3.多様な開発スタイルが混生する
20151119c_2

 ふつうに考えれば、すべてのプロジェクトが新技術を競って取り入れそうなものだが、コトはそれほど単純ではない。さまざまな技術革新が起こっても、図3左端の開発スタイルが存続することがある。開発スタイルがまだ素朴だった早期の段階で、そのやり方に依拠する開発ビジネスが、訴求力のある「ブランド」として成立したからだ。合理化が進んでいないことの裏返しではあるが、その種のビジネスがもたらす雇用創出効果は絶大である。存続することの意義は大きいし、彼らにしか扱えない案件も厳然と存在する。

 いっぽう、DSPがドメインにもたらすインパクトも無視できない。それがアプリの新しい作り手や使い手を生み出すからだ。今まで開発ビジネスに相手にしてもらえなかったユーザが、DSPを使って必要なアプリを自作できるようになる。じっさい「音源制作用のDSP」である初音ミクも、プロミュージシャンだけでなく素人の趣味人によっても活用されている。情熱さえあれば欲しいモノが作れてしまうだけでなく、これまで10人がかりだったことがたったひとりでなされるようになる。私の言う「おひとりさま開発」のスタイルだ。

 じっさいのところ、そのように多様な開発スタイルや作り手が混在していても、それはそれで良いことなのだろう。図3のような状況は「森の植生遷移」を思わせる。最初は松だけだった疎林に、次第にさまざまな樹木が混生するようになる。最終的に、多様な生物相を含む森となって安定する。ドメインもそういうものかもしれない。DSPが育つことで、より多くの個人や企業が引きつけられる。この豊かな森であなたはどんな役割を果たしたいと望むだろうか。

本ブログでの関連記事:ドメインの階層化とDSP

|

« 「論理設計」にこだわる利点 | トップページ | 値の変更が制限される項目「強属性」について »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: ドメイン特化基盤がドメインを豊かにする:

« 「論理設計」にこだわる利点 | トップページ | 値の変更が制限される項目「強属性」について »