平々毎々(アーカイブ)

はてなダイアリーのアーカイブです。

Re: エンタープライズシステムの開発言語選定の一考察(C#とJava)

エンタープライズシステムの開発言語選定の一考察(C#とJava) - torutkのブログ

前提も明らかで、丁寧に比較されていると思いました。ついでに.NETの情報を補足してみます。

ケーススタディ1 C#で開発していた場合

アプリケーション開発/実行基盤は、3番目の候補を挙げてみます。

.NET Framework 3.5SP1のCLR(Javaで言うところのJavaVM相当)は.NET Framework 2.0と基本的に同じもの。その上、.NET Framework 3.5SP1からはOSのサポートライフライクルに準じるようになったので(ソース:http://msdn.microsoft.com/ja-jp/netframework/cc807061.aspx)、移行OSがWindows Server 2008ならメインストリームが2013/7、延長サポートが2018/7まで。2010/7以降にパッケージを購入する場合はWindows Server 2008 R2しか購入できないので、Windows Server 2008 R2を使えばとも思いますが、サポートの期間は無印2008と2008R2で差はない(ソース:http://support.microsoft.com/lifecycle/search/?alpha=windows+server+2008)ので、どっちでもいいかもしれません。

開発環境はVS2010でいいと思います。VS2010に加えて.NET Framework 3.5SP1をインストールすれば、.NET framework 2.0をターゲットにして開発することもできますし(ソース:http://msdn.microsoft.com/ja-jp/library/bb398197.aspx)。VS2010ならメインストリーム終了が2015/7だから問題ないと思います。

VS2010が「2010年途中にリリースされるもので、十分な評価・検証ができない」件については、

というより2010年中に移行することが計画されているのであれば、もっと早くからベータ版やRC版を使って検証しておくのがいいのでは……

C#1.0/.NET Framework 1.1用にビルドしたDLLを、バイナリそのままで.NET Framework 2.0以降で使用できるのか、確たる判定ができていない。」とのことですが、非互換さえ踏んでなければ動作します(ソース:http://msdn.microsoft.com/ja-jp/library/Cc825688)Javaと同じです。もちろん、非互換を踏んでいるかどうかはちゃんと調査しないといけませんが。

これは余談ですが、有償のサポート契約を結んでいれば、延長サポートの期間であってもセキュリティ関連以外の修正プログラムサポートも受けられます。高いですけど。なのでVS2010を避けながら、修正プログラムサポートを受けたいのであれば(その必要性は低いと思いますが)、手はあります。

C#Javaの比較について調べて思ったこと

まじめに比較するには、同じ程度JavaC#とプログラミングしてみるしかないと思います。が、そのようなドキュメントが実はきわめて少ないということに驚きました。

同意。紹介されてた記事(http://www.25hoursaday.com/CsharpVsJava.html)は参考になります(Java7が出たらC#4と合わせてアップデートしてほしい)。

Javaはサーバーサイドのもの、あるいはGUIが遅い、ださい、と思い込んでいる。

Swingが強力になったのはJava6からと理解しています(そうじゃなきゃIBMSWTを作る必要がなかったのでは)。GUIがださいという意見は、ほとんどはMetalのことだと思います。ただ、Windows L&Fでも「なんか違う」とか「Boldフォントが嫌い」とかはあるようだけど。どちらも過去の話ですね。Java6のSwingは快適だし、Nimbusはかっこいい。

C++のクラス、メンバー関数を呼ぶのは大変。C++/CLIでいったんラップしないといけない。

同意。私は幸いそういうことはしなくてすんでいますが……

JavaGUIを酷評しているので、高度なGUIがあると思っていたが、実はしょぼい

これも同意。ただWPFを含む.NET Framework 3.0がリリースされたのは2006/11で、Swingが生まれ変わったJava6と似たような時期だということだけは書いておきます。

ドキュメント化コメントはXMLで書かねばならない(タグが面倒)。またJavadocに比べて機能が少ない

ドキュメントタグはIDEが補完するんだからそこまで面倒ではないと思います。機能面は何の事を指しているのかわかりませんでした(タグが少ないと言っているのか、出力形式の問題なのか、それとも?)が、多分SandCastleDoxygenを使えばいいと思います。

CORBA(IIOP)はなかった(これは、やはり・・・という程度)

IIOP.NETもあるけど、不要ですよね?