数量上目前C#没希望,,,,
质量上目前Java没希望,,,,
Java平台上的开源软件覆盖的广度,数量方面.NET目前是没有希望超越的,由于开源软件的一些条款限制,.NET平台本来就有一部分代码是不开源的(如CLR)。开源社区的一些顾虑,以及微软在前几年态度的不明朗,这些都不可能短期内有所改善。
例如评论中指出的NoSQL数据库领域等,.NET开源项目在这方面基本是一片空白。
但是,.NET平台上开源软件的质量却领先于Java。
当然这有很大程度上是因为.NET平台开源软件两大主要构成:
一是微软开发的或者微软支持开发的,这一方面质量自当不用说。
二是其他开源平台(主要是Java)成熟项目的移植,一个项目被移植到.NET平台必然是已经发展的非常成熟,
这两大主力军确定了.NET平台开源软件整体质量高于Java。
除此之外,.NET平台相对于Java平台还有几大优势:
一是微软在一开始就给出了.NET平台框架系统的设计准则,命名指引等规范性文档。整个.NET Framework的文档体系性、完整性方面都非常完美。而Java则命运多舛,各大厂商相互角力,未能形成统一的风格。
二是庞大统一标准的.NET Framework为.NET程序员提供了一个非常好的示范,微软还在不遗余力的建设庞大的代码库和示例库。
这几优势使得.NET平台上的软件各种风格(尤其是API)趋于统一,加上几乎是工业设计语言中的王者的C#语言,使得.NET平台上的软件整体质量高于Java。
而Java由于历史原因,语言和类库方面都不如.NET有体系,目前的情况也使得在短期内根本看不到统一的希望,