1月22日にappengine ja night#4に参加。
前半は浅海智晴さんの「クラウド・アプリケーションDSL駆動アプローチ」
浅海さんの理論の特徴は、今までの成果(主に方法論や設計論)と新しい技術(主に実装技術やプラットフォーム)を組み合わせ、新たな体系的かつ実践的な理論が構成されるところ。
浅海さんはRelaxerの開発以来、10年以上にわたってDSL駆動開発をテーマに取り組んでいて、今までの活動結果がかたちとなってあらわれたものがSimpleModelerである。
SimpleModelerが目指していることは、アプリケーションの開発プロセスを大きく変えるアプローチであり、それは1書いて1もしくは1.5くらいの開発量だったものを、1を書いて10のものをつくり出す生産性にすることであると私は考えている。SimpleModelerによって開発プロセスは以下のように変化する。
(従来のアプローチ)
仕様書(文書+UML)作成→設計書→プログラミング
↓
(DSL駆動開発)
テキストDSL記述(モデリング)→プログラム&仕様書自動生成→さらなるモデリング&プログラミング
ここで誤解してはならない点は、ソースコードは全てが自動生成できるわけではないという点である。
自動生成に適さない独自の作り込みが必要な部分は、実際にプログラミングする必要がある。
とはいってもシステムの1から10を自分でつくるよりも、1〜8までを自動生成してあとの2をつくりこむというほうが生産性が高いことは明らかであろう。
またフレームワークのリファレンスに書かれているお作法的なものも、データの種類と操作方法が決まれば自動生成できるだろう。
自動生成などしないで、自分でごりごり書けばよいではないかという考え方もときどき見受けられるが、それは従来のやり方に固執した考え方だと思う。手組みでつくるよさもあるが、それにとどまっていては大きな進歩は得られないだろう。
とはいえ、新しいアプローチが広く認められるには実績が必要である。
DSL駆動によるアプローチでシステム内の全体でこれだけのソースがつくられ、そのうちの何割が自動生成されたものなどという定量的な実績も求められるのかも知れない。
今年の目標102エントリーまであと96