読者です 読者をやめる 読者になる 読者になる

太陽がまぶしかったから

C'etait a cause du soleil.

Javaは死なん。Googleによって何度でも甦るさ!

http://www.flickr.com/photos/18154819@N00/2237640
photo by jf1234

いま、Javaがアツい

 JavaによるWEB+DB業務アプリ制作を生業とする凡百なIT土方のスキルセットは、Perl、Python、PHPといった池(ピー!)な言語とは違う領域にあり、無料で使用できるインフラ方面の制約からオープンでリテールなWEBアプリケーション制作にはあまり役に立たないという問題があった。Javaが動くレンタルサーバは、例えばPerlが動くそれと異なり、それなりの金額が掛かる。

 また携帯電話アプリケーション開発についてはiModeでの偽JavaやAUのBrew(C++)、そしてiPhoneでのObjectiveCという、これまたキチ(シー!)な言語を使用する必要があり、これまた凡百なIT土方のスキルセットとマッチせず、あまり食指が動かなかった。

 以上のスキルアンマッチングは、構造不況によって恒常的な残業や休日出勤をするほどの仕事は失ったIT土方の創作意欲を満たすためには、あまりに悲しい現実の壁をそびえさせており、逆説的にWeb系方面の技術者保護の参入障壁ともなっていた。SIerからWeb系に転職するにはやっぱり勇気がいる。この状況を変えたのがGoogleであり、ひとつはGAE(Google App Engine)、もうひとつはAndroidである。

Google App Engine

 GAEはGoogleによるクラウドインフラ上にJavaやPythonで開発したWEBアプリをデプロイして実行できる環境であり、BigTableによるデータストアやCronによる定期実行までサポートするサービスである。仮想VMアーキテクチャとして非常に面白いものを持っていて研究のしがいがあるものの、一般的な使用においては無料で十分に賄えるJavaサーブレット環境と思えば、これは破格の存在であるといえよう。

 一般的なRDBを使えない点や、使えないクラスがある点は問題となるが、パーシステンスとしてBigTableが使用できるため、特殊なlibを回避する事やデータ周りをBigTable対応にするぐらいで比較的低コストでこれまで作成したJavaアプリケーションを移植する事も可能である。いちから作る場合には散々やった既存の作成手順とほぼ同じで違和感なく作成できるはずだ。

 僕自身もAndroidの情報をまとめてTwitter上にポストするBotをテストがてらに作成したが、これの制作時間は4時間ほどで可能であった。Twitter BotはTwitter自体をViewやデータストアとして使用できるため、さらにスケール絡みの難易度が下がるため、まず作ってみるのに調度良い題材であると思う。

Android

 次にAndroid。Androidは、これまたGoogleが作成した携帯電話機用のプラットフォームであり、2009年7月に日本語端末がドコモより発売されたことで日本でも俄に盛り上がりはじめている。iPhone3GSとの競合や端末自体の出来の問題もあって、あまり評価が高くないという問題があるが、この開発環境がDalvikという専用VMで動くJavaである。Googleとの連携機能が充実しており、Gメールのプッシュも可能だし、例えばGoogleマップとのマッシュアップ・アプリケーションなどの敷居は非常に低い。

 またAndroidにはiPhoneとの最大の違いとしてマルチタスクとインテント(共有)という概念があり、これが任意パイプとも言うべきシームレスなアプリケーション連携の気持ちよさと「役に立つ」までの開発規模の敷居値をさげてくれるショートカットの源泉ともなっている。

 さらにはAndroidマーケットという公開環境もiPhoneの敷居の高さとは異なり、ただ$25を開発者登録料金として払えば、審査なしで好きなだけアプリケーションをマーケット登録する事が可能である。良くも悪くも無料公開文化であるため、一攫千金というのは難しいかもしれないが、現時点での競合者の少なさと機能不足もあって一気にデファクト・スタンダードになれる可能性も秘めている。こちらは組み込み独特の難しさというハンデが多少はあったものの累計20時間程度で簡単なアプリ作成からマーケット登録まで行うことができた。

GAEとAndroidの連携

 そしてGAEとAndroidの連携である。GAEによるクラウド化したWebアプリケーション制作、クラウド化したアプリケーションを携帯して使いこなすためのAndroid。これを組み合わせることによって、携帯ユーザインタフェース、クラウド・ビジネスロジック、(マッシュアップ先の)データベースという新・三層アーキテクチャによるモバイルリッチクライアント・クラウドサーバーシステムを無料かつ使い慣れた技術で構成できる。我々はJavaで金を稼いできたプロではないか。あとはアイディアとちょっとの追加スキルと労働力の問題だけである。マネタイズは依然として難しいかもしれないけれど!

 万国のIT土方よ! 我々の仕事を奪う「敵」であったはずのGoogleは、卑怯にも我々に快楽を与えるハニー・トラップを用意して我々までも電池として取り込むことを選択した。しかしながら、現在のまま個別開発の人売りIT業を続けてもジリ貧になるのも事実。強引に変えられるであろうルールの混乱に乗じて、今こそ持て余した暇と使い慣れたJavaというゲバ棒を存分に振り回し、手と雲に構築されるであろう新世界が構成されるまでの階級闘争に打ち克ち、革命を成し遂げようぞ。我々はその武器を持っている。その手の平に電子雲の未来を映し出すのだ!

プログラミング Google App Engine

プログラミング Google App Engine