« 2006年5月 | トップページ | 2006年7月 »

2006年6月

2006/06/18

【感想】SEA Forum in Osaka~アスペクト指向技術は実用に使えるか

 「SEA Forum in Osaka~アスペクト指向技術は実用に使えるか」セミナーへ行ってきた。
 和気藹々、そして白熱したパネルディスカッションもあり、面白かったー。

 2年前に刺激を受けたAspectセミナーでは、アスペクトは非機能要件でしか使えないという話だったが、技術は確実に進んでいた。

【1】Aspectを使うコツはポイントカットにある(増岡さんの講演から)

 東大の増岡さんの講演は、初心者向けのお話で、例が多くて分かりやすかった。
 その中で、before, after, aroundなどのアドバイスを図形エディタで使ったサンプルを良く見ると、メソッド呼び出しのタイミング(ポイントカット)に制約をつけるのがキーだった。
 cflowのようにメソッド呼び出しスタックの履歴を使って、メソッド呼び出し先に他のメソッドが呼ばれているかチェックできる例もあった。

 後のディスカッションでも、ポイントカットの研究は盛んで、メソッド呼び出しの実行履歴からアドバイスを制御する研究もあるらしい。

 ポイントカットを使った他の例として、関数呼び出しのルールをアスペクトで書くツールの紹介もあった。
 FindBugsとかLintみたいなものかな。
 こういうツールは品質を高めるのに使えそう。

【2】アノテーションを使えば、Aspectをより簡単に使いこなせる(山根さんの講演から)

 ポイントカットを書く時に、どのメソッド呼び出しを制御するか、というために、メソッド名を正規表現でマッチするものを選択する手法しか今までなかった。
 だから、フレームワークのように、将来のシステムでも修正作業が閉じていないシステムではリスクがあると言う問題があった。
 アノテーションを使うと、メソッド名にタグ付けすることによって、ポイントカットするメソッドを特定できるようになるので、より安全にAspectを使えるという話。
 この手法は、Javaだけでなく、C#でも使えるね。

【3】Aspectの思想は、SoftwareProductLineに通じる

 パネルディスカッションで、小林さんが、Aspectとソフトウェアプロダクトラインに関連があると指摘した点は非常に興味を持った。
 どうやら、メソッドの振る舞いに着目するアスペクトと、ソースの変化に着目するソフトウェアプロダクトラインは動機こそ違う。
 でも、オブジェクト指向のようなクラス単位ではなく、フィーチャーという構造化設計のような機能単位で機能を切り出す点が似通っているようで、AOPとソフトウェアプロダクトラインを組み合わせた研究も韓国の研究者がやっているらしい。

 関西のIT業界は、組み込み系技術者が多い。
 その組み込み系プロジェクトでは、製品ごとに機能を少しだけ変えるプロジェクトが多い背景から、ソフトウェアプロダクトラインに興味を持つ人は多い。
 アスペクト志向をそんな視点から考える発想はすごく刺激的だった。

 アスペクトにしてもソフトウェアプロダクトラインにしても、プログラムの再利用について、一つの解決方法を提示している。
 この2つの話はちょっと目が離せないな。

| | コメント (0) | トラックバック (0)

2006/06/11

【感想】Kansai.pm 第1回Perl翻訳フェスタ

Kansai.pm 第1回Perl翻訳フェスタへ行ってきた。
このイベントは、Perl愛好者がPerlライブラリなどの英語ドキュメントを翻訳して公開しようという企画。
10人ほど集まって和気あいあいの雰囲気で、前回の勉強会と違って面白かった。

【1】翻訳支援ツール OmegaT で翻訳してみる

 翻訳は、Diffやバージョン管理が面倒なため、支援ツール OmegaTで翻訳してみることになった。
 文節ごとに区切られた前回の翻訳文章を覚えてファジー翻訳など、コード補完の様な機能が付いていたり、結構面白い。
 でも、作成途中のベータ版らしく、スペルチェック、バージョン管理などの機能はまだまだ。

 慣れている人は、8時間で400字詰め原稿用紙10~20枚翻訳していくらしい。僕は全然でした。。

※参考:OmegaTのYahooGroup

 オープンソースライブラリの翻訳活動は、完全にボランティア。
 バージョンアップに追いつけず、やる気がなくなると、ドキュメントはすぐに古くなるらしい。
 また、個人のHPに翻訳ドキュメントを置いていると消失してしまう危険性があるから、なるべくライブラリ本体のHPへUploadしてほしいとのことでした。
 色んな気遣いや注意があるようだ。

【2】SkypeでOmegaT作成者Jean-Christophe Helaryから説明を受ける

 皆初めて使うツールなので、作成者からじきじきにレクチャを受けた。
 Skypeは仕事でも使う時はあるけど、こういう場面で自然に使えるんだよなあ。
 音声だけなのですが、内臓マイクを通して会話して、プロジェクターに映った画面を見ながら操作するのは、見てて面白かった。

【3】Haskell のレクチャを受ける

 昼食後の休憩時間に、まだ世に出ていないPerl6のインタプリタはHaskellで作られているらしいという雑談から、Haskell のデモを見せてもらった。
 Haskell を見るのは初めてですが、「 0 + "hello"」をエラーとしてしまう強い型チェック、モデルの証明のような論理を構成して検証するのがやりやすいという特徴などの話を聞いた。
 Javaでようやく導入されたGenericsも、Haskell には元々付属している機能だと言う。
 色んなデータ型を作りやすいから、Perl6のインタプリタ機構も作れたんですよ、と言う。

 オブジェクト倶楽部でも連載が始まったけど、密かなブームなのだろうか??

 Perl関西は他のコミュニティと違って、ノートPCがMac、Linux使いの人が多かったり、オープンソースの活動に詳しい人も多く、技術的に面白い。

| | コメント (0) | トラックバック (0)

« 2006年5月 | トップページ | 2006年7月 »