社外セミナー クロスコミュニティカンファレンス(Cross Community Conference )

昨日の午後、以前に社内SNSで紹介されていた
クロスコミュニティカンファレンスに行ってきました。
 http://www.java-users.jp/contents/events/ccc2007fall/session.html


12時前に会社を出て、有楽町の国際フォーラム前のワゴン屋台でタコスを食べて、会場へ。


思ったより広いところで椅子もいっぱい。
受講案内に混雑すると書いてあって、座れなかったらどうしようと思ってたのですが、余裕でした。


今日のプログラムは以下3つですが、
私はそのうち[1][2]だけ参加しました。 
 [1]Googleの分散処理技術
 [2]Webアプリケーション開発の今後を占う
  ポジショントーク
  パネルディスカッション
 [3]ライトニングトーク


[1]Googleの分散処理技術
稚内北星学園の丸山先生という人の講演。
高校時代の友達が稚内北星学園の東京サテライト校に行っているので、
ちょっとだけ親しみがありました。
内容は最初に分散技術がなぜ重要かという前ふりがあって、
中心はGoogleFileSystemやBigTable,MapReduceというGoogle内で
分散処理を行うために開発した技術の話でした。


今すぐ分散処理が必要という人はまだ少ないかもしれないけれど、
今後いろいろなものがサービス化されて、それぞれのサービスに負荷がかかるようになると、
分散処理を考えなければならなくなる。
でもGoogleは既に、その分散処理が必要になっていて、
分散処理技術の最前線にいる。
ここから学ぶことは多いという流れで話が進みました。


Googleの分散処理技術には以下のようなものがある。
 ・GoogleFileSystem
 ・BigTable
 ・MapReduce
 ・Sawzall
これらを詳しく話すと時間がかかるので、
詳しくはサブセミナーへという別セミナーへの誘導になってました(笑)


最後にGoogleクローンがオープンソースでできつつあるというのがあり、
ApacheLuceneHadoopというのが紹介されました。
Lucene全文検索エンジンというので聞いたことがありましたが、
Hadoopは初めてでした。
Hadoopは開発も活発なようで注目らしいです。

⇒資料ダウンロード
 http://www.c-sq.com:80/modules/article/article129.html


[2]Webアプリケーション開発の今後を占う
JavaRubyの3つのフレームワークの立場からのお話ということで、
3人の方がお話してくれました。
 Seasar代表 ひが やすを氏
 Ruby on Rails代表 高井 直人氏
 Spring Framework代表 鈴木 雄介氏


Seasarは生産性をあげるには、ツールが高機能になるよりも、
開発者の流れを止めないというのが重要という思いがあり、
「HotDeploy」やDBアクセスの「流れるようなインターフェース」ができたそうです。


Railsは、Webでサービスを運営するために特化していて、
その範囲でとても高い生産性をあげることができるものというお話でした。
Basecampというサービス開発でのベストプラクティスを集めたものという生い立ちもあり、
すばやくサービスを立ち上げて、その後変化しつづけながらサービスを継続する
というスタイルにあてはまるならば生産性があがるということです。
Rails2.0の話もされていて、ActiveResourceが登場して、
RESTfulなフレームワークになるよということでした。
クライアントサイド、サーバサイドともに支援する機能があるそうです。


Springはちょっと変わっていて、
Railsフルスタックとは対照的にビジネスオブジェクトをマネジメントするという
ところに特化しています。
なので、UI周り、DBアクセスまわりはなんでも他のものを組み合わせられます。


最後にパネルディスカッションを聞いて感じたことを。
 ・JavaではやはりIDEは重要
  ちょっと忘れたと思っても、IDEが助けてくれる。
  Rubyだとリファレンス見るとか、irbで試すとかになることも多いので、
  そういう意味では作業を止めずに生産性をあげるというのには合っていそう。
  でも、最近ある試験で手書きでいっぱい文字を書いたときに、
  字がかけなくなっている自分がいて、IDEは一度使ってしまうともう戻れないというか、
  ある部分は退化してしまうのだろうなとも思います。


 ・フレームワークはどんな人(仕組みが分かっていない人)でも使えるのが売りではない
  大勢の人数で開発するときの品質や生産性を一定にするという意味もあるにはあるのだけど、
  仕組みはちゃんと分かっている人を助けるものというのが本来の姿。
  最初は分からず使い始めてもよいけど、最終的にはこれを書いたら何がどうなってというのを
  分かってないとそれなりのリスクがある。
  誰でも本当に同じものが作れるようにするとがちがちになりすぎる、
  プログラマの創意工夫とかが入らなくなるというのもあるし、バランス感。
  ひがさんのそんなお話を聞いて、そうだよなと。
  数年前のできごとを思い出しました。
   あるPJにヘルプとして1ヶ月くらい参加したときのこと。
   PJのフレームワークというかルールがあって、それにのっとって開発するように言われていて、
   でもそれにはもっと別のやり方もあって、そのほうが簡単でバグも減ると思うものがあって、
   ルールを変えませんか?と言ったけど通じなかった。


このイベント、Sunのイベントの一環として開かれていたのですが、
最初にサプライズとして、ジェームズ・ゴスリン(Javaを作った人)が登場しました。
とはいえ、通訳なしで当たり障りのないスピーチをして終わり。
丸山さんとランチしたのねってことしか印象に残ってません。。


あと、SunのイベントってことでSun Rayのデモもやってました。
売り出し中なんだなぁ。