为什么单声道这么有争议?


33

通常,当我在阅读某些程序时,无论是GNOME Do还是Banshee或其他内容,我都会看到人们写他们使用mono的含义-含义是贬义的。为什么是这样?这些评论是基于实践,意识形态还是其他方面提出的?


3
为什么没有人要求取消开放办公室以实现Microsoft技术(文档格式)?
蹦床

Answers:


36

从思想上

有人认为Mono支持Microsoft及其.Net平台。有些人认为这与Ubuntu的目标相反,或者至少与他们自己的个人目标背道而驰,因此他们希望避免这样做。

抱歉,我会摇摆不定,但我保持客观。关于Mono是否真正做到这一点,甚至支持Microsoft是好事还是坏事的讨论都在其他地方

几乎

根据我的经验,与不使用虚拟机的程序相比,使用虚拟机的程序(如用Java和C#编写的程序)倾向于使用更多的内存。这种概括并不总是成立。对于某些用户,这是一个值得关注的问题,但是人们经常担心性能超出了必要。

例如,我正在使用只有1GB内存的笔记本电脑:这曾经很大。 机器开始显示它的年龄,但是我仍然可以舒适地运行大多数东西。拥有4GB内存的用户几乎不会注意到“内存消耗”,而应关注其他问题。(我将在5年后回到这里,嘲笑那个4GB的数字。)


4
好吧,c#并非纯粹在虚拟机上运行。至少不是正常方式。它可以进行从字节到机器码的即时编译,例如java,还可以进行提前编译到机器码(带有异常(正常情况))和完整的老式编译(但是在大多数平台上不是) 。从这个意义上说,它与Java或Parrot不同。更多的混合动力。因此,在现实世界中,很可能您的关键内循环重载代码将以单声道形式编译为本机指令。
Stefano Palazzo

1
@stefano:我提到内存使用率,而不是执行速度。实际上,保留代码的多个副本以便JIT能够完成其工作需要使用更多的内存。

3
不仅如此。Mono很可能会侵犯Microsoft的某些专利,这使Microsoft可以有一天像Oracle一样针对Java专利对Google提起诉讼。
txwikinger 2010年

5
抱歉,“社区承诺”没有任何法律约束力。
txwikinger

2
@txwikinger具有法律约束力,请在此页面上查看问题。microsoft.com/interop/cp/default.mspx
trampster 2010年

16

有人认为Microsoft拥有.NET方面的软件专利,并且作为.NET的实现,Mono违反了这些专利。因此,这些人认为使用Mono可以使专利诉讼处于开放状态。

我认为Mono之所以引起争议,是因为专利法通常是有争议的。但是在某些特定情况下,促进Mono的实体与Microsoft达成的协议看起来很像专利协议,然后可以看到这些协议加强了Microsoft对此类专利的有效性的论点。(当然,微软实际上并没有提供任何证明专利存在的证据,因此保持了不确定状态,就像他们对linux内核侵犯专利的主张一样。)这些协议会导致背叛和对其他社区的不信任感成员,因为该协议似乎损害了整个社区(通过增加感知的专利风险),同时使与Microsoft达成协议的实体受益。因此,导致Mono有争议的另一个原因是:

顺便说一句,我应该提到的是我是从旁观者的角度写的,而我对整个情况没有详细的了解。我试图保持公正,并尽量避免使用专有名词,以避免将这个问题拖到它所提出的争议中。

编辑:在评论中,有人指出,微软有一个社区承诺,不会主张针对.NET实现的专利权。但是许诺书中有足够的法律条款,我不能确定要聘请律师来确保我的诺言能够提供气密的保护。阅读完之后,我可以想到一些潜在的漏洞,这些漏洞可能使Microsoft可以主张对Mono的专利权,但是由于IANAL,我不知道这些漏洞中的任何一个在法律上是可以辩护的,还是我对Microsoft的法律术语的误解。因此,尽管社区的承诺令人鼓舞,但它肯定无法结束有关Mono可能的专利责任的争论。


3
这实际上应该是公认的答案,它是唯一实际回答该问题的答案。人们不愿使用Mono,因为担心被Microsoft起诉。

1
在此应提及的是,《欧洲专利公约》第52条明确禁止“此类”软件专利(第52/2条)。这意味着至少欧盟成员国的公民和组织基本上不受Microsoft许可活动之类的影响。(此最后声明受到激烈争论)
Stefano Palazzo

1
尽管有艺术。52/2在欧洲有成功的软件专利声明。
txwikinger

如果不讨论具有法律约束力的“社区承诺”,即保护单声道免受Microsoft的专利诉讼,那么这个答案是不完整的。
蹦床

1
@trampster:CP涵盖了ECMA 334和335,而不是全部C#,并且因为它们在2006年发布,因此明确不包括C#中新增的任何内容。您是否希望Mono 落后于.NET 5年(并且还在增长)以便使用CP?
弗雷德·纽克

5

Mono是Microsoft .net的开放移植。

从意识形态上讲,这将封闭技术用于开放技术,并且可能与GNU和/或Linux的某些理想不符。

从实际出发,Mono目前(现在)不支持.NET在其3.5版本中提供的功能。但是,它允许为Linux使用C#(和其他.NET语言)进行编程,我认为这是一件好事,如果没有Mono,这是不可能的。


9
.NET的基本核心是开放技术/标准(即使Microsoft的主要实现未开放,C#,标准库的基本部分和运行时也已作为ECMA标准发布)。
2010年1

@Popinou:我从来没有遇到过3.5缺少功能的问题。

@ JanC:Mono(System.Windows.Forms)的部分不属于ECMA标准。
Bro

1
实际上,mono不是端口,它是EMCA开放标准的完全免费的软件实现。并具有法律约束力的“社区承诺”涵盖,不起诉该开放标准的实施。
蹦床

1
默认情况下,@ Broam System.Windows.Forms不在ubuntu中。并且不是任何常见的Mono应用程序所必需的。
蹦床

5

正如其他人所说,有两个主要原因:

1)意识形态:用户对Mono是基于封闭源Microsoft产品的想法感到不满意。但是,Mono本身是开源的。

2)专利:以前这是一个主要的关注点,自从Microsoft在将社区承诺应用于ECMA 334和ECMA规范335 以来就解决了。


4
论据是,社区的承诺是不够的-这不是意识的问题。
Broam

1

我不使用Mono,因为

  1. Microsoft声称IP侵权而未指明要侵权的内容,并且他们拒绝在Mono上进行澄清,只是说Novell用户受到了保护。我不相信Microsoft的社区承诺,除非他们采取行动予以支持。
  2. 单声道许可很复杂。由于零件的许可方式不同,法律专家很难理解普通用户。开源中的任何事物都难以理解。
  3. Miguel de Icaza承诺但未能兑现及时发布ECMA兼容源代码的承诺
  4. 遵循Microsoft标准的公司到处都是乱七八糟的事情,因为对他们而言,标准的存在已被破坏,并使其他公司处于不利地位
  5. 在Linux上使用.NET并没有好处,也没有明显的好处,几乎没有从其他平台移植过,并且Linux原生的任何内容都可以用其他语言编写
  6. Mono是一个不必要的分歧问题;它避免了更重要的问题,分散了我们的注意力并发挥了微软的作用

我认为任何人都可以并且应该使用Mono,但不希望使用它的用户默认不应该使用它。


我不认为微软曾经声称有患者侵犯单声道。但是,它承诺不起诉具有法律约束力的庄园。
蹦床

虚幻引擎需要几个单声道包;我相信,都是开源的。也许有一天,它们可能会被我们可以保持平静的事物所取代。
水瓶座力量
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.