インタビュー: Emmanuel Bernard氏にBean Validation仕様について聞く
Bean Validationフレームワークの初期ドラフトに関する以前の記事に続き、InfoQは専門家グループが求めているコミュニティの関与と提案について理解を深めるため、Emmanuel Bernard氏と対談しました。
- Java,
作者 Robert Bazinet, 翻訳者 長部 広太 投稿日 2007年11月20日 午前2時10分
John Lam氏(source)はRubyConf(source)に出席した開発者仲間に、MicrosoftがRubyをDLRやSilverligtht(サイト・英語)上で動かそうと全力を注いでいることによって、今後の行方がどうなるかをちらっと漏らした。
デモンストレーションは他のSilverlightデモンストレーションとは異なった。そのデモンストレーションでは、SilverlightエンジンにレンダリングさせるXAMLマークアップを書く代わりに、コードはRubyで書かれていた。John Lamの言葉を引用してみよう。
これは、私の知る限りでは、コードファーストなSilverlight 1.1アプリケーションの最初の例の一つです。UIを生成するほとんどのSilverlightアプリケーションは、XAML stringを作ることによってUIを生成します。またUIはXAMLのstringをXAMLパーサーに渡しパースしてもらいます。Rubyのような美しい言語を使っているのに、stringでツリーを作るなんてもったいないことです。
XAMLマークアップは、デモでこのように見える。
<Storyboard x:Name="Timeline1" TargetName="ScaleTransform1">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Storyboard.TargetProperty="ScaleX">
<SplineDoubleKeyFrame KeyTime="00:00:00.0" Value="0.200"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="0.935"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.3" Value="0.852"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.4" Value="0.935"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Storyboard.TargetProperty="ScaleY">
<SplineDoubleKeyFrame KeyTime="00:00:00.0" Value="0.200"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="0.935"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.3" Value="0.852"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.4" Value="0.935"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
Microsoftは、動的言語をDLR上で動かすことに全力を傾けた。そして、DLRを使用して、彼ら(Microsoft)は、.NET CLR上で動くIronRuby(サイト・英語)を開発している。IronRubyは、Rubyをフル実装(source)したものである。
DLR用のコードを書く上で目指すべき事は、ネーティブなコードを書けようになることであって、XAMLをハンドコーディングする必要がないように出来ることである。このことによって、開発者は、上の例で出てきたようなXAMLを書く事はやめて、以下のようなRubyのコードを書くようになるであろう。
class BounceAnimation < AnimationBase
def initialize(scale_transform_element)
@obj = Wpf.build(Storyboard, :name => random_name,
:target_name => scale_transform_element) {add(DoubleAnimationUsingKeyFrames, :begin_time=>'00:00:00',
:target_property => "ScaleX") {add(SplineDoubleKeyFrame, :key_time => '00:00:00.0', :value => 0.200)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.2', :value => 0.935)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.3', :value => 0.852)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.4', :value => 0.935)
}add(DoubleAnimationUsingKeyFrames, :begin_time=>'00:00:00',
:target_property => "ScaleY") {add(SplineDoubleKeyFrame, :key_time => '00:00:00.0', :value => 0.200)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.2', :value => 0.935)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.3', :value => 0.852)
add(SplineDoubleKeyFrame, :key_time => '00:00:00.4', :value => 0.935)
}
}
end
end
Rubyでの表現能力、XAMLを書く事と比較して、より簡単且つ直感的で分かりやすい。また目的を表現することはより簡単である。ここにあげた機能は、デモで紹介されたが、一部の機能はまだ利用出来ず、それが使えるようになるのは、Silverlight1.1の次のCTPがリリースされてからだろう。またSilverlight1.1で、開発者はIronRubyをブラウザ上で実行する事が出来るようになるであろう。
IronRubyに関する詳細な情報はIronRubyのWebサイト(source)に掲載されている。そして、デモで紹介されたソースコードは、John Lam氏のブログ(source)で入手可能だ。
原文はこちらです:http://www.infoq.com/news/2007/11/ironruby-silverlight
Bean Validationフレームワークの初期ドラフトに関する以前の記事に続き、InfoQは専門家グループが求めているコミュニティの関与と提案について理解を深めるため、Emmanuel Bernard氏と対談しました。
ポーカーは他のトピックにも広く適用できるような数少ない教えを私にもたらしてくれたと信じています。実際私はソフトウェアを開発すればするほど、これら二つの仕事は非常に似ていると言う確信の度合いを深めています。
恒例の「バーチャルパネルセッション」で、InfoQは新しいOASIS BPEL4People技術委員会の代表と対談をし、この作業が何故必要であるかについて彼らのフィードバックを得る機会を得ました。
ドメイン特化言語は最近非常に人気が高まっている話題です。これは恐らく、Rails現象に起因していると考えられます。Railsの人気と、Railsにおけるドメイン特化言語(以降、DSL)の大規模な使用は、DSLに対する広範な関心を呼び起こしました。
Rubyには、Rubyコミュニティの内外で広く知られている誤解が一つある。Rubyにはデバッガがないという誤解だ。しかし、Rubyにデバッガが無いということは誤解なのだ。実際のところ、Rubyにはデバッガ用のツールがある。
InfoQ Chinaは中国でスクラム(Scrum)がどのように導入されているかに関する調査を行いました。私たちはこの記事のために5つの事例をピックアップしました。これらの事例は、異なるさまざまな会社によるもので、異なるプロセスが利用され、異なる結果が生じたものです。
Udi Dahan氏のチームが、サービス契約を利用した2度の失敗を避け、複数の側面でのスケーラビリティに対処しています。
Agileを始めるときは、とても分かりにくいです。一体どこから手をつければいいのでしょう?この物語はそんな皆様の一助になれば幸いです。本書は、スウェーデンにある、とある40人ほどの会社で、どのようにAgileとXPを実行したか、プロセス改善を行ったかを記しています。
No comments
返信