• ベストアンサー

J#ってすばらしい?

最近J#をはじめました。 たまたま、ソースがコンソール出力のものだったか知りませんが Javaのソースをほとんど修正なしで動作したので驚きました。 不思議に思ったのは、以下の記述部をそのままにしてもエラーにならなかった点です。 import java.io.*; import java.net.*; System.out.println("test"); J#は.NETなので、 import System....や Console.WriteLineと書かないといけないと思いますが、動作する理由はなぜなのでしょうか? あと、お勧めできるJ#の解説書をご存知の方、教えてください。 JavaはEclipseという開発環境がありますが、J#では、EXEファイルにでき、実行速度の面と、他の言語 VB.NETやC++,C#など組み合わせができ、多様性があるのですが、Javaの達人に聞きたいのですが、なぜJ#を使わないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

回答とかアドバイスっていうよりかは、恐らくいろんな方々が拝見されていると思いますので。 まず始めに、Sunとの訴訟に関しては以下のサイトにて簡潔に述べられています。 Javaプログラミングを極める 第9回:Visual J# を使ってみる http://www.utj.co.jp/xml/dev/java/dxjava_9.html んでもって、公式サイトの最新情報はこっち。 Microsoft Java Virtual Machine (MSJVM) サポート http://www.microsoft.com/japan/java/default.mspx 上記のサイトを見ればわかる通り、MSJVMのライフサイクルは今年の大晦日で終了です。 >なぜJ#を使わないのでしょうか? 古いから。 以下のサイトもご覧になれば分かる通り、そもそもMicrosoft VMの対応する JDK バージョンは「1.1.4」となっています。 [INFO] Microsoft VM が含まれているこれまでのリリースの一覧 http://support.microsoft.com/kb/169803/JA/ 今現在、Javaプログラマー向けのSun認定資格SJC-Pとしては、310-055[5.0系に相当]と310-035[1.4系に相当]の2つ(に、それぞれのUpgrade Examを合わせて4つ)がありますが、実際には、つい最近まで以下のような1.2系に相当する資格も存在していました。 Sun Certified Programmer for the Java 2 Platform 1.2(試験番号310-025) http://www.engineersguide.jp/Knowledge/Professional_Certifications/Sun_Java119.html#sun310025 で、その試験範囲の中には310-035以降に削除されてしまった、以下の3項目が含まれていました。 ・ネットワーク機能(→ソケットプログラミングなど) ・JavaGUI(→java.awtパッケージなど) ・イベントモデル(→イベントハンドラなど) ここからはあくまでも私の個人的な見解ですが、本来は「なぜ、インターフェイスを使うのか?」などを深く理解するためにもSwingの勉強をすることはとても意義あることだと思います。ただ現状では、サン・エデュケーション・サービスとしても「その辺りの技術に関しては、無理して勉強しなくてもいいよ。」というスタンスなのでしょう。(何せ、認定資格の出題範囲から削除するくらいですからね。)

その他の回答 (3)

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.4

http://www.microsoft.com/japan/msdn/vjsharp/ Visual Studio 2005 技術情報 >将来バージョンの Visual Studio における J# 言語および >Java Language Conversion Assistant の提供中止 >Visual Studio 2005 で提供された Visual J# および JLCA >のサポートを製品ライフサイクルに則り引き続き提供します。 上記の通り、Visual Studio 2005以降では提供中止される様です。

noname#49664
noname#49664
回答No.2

>J#は.NETなので、 import System....や Console.WriteLineと書かないといけないと思いますが そんなことはありません。.netフレームワークを利用して動かすこともできるのであって、Java自身が持つシステムライブラリを使っても動きますよ。別に「Java本来の機能は使えない」というわけではありません。 J#に限らずとも、例えばJscript .netでは、JavaScriptのスクリプトがほとんど修正なしに動きます。別に驚くことではなく、.net対応言語はどれも基本的にそのような形で作られているはずです。 >なぜJ#を使わないのでしょうか? J#で作ったEXEは、.netフレームワークの適合するバージョンがインストールされているものでしか動かないからです。.netがなければ動きませんし、バージョンが違うとやっぱり動かない。MacでもLinuxでも動かない。Javaで作ったものは、JREさえあればどんなものでも動きます。 逆に、質問者さんがあげた特徴は「J#でなくてもいい」ものばかりですね。.netを使ってEXEを作る場合、私ならJ#など使わずC#を使います。Javaを扱うプログラマといっても、大半はJava以外の言語もそれなりに使えるはずですから、既にマイクロソフトが製品提供の中止を発表しているJ#を使う必要性がないでしょう。 また、現在、多くのJavaプログラマは、アプリケーションなどではなくサーバサイドの開発でJavaを使っています。そうなると、Windowsサーバでしか動かない.netによる開発は、導入先のサーバ環境などから見送られることもあります。

回答No.1

動作する理由は分かりませんが、 J#を利用しない理由として、 ・Windows Only(.NET)ということ が非常に影響しているからです。 Javaの強みは、OSにとらわれないということです。 にも関わらず、Windowsに限定しているという段階で、 利用価値は少ないと私は見ています。

関連するQ&A