Insider's Eye Microsoft、JavaからC#へのソースコード・コンバータを発表―― Javaプログラマを.NETに呼び寄せる「呼び水」となるか? ―― デジタルアドバンテージ2002/02/08 |
「開発環境にご不満のJavaプログラマの方はこちらへどうぞ」
米Microsoftは、Javaプログラマを.NETに振り向かせるためのカードをまた1枚きった。これはJava Language Conversion Assistant(以下JLCA)と呼ばれる開発サポート・ツールで、このJLCAを使えば、Javaで記述されたプログラムを、C#のソース・コードに変換することができる(実際にはVisual J++ 6.0のプロジェクトを、C#を使用したVisual Studio .NETのプロジェクトに変換する)。この際には、言語仕様の違いだけでなく、ライブラリ呼び出しの部分もJavaのクラス・ライブラリから.NET Frameworkに変換してくれるというから心強い。
すでにMicrosoftは、Visual Studio .NETに対応した開発言語として、Visual J#を発表している(VJ#の詳細については別稿「Insider’s Eys:.NET版Java言語「Visual J# .NET」オーバービュー」「J#の真実:Javaプログラマに.NETの世界を開く」、「JavaからJ#へ:プログラム移植の実際」を参照)。今回のJLCAは、このVJ#に続くJavaプログラマ向けのアプローチで、これにより、同社が約1年前から進めていた「Java User Migration Path to Microsoft .NET(JUMP to .NET)」(Javaユーザーが.NETに容易に移行できるようにするための移行パス)の戦略が完成することになる。
2002年2月5日付けでニュース・リリースが発表されると同時に、JLCAのベータ版がインターネットからダウンロード可能にされた(JLCAベータ1のダウンロード・ページ)。このJLCAは、将来的にはVS .NETに標準で組み込まれる予定だという。つまり将来は、Microsoftご自慢の開発環境の中で、JLCAを使った既存のJavaプログラムからC#への移行や、VJ#を使ったJavaプログラムからMSILへの直接のコンパイルを含め、インターネット時代の新しいプログラミングをVS .NETの中で完結できるようになるわけだ。「JLCAはJavaプログラマに対し、.NET Frameworkを通じてXML Webサービスを開発するためのさらに別の選択肢を与えることになる」と米Microsoft社 Developer Marketing and Enterprise Tools担当副社長のトム・バットン氏は語る。
JLCAはMicrosoftが開発したものではない(VJ#はMicrosoftの開発)。JLCAを開発したのはArtinSoft社というソフト会社で、ArtinSoft社は、VB 6からVB .NETへのアップグレード・ウィザードを開発したところでもある。同社はこのとき培った.NET Frameworkのノウハウを生かし、今回のJLCAを開発したという。
ArtinSoft社は、JLCA Enterprise Edition(JLCA EE)と呼ばれる、今回公開されたJLCAのスーパーセットとなるJava→C#コンバータの製品化を進めている(つまり、JLCAはJLCA EEのサブセットという位置付けになる。ArtinSoft社のJLCA EEのニュース・リリース)。JLCAは、基本的にJDK 1.1.4ースのVisual J++のソース・コード・コンバータであるのに対し、JLCA EEはJava 2EEの言語拡張やJava Beans、EJB(Enterprise Java Beans)、Swing、XML、RMI(Remete Method Invocation)に対応している。ArtinSoft社の説明によれば、JLCA EEを使えば、既存のJavaソース・コードの99%は自動的にC#に移行可能だとしている。「既存のJavaアプリケーションを手作業で書き直して.NETプラットフォーム対応にするより、20倍作業時間を短縮できる」とはArtinSoft社のCEO、カルロス・アラヤ(Carlos Araya)氏の弁。JLCA EEの正式版は2002年後半に発表予定で、ArtinSoft社では、これと同時期にJavaからC#へのコンバートに関するコンサルティング・サービスを開始する予定だ。
最後になったが、試しに次のようなJavaで記述した簡単なサンプル・コードを含むVisual J++ 6.0のプロジェクトをJLCAで変換してみた。
|
|
Javaで記述したサンプル・コード |
変換されたVisual Studio .NETのプロジェクトに含まれるC#のコードは次のようなものになった。
|
|
JLCAにより出力されたC#のコード |
若干無駄なコードが含まれているものの、正しく動作はする。サポートされていないクラスの呼び出しなどがソース・コードに含まれる場合は、コメント付きでC#のコードにコピーされるようだ。今回リリースされたバージョン(ベータ1)では、JDK 1.1.4に含まれるクラスのうち約20%をサポートしており、今後増やしていく予定とされている。
■
Javaプログラマを振り向かせるための開発ツール体制はこれで整った。彼らに対し、VS .NETや.NET Frameworkは「こっちの水は甘い」とアピールできるかどうか。Javaプログラマの厳しい目によって、VS .NETや.NET Frameworkの真価が問われるときがやってきたようだ。
関連記事(Insider.NET内) | |
.NET版Java言語「Visual J# .NET」オーバービュー | |
特集
|
J#の真実 Part1:Javaプログラマに.NETの世界を開く |
特集
|
J#の真実 Part2:JavaからJ#へ プログラム移植の実際 |
関連リンク | |
Java Language Conversion Assistantに関するニュース・リリース | |
JLCAベータ1のダウンロード・ページ | |
JLCA EEのニュース・リリース |
Insider's Eye |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|