BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース C# と Java の比較 (更新版)

C# と Java の比較 (更新版)

2001年、Dare Obasanjo 氏は、「Comparison of Microsoft's C# Programming Language to Sun Microsystems' Java Programming Language (Microsoft C# プログラミング言語と Sun Microsystems Java プログラミング言語の比較)」という非常に包括的かつ正確な記事を執筆している。今回、彼は、両言語の現在のバージョン (Microsoft C# 2.0 および Java Standard Edition 6) の変更を反映して、この比較記事の内容を更新した。

Dare Obasanjo 氏の記事は、C# と Java の機能および概念を客観的に比較したものである。彼の記事の特徴は、言語全体の概要と、両プラットフォームでの実装が含まれていることである。このため、彼の比較は、両言語の長所、短所を知るためだけでなく、言語リファレンス、および機能実装の説明としても役立つ。

この記事は、次のように構成されている。

  1. C# と Java に共通する機能
  2. 両言語に存在するが、わずかに異なる機能
  3. 両言語に存在するが、大きく異なる概念
  4. C# には存在するが、Java には存在しない機能または概念
  5. Java には存在するが、C# には存在しない機能または概念
  6. まとめ

ジェネリック、およびメタデータ注釈の比較は特に興味深いものとなっている。これらは、Java と C# の実装で少し違いがあることは明らかだが、これらの機能を実際のプロジェクトで使用した場合には、わかりにくい影響が発生する場合がある。この記事のもう 1 つの興味深い点として、Dare Obasonjo 氏は、2001 年の「Conclusion (まとめ)」を今回のバージョンにも含めながら、Java と C# の言語進化の方向性を次のように説明している。

... 2001 年以降、多くの機能が C# と Java で共通になってきていました。たとえば、ジェネリック、foreach ループ、列挙、ボックス化、可変長パラメータリスト、およびメタデータ注釈などがそうです。しかし、長年の収束を経て、C# と Java は根本的に異なる方向に向かおうとしています。C# 3.0 の現在の計画では、LINQ (Language Integrated Query: 言語統合クエリ) プロジェクトが重視されています。これは、クエリ、集合操作、変換、および型推測などのデータ指向機能の多くを直接的に C# 言語に統合しようとするものです。匿名メソッドや null 許容型などの C# の既存機能とも連携するため、C# と Java の機能は、ここ数年の収束という方向とは逆に、今後は違いが大きくなっていくことでしょう。

Dare Obasanjo 氏の比較記事は、Java から C# へ、またはその逆へと移行する開発者が必要とする情報を多く提供している。もちろん、それぞれの言語の機能および概念についてさらに情報を求めている開発者にとっても役立つものである。

(原文は2007年5月2日にリリースされました)

この記事に星をつける

おすすめ度
スタイル

BT