言語ワークベンチの人気が高まってきている。そのカテゴリにおいて様々な製品を比較することにフォーカスしたコンテストすら存在する。Pedro Molina氏は彼の新しい言語ワークベンチ、Essentialの公開ベータ版をつい先ごろリリースした。
Essentialはメタモデリングおよびコード生成のツールであり、特定のDSLが次のようなものを定義し、利用することができるようにするものである:
- メタモデルのモデル
- テンプレート
- モデルからテキストへの変換
- モデルからモデルへの変換
Eclipse Xtestなどの他のツールと比べた場合、重要な差異の一つは、Essentialがモデル解釈にフォーカスしている、すなわち、コード生成のプロトタイプをつくることがいかなるインフラ用の定形コードやメタエディタをつなぐアクセサリを生成する必要のないアジャイルなやり方で行うことが可能である、ということだ。対照的に、Xtestはそのモデルのどんな変更をしたときでも、新しいバージョンのモデルパーサが生成され、それが変換エンジンの中心となる。
Pedro氏はこのアプローチにはいくつかのメリットがあると見ている:
- 大きなオーバーヘッドなしにモデルから直接ソフトウェアのプロトタイプが可能
- ソフトウェアアーキテクチャを高速に進化させることができ、その気か、異なるデザインを実験することが可能
- アーキテクチャをベンチマークし比較することが可能
- コード生成
私たちの業界は信じられない程のペースで進化している。そしてそれは、新しいアーキテクチャ、アーキテクチャの要素、ほぼ毎日のように出てくるSDK、種々のデバイスなどがあり、その上で動作しなければならないソリューション、ソフトウェア開発に対するモデリングアプローチへの転換(MDSD)、特にメタプログラミングについてもっと考えざるを得なくなるかもしれない。あなたはどう考えるだろうか?