ひがやすを技術ブログ

電通国際情報サービスのプログラマ

いっちゃ悪いけどGAEでJavaを選択する場合の最大の理由をわかっちゃいないね

いっちゃ悪いけど、 GAE で Java を選択する場合の最大の理由をちゃんと解ってて話をしているとは思えない。
タイトルの通りだけど、Javaはすでに十うん年を一線で過ごしてきた言語だ、過去のコード資産が莫大にあるはずで、それを活用する場合は GAE で Java を選択する事のメリットがある。
「うん十万行の既存コードをそのまま投入できる。それにインターフェースするために多少オーバーヘッド気味のコードが数100行必要なのが何の問題がある?」これを言えないJava 使いはコード資産って物が無い貧乏人だし、過去資産に物を言わせないJavaなど相手にするのがあほくさいぐらい貧弱なものだ。

そのままの言葉で返すけど、いっちゃ悪いけどGAEでJavaを選択する場合の最大の理由をわかっちゃいないね。Javaの豊富な標準ライブラリを使えるというのは、大きな利点だと思うけど、過去に自分たちで作ったような既存のコードは実は余り役に立たない。


なぜなら、過去に作ったやつは、結構データベースが絡んでいる機能が多く、RDBMSがつかえないGAEでは直接は役に立たない。Bigtable用に移植すればいいんだけど、BigtableRDBMSとは途方もなく機能が異なるので、簡単には移植できない。
たぶん、一番の近道は、過去の知識は生かしながら、技術的には一から設計してやり直すことだ。
もちろん、既存のコードが役に立つ場合もあるだろうけど、割とユーティリティ的なものにとどまるだろう。そういうやつは、昔は自作が必要だったものも、標準のものをそのまま使えば事足りるケースも多い。


BigtableにからまないWebフレームワークだって、GAEのSandboxの制限に引っかかってそのままではうまく動かないことが多く、だましだまし使える機能だけ使っているのが現状だ。
とてもじゃないけど、「うん十万行の既存コードをそのまま投入できる」とは思えない。


じゃ、なぜGAEでJavaを選択するのか。

  1. Javaが好きだからだ。
  2. Javaに慣れているのでGAEで開発するには一番効率がいいからだ。


他の言語の人も、大体同じ理由でしょう。自分の力が最も発揮できる言語を使うのが一番。


コードではなく、過去の知識や経験はGAEに持ち込めると思うよ。でもそれは他の言語の場合でも一緒。