「Java はクライアントデバイスからは消えていく運命なのか? – インターネットコム」という記事を読みました。ここでのクライアントデバイスというのは、WebブラウザにプラグインされているJava VM のことだと考えて良さそうです。この記事の著者は、Javaの将来に対して悲観的な意見を持っていますが、ここまで普及したプログラミング言語が、そう簡単に消えていくとも思えません。
開発者から見ると、マルチプラットフォームで動作するプログラムを簡単に開発ができるという視点から、Javaの価値というのはなくならないと考えています。もちろん、ハードウェアの性能を引き出したい場合には、アセンブリ言語やC/C++で実装する方が良いこともありますが、プロトタイプ版を開発するには便利です。
Java VMがあれば、Ruby、Python、JavaScript, PHPの実行環境も用意できるので、これらのプログラミング言語のネイティブ環境がないハードウェア上でも、こういった人気のスクリプト言語もすぐに使えるようになるはずです。
とはいえ、Javaで実装されたデスクトップアプリケーションというのは、実はそれほど多くはなくて、Eclipseのような開発環境の方が目立ちます。そもそもデスクトップアプリケーションの存在自体、いつまで必要とされるのか、という状況で、Webブラウザプラットフォーム化の波が押し寄せてきているので、分野そのものがなくなったら、そこでJavaは使われなくなりそうです。そういう意味では、先ほどの記事は正しいのかもしれません。
ということで、デスクトップアプリケーションとしては何が残るのかを考えてみる必要がありそうです。プロフェッショナルな用途に特化されたツール、開発環境、DTPソフト、デバイス用アプリ(DVD-Rを焼いたりするようなツール)は、デスクトップアプリとして残っていくような気がします。Webアプリとして実装されるものもありそうですが、そういうものは一般者向けの軽量版になるはずです。このとき、「各OSで同じアプリを提供するのに、C/C++、Java、JavaScriptから1つ選ぶとしたら、どれになるか」ということを考えてみると、どうでしょう。JavaScriptをここで入れているのは、JavaScriptのRuntimeもそのころには普及している気がするからです。移植にあたっていろいろと考慮は必要だけどパフォーマンスを求めるなら、C/C++。Webアプリ版とデスクトップ版のコードを共有して開発したいならJavaScript。できるだけ多くのプラットフォームをすぐにサポートしたいならJava。そんな採用基準が出てきそうです。うーん、やっぱりJavaは不利になりますかねぇ。
Javaなら、サーバサイド、Androidと使いどころが多く、マルチプラットフォームのデスクトップ版アプリも作れるため、開発言語としては引き続き一定の地位を維持すると思いますが、デスクトップマシンのユーザがどれくらいJavaプラットフォームのアプリを使うかというと、たしかに厳しそうです。