J Sharp

J#の概要


J#は、サンマイクロシステムズによるJavaマイクロソフトのJ++といったプログラミング言語を基に、マイクロソフト.NET Framework上で既存のアプリケーションやノウハウを移植するために開発された言語です。この言語は、Javaバイトコードを扱うことができるため、サードパーティ製のライブラリのソースコードが入手困難でも利用することができます。J#は、インドのハイテック・シティにあるマイクロソフトインド開発局で生まれました。

J#エディタと開発環境


J#を利用するための統合開発環境には、Visual Studioや独立型のVisual J# Express Editionがあります。J#で作成されたプログラムのソースファイルには、拡張子「.jsl」が使われており、動的なプログラミングが可能です。

実行環境と動作


J#は、Javaに比べて動作環境が限られており、Windows環境専用のバイナリコードとしてのみアプレットやアプリケーションを作成できます。具体的には、拡張子「.exe」の実行可能ファイル、コンソールアプリケーション、そして「.dll」のクラスファイルなどを生成できます。

Javaとの違い


JavaとJ#は基本的に似た文法を持っていますが、.NET環境のサポートを提供するために、Javaの規格には必ずしも適合していません。たとえば、通常のJavaBeanクラスで.NETプロパティを利用するには、getXxxやsetXxxのプレフィックスを使ったメソッドが必要です。また、Javadocのような注釈をメソッドに追加する必要があります。

プライベート変数の命名には注意が必要で、get/setプレフィックスで始まる場合は、別の名称に変更しなければなりません。J#はJavaのソースコードを.classファイルの形式にコンパイルすることは行いませんし、Javaアプレット開発環境やウェブブラウザ上でアプレットを実行することもできません。ただし、ActiveXオブジェクトとしてホストするためのラッパー(Microsoft J# Browser Controls)が提供されています。

Java Native InterfaceとP/Invoke|P_Invoke


また、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などの他のプログラミング言語にその座を奪われてしまった感がありますが、特定の用途での利用価値は依然として存在します。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。