《论C#与Java之异同》一文已更新[转载]

作者 Hartmut Wilms译者 李剑 发布于 2007年5月4日 上午8时0分

原文:http://www.infoq.com/cn/news/2007/05/comparison-csharp-java-updated

2001年的时候,Dare
Obasanjo
写过一篇作品,名为《论C#与Java之异同(Comparison
of Microsoft’s C# Programming Language to Sun Microsystems’ Java
Programming
Language)
》,该文以其详尽与规范成为了同类著作中的佼佼者。现在,他又依据两种语言的新颖版本——Microsoft
C#
2.0
Java
Standard Edition 6
——对原文举办了改动。

Dare
Obasanjo在文中对两岸的特征与概念举行了客观的分析。他的篇章与任何著作的区别就在于,他从统揽全局的角度上对两种语言及各自在对应平台上的落实举办了全体的论述。因而,该文几乎可以用来当作C#和Java的参考手册。在文中,他还对首要实现做了印证,并分析了二种语言的得失。

作品结构如下所示:

  1. C#和Java的共同点是何等?
  2. 什么样特色是在二种语言中幸存,不过拥有细微差距的?
  3. 什么概念是在三种语言中存活,不过相差甚远的?
  4. 哪些特色或者概念是只在C#中留存,而在Java中不存在的?
  5. 怎么着特征或者概念是只在Java中留存,而在C#中中不设有的?
  6. 结论

里头关于泛型(Generics)元数据Annotations(Metadata
Annotations)
的相比极端引人注意,因为这多少个特点即便在实际应用中看起来很一般,不过在Java和C#的分别实现中,却有着很彰着的细小差距。该文中此外一处亮点则是Dare
Obasonjo引用了她在2001年时所查获的下结论,来论述Java和C#在提升动向上的扭转:

[…]
自2001年以来,C#和Java中都引入了一些一起的性状,诸如泛型、foreach循环、列举、自动装箱、可变长度参数列表和元数据Annotations。可是在几年过后,我们却发现C#和Java却走上了两条不同的路。C#
3.0的此时此刻计划的重大是语言集成查询(LINQ)项目,它是要把有些面向数据的特色,包括查询、数据集操作、数据转换和品种估计,直接引入到C#中来。再加上C#中已有的有些特征,例如匿名格局和nullable
types,C#在未来的几年内,与Java的区别将会更加大。

Dare
Obasanjo的稿子给那么些想从Java换成C#的开发人士提供了汪洋信息,反之亦然。对于那多少个想获取当前语言的更多特点与定义的开发人士来说,这篇随笔也是很好的参考。

翻看英文原文:A Comparison of C# to Java,
Updated


翻译简介:李剑中国Eclipse社区插件开发版版主,在JavaEye拥有RCP专栏,
北航软件工程硕士。现就职于Ethos,热衷于设计模式,敏捷软件开发的讨论与实施。为InfoQ粤语站进献内容,请邮件至china-editorial@infoq.com

相关文章