2010-04-17 103 views
0

近年来C#比Java更受欢迎。作为一种通用编程语言,许多人认为C#的设计比Java更好。为什么C#应用程序开发没有开源框架(如Java)?

为什么到现在还没有C#应用程序开发的开源框架?为什么没有人主动为C#开发一个与Java相媲美的开源框架?

(很多人说单是不是一个成熟的框架,不应该在重要的应用程序开发中使用。)

+8

我只是想不同意你对C#比Java更受欢迎的声明......看看这个... http://www.tiobe.com/index.php/content/paperinfo/tpci/index。 html – 2010-04-17 04:36:47

+1

@取决于你如何定义“流行”。大多数工作是一种方式。新项目是另一个。等等。通常,这些陈述因主观性和论证性而受到封闭。我不认为OP的措辞是炎症/燃烧,但是可能值得重申一点。 – cletus 2010-04-17 04:40:11

+0

@Romain:当然,“大多数搜索”并不意味着“最常用的语言” - 当在CI中编程时,使用的搜索量大约是使用C#编程时的5倍)我也使搜索量大于编程时的50倍Python,所以我很惊讶Python在TIOBE列表上如此之高 – 2010-04-17 04:41:55

回答

6

虽然有些人也许会说,单是不够成熟的生产代码,不改变事实上,单声道 C#开发的开源框架,所以您的问题标题中的声明显然是不正确的。至于为什么没有其他开放源代码的C#(.NET)框架 - 为什么任何人都应该打扰从头开始创建第二个开源.NET平台,当他们可以轻松地投入时间来改进Mono ?我们真的需要两个开源的.NET平台吗?

更新:当我写这个答案,我不知道的还以为有人在微软居然也推出了开放源代码排序的执行CLI组成:Shared Source CLI (SSCLI),也被称为转子。事后看来,我认为这里值得一提,以支持别人的观点,除Mono外还有其他可选的CLI实现。

除了这些考虑,我认为这个问题可能会要求相当主观的答案。

9

不确定问题是什么 - 你问为什么没有完整的.NET框架的开源版本?

答案是框架是巨大的,涉及数千人的全职承诺。复制所有这些 - 包括错误 - 以便.net程序可以可靠地在所有平台上运行是不可能的。

但是,基类库(BCL)的实现可用。除了Mono,还有DotGNU

此外,parts of the .net library itself是“开源”,虽然不是传统意义上的(源可以查看,但没有使用)。

4

我会对那些“很多人”是谁有兴趣; Mono是一个相当大的成就,拥有严肃的支持(Novell),同时也得到了微软的帮助。它在许多严肃和商业应用中使用。重复这么多的工作几乎没有什么好处。

Mono CLI实现非常稳固。图书馆当然存在一些差距(例如WPF) - 但这是一个战略决策;该计划将跟踪Silverlight,并将Moonlight提升到WPF和Silverlight在很大程度上难以区分的地步。

还有一些事情是提前微软的.NET实施;例如,完整的AOT或编译器即服务(托管编译器)。

在服务器,桌面,浏览器(月光)和移动设备(Android和iPhone,3.3.1旁边)上都有单声道 - 可能还有其他地方。

0

我认为这是因为大多数开源项目已经开始,因为没有类似的产品可用或在某些情况下免费的产品。在这种情况下,Visual Studio Express版本的功能非常强大且免费,所以不会像其他语言/平台中那样创建开源开发工具。我期望如果Express消失或者开始有与之相关的成本,那么开发一个开源项目就会发展。