Microsoft が IronPython と IronRuby をエンドユーザによるアプリケーションのカスタマイズ方法として推奨し始めている。これには Microsoft Dynamics で,州と地方自治体が複雑な診療報酬作成を行うために IronPython を使用した実例がある。決定要因としてのビジネスルールが通常の検索テーブル(lookup table)では表現できないほど複雑であったり,あるいは一般的な開発サイクルが適用できないほど変更が頻繁であるような場合に,この方法が利用される。
Microsoft Dynamics はオープンソースのアプリケーションではないため,それに代わる方法として Microsoft は動的言語(dynamic language)でユーザのエクスペリエンスがいかにカスタマイズできるか,という例を示そうとしている。オープンソース Twitter クライアントの Witty がそのひとつだ。
Witty の新機能のひとつに REPL コンソールがある。コンソールの表示は非常に簡単だ。単に ConsoleWindow オブジェクトのインスタンスを生成して,エンドユーザにアクセスして欲しいオブジェクトをそれに渡した上で表示を行えばよい。
var console = new ConsoleWindow();
console.MainRepl.AddExternalObject("T", twitter);
console.MainRepl.AddExternalObject("U", this);
console.Show();
REPL コンソールを表示した Witty のスクリーンショットが Jimmy Schementi 氏のブログで確認できる。Jim Deville 氏による REPL コンソールのソースコードは github で入手可能だ。
.Net 上の動的言語に関する追加情報は Channel 9 の Pumping Iron のビデオで確認してほしい。