Visual J++ (ビジュアル・ジェイ・プラス・プラス) は、 マイクロソフトがかつて開発、販売していたJavaの実装。構文、キーワード文法規則はJavaと同じだが、独自拡張も含んでいる。1996年に導入され[1]、2004年1月に廃止された[2]Visual Studio 6.0以前に含まれていた。

Visual Studio .NET以降は、機能の大部分はJ#C#で置き換えられた。

互換性

編集

Microsoft Visual J++ 6.0では、GUIライブラリとしてWindows Foundation Classes (WFC) やActiveXコントロールを使用してのRapid Application Development (RAD) が可能であり、また、Raw Native Interface (RNI)、J/Direct、Java/COM インテグレーションなどの、独自のネイティブインターフェイスを用いることができる。しかし、それらのいずれかでも使用した場合、マイクロソフトJava仮想マシンでしか動作しない。

サン・マイクロシステムズのJava仮想マシンで動作するJavaクラスファイルを生成するようにも設定できる。その際はコードエディタの入力補完機能やクラスビューなどの機能は使えるものの、GUIの設計を視覚的に行うことはできない。

J++はJava言語仕様に準拠していたが、マイクロソフトJavaリモートメソッド呼び出し (Java RMI) やJava Native Interface (JNI) など、サン公式のJava実装の一部の機能をVisual J++に実装していなかった[3][4]

また、J++は、イベント処理におけるコールバックデリゲートなど、サンのJava実装に含まれない独自の拡張機能を実装していた。

さらに、J++アプリケーションは、サンのJDKを使ったJavaアプリケーションのように、基盤となるオペレーティングシステム機能にアクセスする標準の方法に準拠していなかった。マイクロソフトの実装では、オペレーティングシステムにアクセスする際に、J/Directと呼ばれる、J++アプリケーションがJavaのクラスライブラリAPIを完全に回避するフレームワークが提供された。この仕組みにより、Win32 APIを利用する際にはJ++アプリのほうが元のJavaフレームワークよりも効率的であった。

この機能を使うJ++アプリケーションは、サンのJDKでは実行できなかったが、Kaffeプロジェクトでは、この機能を使うJ++アプリケーションを実行できる拡張機能をオープンソースのJVMで開発した。ただし、これらの拡張機能(マイクロソフトのスポンサーでTransVirtualが実装)は広く使用されていなかった。また、J++アプリケーションをKaffeで実行するには、あらかじめVisual J++でコンパイルが必要だった[5][6]

Visual J++はActiveXをサポートしていた[7]

Windows Foundation Classes (WFC) は、Win32プラットフォームAPIDHTMLオブジェクトモデルを、統一されたクラスライブラリにカプセル化したものである。WFCは主に、Windows上のJavaアプリケーション用のグラフィカルユーザーインターフェイスを作成するために設計された。

マイクロソフトに対するサンの訴訟

編集

サン・マイクロシステムズは当初、Javaをマイクロソフトにライセンス供与していたが、後に商標権侵害でマイクロソフトに対する訴訟を開始した。Javaブランドの使用に関するサンの商標ライセンスは、すべての実装が「互換性がある」ことを要求していたためである。

この非互換性は、サンのJavaテクノロジの進歩を遅らせるために、マイクロソフトが意図的に行っていると指摘するものもいた[8][9]

MSJVMがサンのコンプライアンステストに合格しなかったことが、最初の訴訟の大きな要因となった。2004年、これらも含めた一連の未解決になっていたサン/マイクロソフト訴訟は、サンとマイクロソフトの間で和解に達した[10]。 和解の合意内容では、マイクロソフトは、サンがJavaに導入したJ++の機能以上の機能を、J++に組み込めないとした。そしてJ++の機能導入は Javaバージョン1.1.4の機能セットで最終化された。これは事実上J++のこれ以上の進化を殺し、セキュリティホールへの対応を除く更新を終了させた。結果として、マイクロソフトは、MSJVMの配布の停止に同意し、ダウンロードも廃止された。

マイクロソフトは、2007年12月31日にMSJVMに対するセキュリティの問題に対するサポートも含め全サポートを終了した[11]

J++のテクノロジは最終的に再利用され、Microsoft .NET FrameworkJ#言語の一部としてしばらく存続した。

Visual J++統合開発環境

編集

Visual J++はJ++の統合開発環境 (IDE) の名前でもあり、J++プログラマーがWin32 APIをフル活用するための多くのツールやユーティリティを提供した。

Visual J++は既に配布されていないが、かつてMicrosoft Visual Studio製品ラインの一部だった。Visual Studio 6.0は、J++を含む最後のリリースとなった。

Visual J#

編集

Visual J#は、構文がJavaに近いマイクロソフトのプログラミング言語であり、.NET FrameworkとVisual Studio .NET製品スイートの一部であり、開発者とプログラマーがJ++(またはJava)から.NET Frameworkに移行できるように設計されていた。

マイクロソフトは後に、.NETプラットフォームでの主要言語としてC#を開発したが、この言語は多くの点でJavaの影響を受けた。.NET Frameworkもまた、Javaと共通する多くの考え方を共有している。JavaバイトコードJava実行環境と同様に、C#コードは共通中間言語 (CIL) と呼ばれる中間表現の一種にコンパイルされ、.NETの共通言語ランタイム (CLR) と呼ばれる仮想マシン上で実行される。Visual Studio 2005は、J#を含む最後のリリースだった。

脚注

編集
  1. ^ Rogers, Dan (December 1, 1996). “Microsoft's Visual J++ 1.0”. Dr Dobb's Journal. https://www.drdobbs.com/microsofts-visual-j-10/184415556 
  2. ^ Emigh, Jacqueline (September 12, 2003). “You'd Better Drop Microsoft's J++ Now”. InformIT. http://www.informit.com/articles/article.aspx?p=101152 
  3. ^ JFC; Microsoft declares war”. xent.com (1997年8月1日). 2007年7月14日閲覧。
  4. ^ McMillan (1997年7月1日). “Microsoft's J/Direct called death of Java”. JavaWorld. 2020年7月16日閲覧。
  5. ^ Transvirtual Adopts Microsoft Java Extensions”. linuxjournal.com (1999年1月10日). 2007年8月1日閲覧。
  6. ^ Java-Clone Announced”. slashdot.org (1999年6月14日). 2007年8月1日閲覧。
  7. ^ “MS debuts Visual J++”. CNet. (October 1, 1996). http://news.cnet.com/MS-debuts-Visual-J/2100-1001_3-233769.html 31 October 2011閲覧。 
  8. ^ Lohr, Steve (1998年5月25日). “Still Another Adversary for Microsoft”. New York Times. https://query.nytimes.com/gst/fullpage.html?res=9F01E2DC1638F936A15756C0A96E958260 2009年3月15日閲覧. "A September 1997 E-mail message, sent by a Microsoft official identified as P. Sridharan, is quoted as saying: "Let's move on and steal the Java language. That said, have we ever taken a look at how long it would take Microsoft to build a cross-platform Java that did work? Naturally, we would never do it, but it would give us some idea of how much time we have to work with in killing Sun's Java."" 
  9. ^ Microsoft A History of Anticompetitive Behavior and Consumer Harm”. European Committee for Interoperable Systems (2009年3月31日). 2009年4月22日閲覧。 “We should just quietly grow j++ share and assume that people will take more advantage of our classes without ever realizing they are building win32-only java apps.
  10. ^ Sun settles with Microsoft, announces layoffs”. www.news.com (2004年4月2日). 2007年10月3日閲覧。
  11. ^ Microsoft Java Virtual Machine Support”. Microsoft (2007年3月2日). 2007年10月9日閲覧。

関連項目

編集

外部リンク

編集