Re: エンタープライズシステムの開発言語選定の一考察(C#とJava)
エンタープライズシステムの開発言語選定の一考察(C#とJava) - torutkのブログ
前提も明らかで、丁寧に比較されていると思いました。ついでに.NETの情報を補足してみます。
ケーススタディ1 C#で開発していた場合
アプリケーション開発/実行基盤は、3番目の候補を挙げてみます。
- 開発環境: Visual Studio 2010/C# 2.0/.NET Framework 3.5SP1(2.0)
- 実行環境: .NET Framework 3.5SP1(2.0)
.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年途中にリリースされるもので、十分な評価・検証ができない」件については、
- 評価・検証が終わってないうちは、既存の.NET Framework 1.1アセンブリを.NET Framework 3.5で動かせばいい。
- VS2010日本語版は4月の時点でMSDNからダウンロードできる。
というより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の比較について調べて思ったこと
まじめに比較するには、同じ程度JavaとC#とプログラミングしてみるしかないと思います。が、そのようなドキュメントが実はきわめて少ないということに驚きました。
同意。紹介されてた記事(http://www.25hoursaday.com/CsharpVsJava.html)は参考になります(Java7が出たらC#4と合わせてアップデートしてほしい)。
Swingが強力になったのはJava6からと理解しています(そうじゃなきゃIBMはSWTを作る必要がなかったのでは)。GUIがださいという意見は、ほとんどはMetalのことだと思います。ただ、Windows L&Fでも「なんか違う」とか「Boldフォントが嫌い」とかはあるようだけど。どちらも過去の話ですね。Java6のSwingは快適だし、Nimbusはかっこいい。
同意。私は幸いそういうことはしなくてすんでいますが……
これも同意。ただWPFを含む.NET Framework 3.0がリリースされたのは2006/11で、Swingが生まれ変わったJava6と似たような時期だということだけは書いておきます。
ドキュメントタグはIDEが補完するんだからそこまで面倒ではないと思います。機能面は何の事を指しているのかわかりませんでした(タグが少ないと言っているのか、出力形式の問題なのか、それとも?)が、多分SandCastleやDoxygenを使えばいいと思います。
CORBA(IIOP)はなかった(これは、やはり・・・という程度)
IIOP.NETもあるけど、不要ですよね?