ミッションたぶんPossible

どこにでもいるシステムエンジニアのなんでもない日記です。たぶん。

第一回Flex勉強会の感想 「基礎知識」編 2

先週から社内でFlex3勉強会の第二回目の参加者の募集を始めています。割と前回の評判が社内でも良かったので結構楽観視してたんですが、いやぁ世間(社内だけど)は甘くない、予想に反してちっとも参加者が集まりませんな。これまでに応募してきてくれたのは、自分の直属の部下二人を除いて、あとは前回のリピーターのみです。う〜ん、何が悪いんだろ?


というわけで、ちょっと間が空いてしまいましたが、勉強会の感想の続きを書いてみたいと思います。


HTML未経験者はFlexでもレイアウトが作れない

Flexは「MXML」という、XMLをベースにした言語(?)でレイアウトを作成するのですが、HTMLを書いたことのない人に、課題としてこれをやらせると、結構苦戦する事が分かりました。Canvus上で座標指定によってある程度強引に完成することができた人もいましたが(前回はこれでも正解にしました)、VBoxやVBoxを重ねて、その上でverticalAlign属性やhorizontalAlign属性を設定する、という過程を踏もうとするとパニックになってしまうんです。要は、HTMLでtable組んだり、valignやalignでレイアウトを調整した事無いと、その辺の経験が無いから分からないんでしょうね。


今回は開発環境にFlash Develop3を使用したので、Flex Builder3と異なりデザインビューはありません。だから、どうしてもコードベースでレイアウトを作る必要がありました。Flex3 Builder3であれば、Adobeの謳う「直感的なレイアウトの作成」も可能です。オレ自身は実はほとんどデザインビューを活用せずに開発を行っているのですが、コードベースの開発でも「直感的なレイアウト作成」という謳い文句に違和感を持つ事はありませんでした。でもそれも、HTMLの記述経験はそこそこあるからこそ、なんですよね。


次回の勉強会では、このレイアウト作成の課題を大幅に増やす事を決めています。本当はHTMLから書いて貰っても良いのですが、いくらなんでもFlexを勉強するには遠回りし過ぎる、と考え、今回は見合わせています。


オブジェクト指向型言語の習得を参加条件にすることのリスク


前回と次回の勉強会では、オブジェクト指向型言語、つまり私の所属会社ではJavaなのですが、これが業務上支障無く書けるレベルである事を参加条件としました。Javaは新人研修で教えているので社内でも習得率が高いこと、これを教えていると時間がいくらあっても足りない事です。


実は前回はラーニングセンター卒業直後の、本当の意味ではオブジェクト指向を理解してない参加者が一人だけいました。で、彼は事実、複雑な処理になるとあっという間に周囲についていけなくなり、また、オレがいくら丁寧に説明しても、そのポイントだけは理解できても本質的な理解が深められない、という状態に陥りました。


次回の勉強会の告知でも、参加の必須条件を以下のようにしています。
JavaもしくはJavaScriptと言ったオブジェクト指向型言語に対して、開発を能動的に行える最低限の知識・技術を習得していること。」

たぶん応募者が少ないのも、このせいなんじゃないですかね。多少脅し気味の文章にも読めますが、相手の覚悟も見ておきたい、という思いがあります。結構親切丁寧に教えるつもりでいますんで、それに応えてほしい、というオレの傲慢でもありますが、実際問題、オブジェクト指向をオレが自身の言葉で言語化して短い時間の中で相手に伝えられるほどの理解や自信は無いのです。

もちろん、この問題をクリアしないと裾野を広げる事はできません。今後の課題として残していますが、なかなか難しいテーマでもあると思っています。


Flex2の内容をベースにカリキュラムを構築している


といっても、使用しているSDKFlex3ですが、内容自体はFlex3から新しく取り上げられたコンポーネントやクラスを使用していない、という意味です。これはオレの従事案件でメインで使用しているのがFlex2.0.0で、おかげさまでちっともFlex2.0.1以降の技術要素に触れられずに今日まで来てしまった、というどーしょーもない理由があります。オレ自身が理解してないのに、他人に教える訳にはいかないので、AdvancedDataGridなど、Flex3から使えるようになった機能に関しては、勉強会では扱わない事にしました。本当に申し訳ない限りですが、勉強会レベルであれば、それで支障無いでしょう。
もちろん、将来的にはFlex3の内容もサポートしたいと思っています。・・・まぁその頃にはFlex4(Gumbo)が正式リリースされているかもしれませんが。


ちょっと面白かったのが、勉強会用に課題アプリを開発していたときの事です。従事案件先でFlex2.0.0でコッソリ開発しておいて、自宅にそのソースコードを持ち帰ってFlex Builder3で立ち上げると、たまに動かなかったり挙動が変わっていたり、といった不具合が出てしまうことがありました。逆にFlex2で全然うまくいかない処理がなぜかFlex3だとコロッと動いてしまったり、ということも。Flex3は下位互換80%以上、と聞いていましたけど、あんまアテにならんもんですねwww。


本当はJavaScriptの勉強会を優先すべきじゃなかったんだろうか?

上記のオブジェクト指向の件や、XMLによるレイアウト作成の件を考えると、本当に社内で優先すべきはFlexではなくてJavaScriptだったんじゃないだろうか? と思うことが、一回目の勉強会以降、度々ありました。Flexの勉強会を開催するには、社内の技術レベルが低すぎたのではないか? で、たぶんこの考えは間違ってないと思います。だからこそ、ちょっと参加条件に書いた文章の内容や口調が強くなると、怖じ気づいてしまうんでしょう。


将来、社内で主戦力にしたい技術要素はAdobe Flexやその派生要素であり、これは今も昔も変わっていません。ただ、現場では依然とRIAではない、従来型のWebアプリケーション型システムの開発が主流です。Ajaxほど複雑ではないにせよ、JavaScriptも使っています。であれば、需要もJavaScriptの勉強会の方が多かったでしょう。「役に立たないものをわざわざ休日に出てきて学ぶほど暇じゃない」そう思っている人も多いのだと思います。


おそらくは各個の意識もRIAを含めた最新技術にはまだ向いていません。自分のところの社員、つまり家族であり仲間である人間を卑下するようで非常に気が引けるのですが、技術や市場、環境の動向に対して目を向けている人間が非常に少ないのです。危機感が足りないと言い換えてもいい。事実、オレ自身も部門長になるまでそうでした。そういう人間に対して、「Adobe Flex」はおもちゃの域を出ない、新しすぎるものに映るのかもしれません。


まぁそうは言っても今更勉強会の方針の転向はできませんし、なにより「Flex」はよりRIA的でAjaxよりも手軽にUX開発を体験してもらえるFWだと思っています。これは、自社の技術最高責任者でオレの師匠である人とも意見が一致しています。彼は「AjaxFlexと比べて面倒なことが多すぎる」とも言っていました。(まぁ彼自身の興味はAndroidJavaFxに既に向いているようでしたが) そういう意味では、オレの当初の判断は間違ってないとも思っています。


もちろん、この課題を放置するつもりもありません。JavaScriptに関しては、来期(2009年07月〜)の勉強会開催を目指して準備をしたいと考えています。今は様々な課題はあれど、Flexの勉強会に全力を注ぎたいと思います。




すみません、この話、もうちょっとだけ続きます。