问题描述
通常当我正在阅读某些程序时,无论是GNOME Do还是Banshee还是别的什么,我都会看到人们写的是他们使用单声道 – 这意味着贬义。为什么是这样?这些评论是基于实践,意识形态或其他方面的吗?
最佳解决方案
Ideologically
一些人认为Mono支持微软及其.Net平台。有些人认为这与Ubuntu的目标背道而驰,或者至少是他们自己的个人目标,他们希望避免这种情况。
对不起来的话,但是我保持客观。讨论Mono是否真的这样做,甚至是否支持微软是好事还是坏事,belongs elsewhere。
Practically
根据我的经验,使用虚拟机的程序(如用Java和C#编写的那些程序)往往会使用更多的内存,相比之下则没有。这种概括并不总是成立。虽然有些用户对此有用,但人们常常担心性能超出必要的程度。
例如,我正在使用只有1GB内存的笔记本电脑:这曾经是巨大的。机器开始显示它的年龄,但我仍然可以舒适地运行大多数东西。拥有4GB内存的用户几乎不会注意到”memory hogs”,应该关注其他问题。 (我将在5年后回到这里,嘲笑那个4GB的数字。)
次佳解决方案
有些人认为微软拥有.NET方面的软件专利,而作为.NET的实现,Mono违反了这些专利。因此,这些人认为使用Mono可以让专利诉讼开放。
我认为Mono是如此具有争议性,因为专利法一般都存在争议。但是,有一些具体的例子表明促销Mono的实体已经与微软达成协议,看起来很像专利协议,这可以被视为加强微软对任何此类专利有效性的论证。 (当然,微软实际上没有提供任何证据证明专利存在,因此保持了一种不确定的状态,就像他们对Linux内核侵犯的专利主张一样。)这些协议导致了对其他社区的背叛和不信任感。成员,因为该协议似乎损害了整个社区(通过增加感知的专利风险),同时使与微软达成协议的实体受益。因此,这导致Mono的另一个原因引起争议:因为Mono的一些主要支持者与微软达成了有争议的协议。
顺便提一下,我应该提到我是从旁观者的角度写的,而且我对整个情况没有详细或具体的了解。我试图保持不偏不倚,并且大多避开专有名词,以避免将这个问题拖入它所要求的争议中。
编辑:在评论中,有人指出微软有一个community promise不会主张针对.NET实现的专利权。但是这个承诺有足够的法律术语,我觉得我不能确定承诺提供air-tight保护而不雇用律师来解决它。阅读之后,我可以想到一些潜在的漏洞可以让微软对Mono主张专利权,但自从IANAL以来,我不知道这些漏洞是否具有法律上的可辩护性,或者只是我对微软法律术语的误解。因此,尽管社区承诺令人鼓舞,但它肯定无法结束Mono可能的专利责任之间的争议。
第三种解决方案
Mono是Microsoft .net的开放式移植。
在意识形态方面,这利用了开放技术的封闭技术,这可能与GNU和/或Linux的某些理想不一致。
在实际的基础上,Mono(目前)不支持.NET在其3.5版本中所做的功能。但是,它允许使用C#(和其他.NET语言)为Linux编程,我认为这是一件好事,没有Mono就不可能。
第四种方案
正如其他人所说,有两个主要原因:
1)意识形态:用户对Mono基于闭源Microsoft产品的想法并不满意。但是,Mono本身就是open-source。
2)专利:这曾经是一个主要关注点,微软在将它们applied the Community Promise转换为ECMA 334和ECMA规范335时已经解决过这个问题。不幸的是,相当一部分人都没有意识到这一点。