ObjectSquare

BOF-1244

「子供のけんかに親は口を出すな!?」若手ホープ SE による代理戦争 BOF

JavaOneSM 参加レポート ― あるいは、レポートという名の暴露記事

1.はじめに

最初に宣言しておきますが、私は JavaTM エンジニアではありません。
実際には、仕事で1年ほど サーバーサイド開発の経験があるのですが、当時の興味の対象は言語仕様や仮想マシンの中身など非常に限定されたものであり、EJB やら JSP は概要を知る程度です。 ほかの技術(特にJ2EETM 関連)は、単語の末尾に'?'が三つぐらい付与されるほどの体たらく。
現在の仕事は JavaTM から遠ざかり、開発言語は C++ へシフト、さらにここ一年の興味は .NET Framework 関連。周囲から見れば非常に「アンチ JavaTM エンジニア」と映ったことでしょう。そういうつもりは毛頭ないのですが・・・。
そんな私が JavaOneSM のような「JavaTM エンジニアの JavaTM エンジニアによる JavaTM エンジニアのためのカンファレンス」に参加するとは夢にも思いませんでした。
本レポートは、ガーシュインの「パリのアメリカ人」になったかのような私が報告するマイノリティ・リポートです。

2.JavaOneSM デビュー、しかもスピーカーとして・・・

私にとっては、今回がJavaOneSM デビュー。もちろんスピーカーも初めてです。
私が参加したセッションは『「子供のけんかに親は口を出すな!?」 若手ホープ SE による代理戦争 BOF』というものです。
内容はアブストラクトによると、「各社で実際のJava コーディングを先頭切って行っているような 若手 SE が本音トークで討論します。 シニアなパネリストからは通常聞くことのできない、現場ならではの苦労、工夫、経験談をお聞かせいたします。」とのこと。
・・・弱りました。確か見た目は実年齢より若く見られるので、「若手」と言っても許されるかもしれません。 ホープかどうかは、本人が決める問題じゃないので置いといたとしても、問題は他の条件にあります。
コーディングは現役でバリバリやってますが、メインは C++ だし、苦労は人並みには経験してますが、 自信を持って語れる内容でもないし・・・。しかも、衆人環視の前で自分の意見を言えるほどの胆力もありません。

もはや、ここは開き直るしか方法はありません。パネラーは4人いるので、1人ぐらい「アンチ JavaTM」 の視点で喋るパネラーがいた方が、構成として面白いかもしれません。幸い、一緒に参加する予定の親(上司)からは賛同を貰えたので、 そのような基本姿勢で本番に臨むことを決心しました。

3.決戦は金曜日、ただし昼間

いよいよ私が参加するBOF セッションの当日(9月27日(金))です。JavaOneSM の開催地はパシフィコ横浜で、横浜市民な私には会社に行くより近いのです。
本番の2時間ほど前に到着し、さっさと受付を済ませました。スピーカーは"SPEAKER"と金色の字が印字された黄色いリボンを つけたパス(首からぶら下げるタイプ)が貰えるようです。そして、スピーカー・ルームへ案内されスピーカー登録を済ませようとしているところに、同じ BOF に参加する NEC ソリューションズの永山さんに 偶然鉢合わせました。直接の面識はありませんが、事前にメールでやり取りしてたので、一緒に BOF が行われる会場へと向かったのでありました。

会社の同僚が、永山さんと同じ大学でゼミの後輩だったこともあり(世間は狭い)、とりあえず話のとっかかりに使いながら、 世間話を進めておりました。数分後、日本総研の鈴村さん、ウルシステムズの岩崎さん、と参加メンバーが続々と集結してきました。
年齢的には上は(たぶん)30歳から下は20代後半と、年齢の開きはそんなにありません。どうやら私もこの中にあっては、若手と言っても遜色はなさそうです。 しかしやはり、みなさん JavaTM に精通しており、ホープのように(私の目には)映りました。あ〜、なんか場違いなところに来てしまったな。

テーマに関する詳細を詰めるのは、日本総研の鈴村さんが中心となって進めていきました。そこでは、4人もパネラーがいるので同じ意見をいっても面白くないということで、 各自の役割を決めました。鈴村さんは JavaTM 肯定派で、私はもちろん .NET 肯定派、残る二人は中道で穏健的な立場というスタンスで各テーマを議論していこうということになりました。
そうこうしているうちに BOF の本番開始時間となってしまい、各自はなぜか「デューク人形」(私は岩崎さんの個人所有物を拝借)を片手に各自の席に着きました。

4.賽は投げられた

4.1.ランチタイム BOF

BOF は夜にやるものと勝手に想像してたのですが、今回の BOF は「ランチタイム BOF」といって、昼間に聴衆がランチを食べながら気軽にセッションを聞けるものです。 蛇足ながらスピーカーはもちろんランチを食べることはできません。朝から何も食べてない私にとっては、拷問のような50分です。こうして緊張と空腹の二重奏に苦しめられながら、モデレータの田口さんの発言を皮切りに、 おごそかに BOF はスタートしたのでありました。

4.2.JavaTM って難しいですか?

最初に、モデレータの田口さんが会場の参加者に「JavaTM は難しいと思いますか?」という質問を投げかけます。あんまり手は上げなさそうだろうなぁ、という私の予想を裏切り約半数ほど手を上げました。
おそらく、これは "JavaTM" の定義に対する解釈の違いによるものと思われます。単に言語仕様としての JavaTM なら大方の人は難しいとは思わないはずです。 個人的には単純さ(simplicity)を明確に打ち出している JavaTM 言語仕様(JLS) は、よく出来ていると思います。手を上げた方は JavaTM 言語と、その周辺技術を含めた 「JavaTM プラットフォーム」をきっと想像したのでしょう。

確かに JavaTM 言語で単純さを意識し、1995年に JavaTM が登場して以来、仮想マシンに対して言語仕様を拡張するような大きな変更は、私の知る限りではなされていません。 Java Generic や assert 機能なども、基本的にはこの方針にそって実装がなされていることから、その点は理解していただけることでしょう。
その反面、JavaTM がカバーしなければならない範囲は年を追うごとに広がっています。それに対する JavaTM の解答はライブラリやフレームワークを拡充することでした。また、各要素技術の関連には統一性が欠けているように思います。たとえば サーバーサイド と クライアントサイド には異なる(しかも複雑な)プログラミングモデルが要求されています。
実際の開発においては、さまざまな技術を適切な部分に適用しなければなりません。しかし JavaTM には、それらをシームレスにつなげるような「糊」となるべき要素が見当たらないのです。そういうわけで、結局は自分でコードをせっせと記述することになります。また、本来なら、ツールを使って自動生成するような部分も、自分で記述しなければならない場合も多分にみられます。
このように単純な(simple)言語仕様と、複雑な(complex)要素技術が相成って、 simplex な状況を生み出した点が、 JavaTM プラットフォームの理解を難しくしている要因であると私は考えています。今後もこの傾向は強まっていくことでしょう。

4.3.フレームワーク談義

JavaTM の世界はフレームワークだらけです。同様のドメインを対象とするフレームワークがいくつも存在します。
市場主義経済の観点からみれば、このように選択肢が多く存在することは歓迎すべきことです。市場競争の原理から製品が淘汰され優れた製品が残る(らしい)ので。
しかしながら、私にとってはそんなことはどうでもよろしい。フレームワークが多く存在するおかげで、開発言語は JavaTM なのにプロジェクトごとに異なるフレームワークを採用し、毎回のようにフレームワークに対する習熟というタスクを含めなければなりません。
新しい知識を習得することは技術者にとって喜びとしなければならないことは理解しているのですが、どれも似たり寄ったりの機能なので新味も無く、鬱陶しい限りです。

その点、後発の .NET は非常に楽です。
プレゼンテーションレイヤは ASP.NET か WinForm で、ビジネスレイヤは、ASP.NET でもコード・ビハインド機能を利用すれば、 プレゼンテーションレイヤから切り出すことができ、永続化関連は ADO.NET と、使用する技術がある程度決められてるのです。しかも、ASP.NET と WinForm は共にイベントドリブンの プログラミングモデルで(瑣末な違いはあるにせよ)統一されており、Visual Studio .NET という強力な IDE を使えば、これらは同じような感覚で実装できます。

これは、すべての仕様を Microsoft がコントロールできるからこそ実現できたでしょう。翻って JavaTM の世界では、Sun が他のコミュニティと歩調を合わせる姿勢を打ち出している以上、不可能ではないにせよ困難であることは想像に難くありません。ベンダー毎に実装の詳細やツールの使い勝手が大きく異なるため、EJB など基本的なアーキテクチャが統一されていても、結局その実装の詳細を意識することや、ツールの使用法をイチから学びなおすことになり煩雑です。。
個人的には、Borland の JBuilder やオープンソースの eclipse などの Java IDE の Add-in (Plug-in) としてツールを拡充していく方向に向かってくれたら嬉しいと思います。 そうすれば、IDE に習熟すれば一通りの操作はできて、利用者は楽チンなのですが。
特に Borland には Turbo Assembler 3.0 の頃からお世話になってるという(非常に)個人的な理由から、頑張って欲しいと思っています。

5.セッションを終えて

緊張してたこともあり、50分という時間枠は思ったほど長くなく、あっと言う間に過ぎ去っていきました。
ちなみに、BOF には「ベスト BOF セッション」の投票があり、参加者が会場で渡される3つのビー球を、セッション終了後に出口で用意される 投票箱に、好きな数だけ入れることにより決められるものです。
我々の参加した BOF は第2位と非常に健闘したそうです。よかった、よかった。

スピーカ・ラウンジ(たぶん、こんな名前だったと思います)に案内されると、中にはカフェテリア形式の昼食が用意されてました。 私は無事セッションを終えた安堵から、空腹感が極限まで高まってので、人間の三大欲求の1つを満たすべく、食後のデザート(ケーキ) も含めて、しっかりといただきました。

さて、一風変わった JavaOneSM 参加レポートはこれで終わりです。
最後に感想を述べると、他の若手ホープな SE の知識の深さには頭が下がる思いでした。ああいう人たちが、これからの IT 業界の将来を担っていくわけですねぇ。
とりあえず私は、JavaTM への知識を深めるために、仕事に関係ありそうな読み掛けの JSR-01 でも読破しよ〜っと。

(株)オージス総研
林 俊樹

© 2002 OGIS-RI Co., Ltd.
HOME HOME TOP オブジェクトの広場 TOP JavaOne Index INDEX