Java VM(Java仮想マシン)で動作するアプレットやアプリケーションを作れないJava言語開発ツールって何だ?

 ちょっと前なら「そんなものがあるわけない」と答えればよかったが,これからはそういかなくなってしまった。米Microsoftが10月11日に発表したVisual J# .NETがまさにそうした製品だからだ。

 すでにいろいろと報じられているのでご存じの方も多いだろう。Visual J# .NETは,Microsoft社が提唱する実行環境「.NET Framework」で動作するアプリケーションやXML Webサービスを,Java言語を使って構築するためのツールである。Visual Basic .NETやVisual C#と同様に,同社の開発ツール・スイートVisual Studio .NETに組み込んで利用する。

 要するにVisual Studio .NETでのコーディングにJava言語が使えるようになるということだ。ただしこのツールは,冒頭で述べたようにJava VM向けのアプレット/アプリケーションは作れない“一風変わった”Java言語製品なのだ。

 ご存じのようにMicrosoft社は1997年以来,Javaの互換性を巡って,Javaの開発元である米Sun Microsystemsと係争関係にあったが,2001年1月に和解した。和解の条件は,
・Sun社とのあいだで結ばれていたライセンス契約を破棄する
・Microsoft社の製品には「Java互換」の商標を付けない
・既存のJava製品(Visual J++など)は今後7年間は販売できるが,バグ・フィックスを除いて製品をアップグレードすることはできない
といったものだった。この時期,Microsoft社はすでに.NETとC#を発表しており,Javaで係争を続ける意味はないと判断したのだろう。

 それから半年以上を経て,Visual J# .NETが発表された。Microsoft社は,Sun社とはまったく関連性のない製品であるとプレス・リリースに明記している。確かに,ソース・ファイルの拡張子が.javaでなく.jsl(J Sharp Languageの略だとか)になっているなど,細かい点で「Java互換」を避けている。これまでにSun社が異議を申し立てないところをみると,このツールは和解条件に反していないらしい。ともあれ,Javaが使えるけれどJava互換ではない製品が世に出ることになる。

 さて,ここで論じたかったのは,Visual J# .NETがJavaか否かということではなく,この製品の意義である。

 Microsoft社は,(1)Java言語を使って.NETのXML Webサービスを開発できる,(2)Visual J++を使ってきた開発者のプログラム資産やノウハウを継承できる,の2点を強調している。

 このうち(2)は納得できる。現行のVisual J++ 6.0は,パソコン・ショップなどで今でも毎月コンスタントに売れているという。購入者のなかには,それがアップグレードされない製品であることを知らずに買ってしまった人もいるかもしれない。こうしたユーザーにとっては,(製品の性格は変わったけれど)後継製品ができ,開発資産も継承できるとすれば喜ばしいことだろう。

 しかし(1)はどうだろうか。20種類以上のプログラミング言語に対応してもJavaが使えないのでは魅力がないと,Visual Studio .NETを批判する開発者やマスメディアがいる。またWebアプリケーション構築では,サーバーサイドJavaを使うパターンが定着しつつある。そもそもMicrosoft社がVisual J# .NETを発表したことは,それだけJava開発者が増えていることを裏付ける。だからといって,Javaをサポートすれば.NETの魅力が増す,と言えるだろうか。

 .NETでは言語によってできることの差はないと言いながらも,Microsoft社は常にC#を一押しとしている。開発者からは,C#でなければ使えない機能もあるように聞く。そうした情報を耳にすれば,Javaの得意な開発者でも,.NETではC#を使うのではないだろうか。その環境に最適なものを選択することが,ソフトウエア開発の成功率を高めると知っているからだ。

 私の周囲を見渡しても,プロの開発者はプログラミング言語に対して意外に柔軟性があるものだ。もちろん言語の好き嫌いは大いにあるが,それは使える使えないとは別の話である。仕事で必要とあらば,C#を覚えることなど造作もないだろう。ましてやVisual Studio .NETの開発環境では,Microsoft自慢のIntelliSense機能などが過剰なほどにコーディングを支援してくれる。

 Javaがないから.NETは使えないと言う開発者がそれほどいるとは思えない。.NETに対して不安を感じているとしたら,それは例えば,セキュリティの問題,一企業による独占の弊害,独自拡張による非互換(の可能性)などだろう。

 開発者にとって,対応言語を増やしてくれることは選択肢が増えるという点でうれしいことだ。しかしそれ以上に,.NETに感じる不安を取り除く姿勢を見せてもらえる方が,ずっと有り難いのではないだろうか。

(道本 健二=日経ソフトウエア副編集長)