これ僕.com:行動分析学マニアがおくる行動戦略

意図と行動のギャップから生じる「不自由さ」への挑戦。果たして僕たちに自由はあるのか?

アプリケーションの形態と開発言語

個人やチームを対象にしたアプリケーションで、現状、一体どういう形態と開発言語が考えられるのか、自分なりにメモっておきたくなったので。

デスクトップアプリケーション

デスクトップアプリのメリットは、何よりもレスポンス性の良さだ。Webアプリケーションはいちいちサーバーと通信するので、その分がオーバーヘッドになる。サーバーへの負荷集中が無いという点でも、デスクトップアプリのパフォーマンス上のメリットになっているのではなかろうか。

主な開発言語

Webアプリケーション

Webアプリケーションのメリットは、データをインターネット上に保存することができる点。これにより、別のPCからも同じ環境へアクセスすることができるようになった。例えば、Gmailなどのおかげで、自宅でも会社でも容易にメールチェックができる。
今のメインストリームではあるが、何でもWebという風潮には歯止めがかかってきた感じ。Webアプリに適したものはそのまま残り、それ以外のものはハイブリッド型へと移行するのではなかろうか。

主な開発環境や言語

モバイル向けアプリケーション

多分、フロンティア的な意味で、いま一番元気がありそうなカテゴリ。特にiPhoneGoogle Androidといったあたりの注目度は、かなり高いのではなかろうか。反面、Windows Mobileは何だか乗り遅れてそうなイメージ。うん、イメージです。

主な開発環境や言語

ハイブリッド型

データはインターネット上へ保存し、デスクトップアプリやモバイルアプリを通して利用する形態。ただし、Webからも簡易的なアクセス手段を用意してあるので、ネットカフェからなどでも容易にデータを操作できたりと、実用性が一番高いパターンではなかろうか。
代表例はEver NoteやDropbox
その分、開発に必要なスキルが多岐に渡り、手軽に開発できるという印象はない。

主な開発環境や言語

これまでに挙げた諸々。


しかし、こうしてみるとJavaって強い。Write Once, Run Anywhereがしっかりと生きているのかも。でも、なんだかJavaで作られたデスクトップアプリって、重くて使いづらい印象があるんだよなぁ。最近は違うのかしら。
Windowsなら、ユーザーのことを考えれば、Visual C++という選択になりそうだ。Apple系を攻めるなら、明らかにObjective-CLinuxは良く分からないや。C++っぽいけど。
サーバーサイドは、私ならハイブリッド型を意識して、Ruby on RailsでRESTfulなアプリを組んでおきたい。
Rubyとか、ある程度本格的なデスクトップアプリだと、どこまでやれるんかなぁ。はっ!Adobe AIR(Action Script)という選択肢もあるのか。まぁ、でも、実行環境をユーザーが用意しなければいけないってのは、やっぱハードルが高めかもしれない。