三井 英樹

 Rich Internet Application(RIA)についての技術の学習をどのように行うべきか---これが開発者にとっての大きな課題となっています。開発元であるソフトベンダーでさえ,「正統な」学習マイルストーンを示せないでいます。

 その理由は,RIAの根幹が「与えられた部品を並べる」ことになく,「与えられた部品の組み合わせ以上の“機能”を工夫して作り出す」ことにあるためだと思います。ソフトの使い方に習熟できたとしても,それは「良いRIA職人」ではないのです。それは,ある分野やある業務に対するRIAが「唯一無比」的な実例として,語り継がれていることにも無関係ではないように見えます。

 とはいっても,作り方の基本はあります。技術習得には個別の要素があるので,ここではFlashということに限定して,その習熟過程を見てみましょう。Flashは,アニメーション作成ツールとして誕生したので,ビジネス・アプリケーション開発者にはなじみの薄い「タイムライン(時間軸)」という概念を持っています(これによって,人間が心地よさを感じる動きを作れます)。その一方で,その記述言語である「ActionScript Ver.2(以下AS)」は,JavaScriptなどと同じ「ECMAScript」という標準に準拠し,厳密な型指定とクラスをベースとしています。

 いわゆるデザイナが好む部分とエンジニアが常識としている部分とが混在していることこそが,この技術の興味深いところであり,今後のWebアプリケーション開発の何かしら基盤となる可能性を秘めるところなのだと思います。今後も様々な技術が出てくるとは思いますが,エンジニア一辺倒なものや,デザイナ一辺倒なものが,一般的なエンドユーザーの心をつかむとは思いにくいので,このFlash技術の浸透は,様々な意味で指標や比較対象として考えられるでしょう。

 さて,あるFlashアプリケーション(Flashアニメーションではありません)の開発者が,「ASの習熟度合いは時間軸に対してV字型を示す」と教えてくれたことがあります。JavaのエンジニアにASを学習させたところ,習熟の最下点までが一週間,もう一度上がってくるまでに一週間,つまり基礎を学ぶのに合計2週間が必要だったというのです。もっとも,その習熟度はテストをしながら観察したわけではなく,学習対象者の取り組みようを観察したうえでの主観的なものだと思います。

 下図は,その「V字型」に,学習者がしばしば口にすることを加えてみたものです。特徴的なのは,最初の一週間の習熟度が落ちている間,学習対象言語である「AS」への不満や言語仕様への怒りのようなものが聞かれる点です。おそらく,Javaや“一般的な”プログラミング言語にはない概念や考え方に対するアレルギーのようなものが働いているようです。


AS(ActionScript Ver.2)の習熟曲線と,学習者の心の声

 それが,一週間を経たあたりから考えることが変わってきます。出来ることの幅がわかりかけてくるようです。なので,「ならば,こんなことは可能なのか?」という欲張る気持ちが出てきます。もちろん,こうした領域に行ける人と行けない人とは存在します。それはどんなプログラミング言語でも同じです。AS学習において注意が必要なのは,最初に何かしら「拒否反応」が存在し,その先に本当の意味での「スタートライン」があるという事実です。

 例えば,「Hello, World!」という文字列を画面に表示する古典的なプログラミングの学習法があります。一般的なプログラミング言語の学習であれば,表示することが目標にになりますが,Flashの学習の場合,表示するだけでは学習者は楽しいとは思わないでしょう。Flashを学ぼうとする人たちは潜在的に,文字が表示されること以上のことを実装したいと思っていて,そこにはインタラクションや文字の変形などの要素が必須だと思い込んでいるのだと思います。

 ボタンを押したら文字が表示されるなどのユーザーの動きに対応した動作,表示された文字に映画のようなエフェクトがかかっているなどのアニメーション的な動作,表示される文字列がXMLファイルやサーバー(データベース)に存在しているようなメンテナンス性を考慮した動作——開発者本人が興味を抱く,様々な工夫の部分があってこそ,Flash開発の面白みは増幅します。


学習内容の違い

 興味のない段階で言語仕様だけを追いかけても,習熟度が増すはずがありません。自分は何をやりたいのか,自分は誰を楽しませたいのか,そうした出発点があってこそ,Flashは上達します。そして,そこにRIAの原点があると思えるのです。

 たとえ「ユーザー」が自分だけであっても,どうすればユーザーを満足させられるのかという思考は,「仕様書」を忠実に実装していくタイプの開発からは生まれません。自分ならどうするか,そういった考えの先に,自分なりの「おもてなし」とは何だろうというRIA的な発想が生まれるのではないかと思うのです。

 様々な「自分ならどうする」というアイデアがたくさん集まった学習は,実戦向きです。ユーザーを気分良くさせるということには終わりがありません。考えれば考えるだけアイデアは出るでしょう。しかし,プロジェクトには「リリース日」が存在し,アプリケーションには「テスト」や「検収」がつき物です。

 そうしたプロジェクト進行上の制約を考えたうえで,「おもてなし」を演出できるようになるには,実際のプロジェクトを何本か経験する必要があるかもしれません。そして,そうした学習は,実は個々人の努力だけではなく,プロジェクト管理の手腕にも左右されるものです。

 それでも,どんな優れた「おもてなし」も確たる技術が背景になくては実装できません。独学で勉強をするしかないのも事実です。ここで記した傾向があることがわかったうえで学習を始めると,最初の拒否反応も「そういうモノなのか」と通過しやすいかもしれません。

 アプリケーションが,データのやり取りだけではなく,ユーザーの気持ちのやり取りまで考えなくてはならない時代は,多分すぐそこまで来ています。そうした次世代Webアプリケーションに興味があるのなら,Flashは格好の勉強材料になるかもしれません。

お薦め講座
お薦め参考書:オブジェクト的なプログラミングという視点で
FLASH ActionScript 2.0入門完全ガイド+実践サンプル集
大重 美幸 (著)
ソーテック社
FLASH OOP Advanced Web design books
Flash OOPJapan (著), 株式会社バスキュール (著), 加藤 達雄 (編集)
翔泳社
ActionScriptビジュアル・リファレンス
シーズ (著)
エムディエヌコーポレーション
FlashクライアントとJavaサーバー
須賀 正明 (著)
毎日コミュニケーションズ
RIAシステム 構築ガイド 2005年版
RIAコンソーシアム

三井 英樹(みつい ひでき)
1963年大阪生まれ。日本DEC,日本総合研究所,野村総合研究所,などを経て,現在ビジネス・アーキテクツ所属。Webサイト構築の現場に必要な技術的人的問題点の解決と,エンジニアとデザイナの共存補完関係がテーマ。開発者の品格がサイトに現れると信じ精進中。 WebサイトをXMLで視覚化する「Ridual」や,RIAコンソーシアム日刊デジタルクリエイターズ等で活動中。Webサイトとして,深く大きくかかわったのは,Visaモール(Phase1)とJAL(Flash版:簡単窓口モード/クイックモード)など。