特集 

J#の真実
Part 2 JavaからJ#へ:プログラム移植の実際


株式会社ピーデー 川俣 晶
2001/11/16

Page1 Page2 Page3 Page4 Page5

Visual J# .NETにチャレンジする

 Visual J# .NET(以下J#)をひと言で説明すれば、「Visual Studio .NETのアドオン・ソフトとして機能する開発環境で、.NET Framework上で稼働する実行ファイルを生成するためのJava言語の処理系」である(J#の概要については、別項の「Insider's Eye: .NET版Java言語「Visual J# .NET」オーバービュー」を参照)。ここで重要なポイントは、実行環境、つまりJava VM(Java仮想マシン)の互換性まで含めたJavaプラットフォームをサポートするものではないし、それを前提とするプログラム開発環境でもないことだ。つまりJ#では、確かにJavaの構文でプログラムをコーディングできるものの、開発したプログラムは、Java VM上では実行できない。その代わり、Visual Basic .NETやManaged C++、そしてもちろんC#で書かれたソースと容易に組み合わせて利用することができる。これが額面どおりに機能すれば、現場レベルでは比較的よく出会う「JavaからC#への乗り換え」を検討する者たちには福音になるだろう。例えば1本のプログラムであっても、過去のコーディング分はJavaで、未来のコーディング分はC#で書くことができるからだ。

 さて、J#はまさに筆者にジャストミートな製品と感じられた。なにせ筆者は、JDKが1.0.2の時代から、「りすと亭」というメーリング・リスト配信ソフトを開発してリリースしてきたのだが、さまざまな問題からJavaによる開発を継続することは困難になっていたのだ。誤解がないように書いておくと、Javaは良い言語である。特に、開発効率が著しく高く、おそらくC++で書くよりも10倍以上生産性はよいのではないかと感じる。Javaでなければ、このソフトは、筆者が割ける時間内にはここまで出来上がらなかっただろう。だが、そのような優れたメリットの裏側では、主に政治的な思惑(MicrosoftとSun Microsystemsの確執)に起因する、さまざまな欠点が利用者に影響を及ぼしていた。その結果、りすと亭の開発は暗礁に乗り上げてしまった。幸い、C#という別の答えが提示され、Windowsに限れば快適に開発が進められそうだと分かったが、すでにJavaで書いたソースを手動でC#に書き直していたら、とてつもなく時間がかかってしまいそうだ。筆者がJ#に強い魅力を感じるのはそのためだ。ソースがJavaのままでも、実行環境がMicrosoftやSunの確執とは無関係だというなら、筆者の希望は満たされる。さらに既存コードはJavaのままで、新規開発分からC#で書くという荒技もできる。

 このような野望を持った筆者は、心勇んでJ#をダウンロードしたのであった。はたして、筆者の野望は達成したのだろうか? 前述した「リスト亭」というJavaプログラムを実際にJ#に移植してみて、気付いたことなどをレポートしよう。

ハードルが高いインストール

 今回公開されたJ#は英語版のベータ1である。リリースノートをよく読むと英語版の環境にしか使えませんと書いてある。実際に日本語版のVisual Studio .NET(以下VS .NET)にインストールすることはできないらしい。またVS .NETばかりでなく、OSも英語版でなければならないらしい。筆者のテスト・マシンは、日本語版のWindows 2000 Serverがインストールされていたのだが、「ええい何とかなるだろう」とデフォルトのロケールや入力言語を“United States”や“英語”に切り替えて、J#のインストールに挑戦してみた。その結果、日本語版Windows 2000環境へのVS .NET英語版ベータ2とJ#英語版ベータ1のインストールに成功した。

 以上の経緯から考えると、通常のユーザーがJ#をインストールし、環境を構築するためのハードルは高いといわざるをえない。OSよりもJ#よりも、VS .NET英語版ベータ2が国内には出回っていないためだ。日本語版のVS .NETベータ2は、プログラミング系の雑誌などにDVD-ROMが付属したので、簡単に入手できるが、英語版はこのように広く配布されているわけではない。

 従って現時点でJ#環境を構築したいと思うなら、腹をくくって万策を尽くし、自分の責任で必要な環境を手に入れるか、あるいは、いつの日か出るであろう日本語版のJ#のベータ版を待つしかないだろう。この原稿執筆時点での情報では、J#日本語版が登場するのは、来年(2002年第2四半期)だとされている(J#の提供スケジュールについては、「特集: J#の真実 Part 1」を参照)。

 なお、本稿に続く特集の第3弾として、編集部で実験して確立されたJ#英語版のWindows 2000日本語版+日本語版VS .NET環境へのインストール方法が紹介されるそうである。もちろん保証はない方法であり、自分のリスクで作業する必要があるが、すぐにでも手に入れたいという人は参考にするとよいだろう。

 

 INDEX
  [特集]J#の真実
Part 2 JavaからJ#へ:プログラム移植の実際
    1.Visual J++ 6.0からの移行とコンパイラの互換性
    2.ライブラリの互換性(1)
    3.ライブラリの互換性(2)
    4.Javaと他言語のインターフェイス
 


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間