J#の概要
J#は、サンマイクロシステムズによる
Javaや
マイクロソフトのJ++といった
プログラミング言語を基に、
マイクロソフトの
.NET Framework上で既存のアプリケーションやノウハウを移植するために開発された言語です。この言語は、
Javaの
バイトコードを扱うことができるため、サードパーティ製のライブラリのソースコードが入手困難でも利用することができます。J#は、
インドのハイテック・シティにある
マイクロソフトインド開発局で生まれました。
J#エディタと開発環境
J#を利用するための統合開発環境には、Visual Studioや独立型のVisual J# Express Editionがあります。J#で作成されたプログラムのソースファイルには、
拡張子「.jsl」が使われており、動的なプログラミングが可能です。
実行環境と動作
J#は、
Javaに比べて動作環境が限られており、Windows環境専用のバイナリコードとしてのみ
アプレットやアプリケーションを作成できます。具体的には、
拡張子「.exe」の実行可能ファイル、コンソールアプリケーション、そして「.dll」のクラスファイルなどを生成できます。
JavaとJ#は基本的に似た文法を持っていますが、
.NET環境のサポートを提供するために、
Javaの規格には必ずしも適合していません。たとえば、通常の
JavaBeanクラスで
.NETプロパティを利用するには、getXxxやsetXxxのプレフィックスを使ったメソッドが必要です。また、
Javadocのような注釈をメソッドに追加する必要があります。
プライベート変数の命名には注意が必要で、get/setプレフィックスで始まる場合は、別の名称に変更しなければなりません。J#は
Javaのソースコードを.classファイルの形式にコンパイルすることは行いませんし、
Javaアプレット開発環境やウェブブラウザ上で
アプレットを実行することもできません。ただし、ActiveXオブジェクトとしてホストするためのラッパー(Microsoft J# Browser Controls)が提供されています。
また、
Java Native Interface (JNI) とRaw Native Interface (RNI) に関しては、
P/Invoke|P_Invoke(プラットフォーム呼び出し)が代用されます。J#は
Java RMIをサポートしていません。すなわち、
Javaが中間コードを
Java仮想マシンで実行させるのに対し、J#は
共通中間言語にコンパイルした中間コードを
.NET Framework上で稼働させることになります。
J#の将来性
J#に関しては、C#やVB
.NETに比べてその存在感が薄れていることが一般的に認識されています。他の
プログラミング言語に比べてサポートやサンプル提供、アップデートにおいても充実していません。この現状にもかかわらず、J#は
.NET環境で実行可能な言語であり、
共通言語ランタイムの多くの機能へのアクセスが可能です。
2007年に
マイクロソフトのJ#開発チームは、J#の将来に関する2つの重要な発表を行いました。まず、顧客の要望に応えて、Visual J#のアップデート版としてJ#2.0 Second Editionを提供し、64ビット環境をサポートする計画がありました。次に、Visual Studioの将来のバージョンにはJ#と
Java Language Conversion Assistantを含めない旨が伝えられました。この決定は、現在のJ#の特徴が顧客のニーズに合わなくなり、利用が減少したためです。また、現在のVisual Studio 2005版は、
ソフトウェアリリースライフサイクルに基づいて2015年までのサポートが行われることが示されています。
まとめ
J#は一時期は注目を浴びたものの、今ではC#やVB
.NETなどの他の
プログラミング言語にその座を奪われてしまった感がありますが、特定の用途での利用価値は依然として存在します。