Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java是开源的,那又怎样?_Java_.net_Open Source - Fatal编程技术网

Java是开源的,那又怎样?

Java是开源的,那又怎样?,java,.net,open-source,Java,.net,Open Source,我总是听说Java开源是一个很大的好处,但我看不出Java开源应该如何吸引我使用它,而不是.NET开源。有一些问答部分这些发展对行业的意义是什么?特别是它提供了一点信息,但是免费是Java开源的唯一或最大优势吗 因为我是一个初学者,你们专业人士中有没有人注意到自从改变后有什么重大的不同 编辑: 请忽略这个问题的.NET部分,我只是将其用作比较。我真正关心的是了解开源对Java有什么好处。Java和.Net都是任何人都可以编写开源实现的标准。NET3.0恰好没有完整的开源实现 不管开放性如何,对于

我总是听说Java开源是一个很大的好处,但我看不出Java开源应该如何吸引我使用它,而不是.NET开源。有一些问答部分这些发展对行业的意义是什么?特别是它提供了一点信息,但是免费是Java开源的唯一或最大优势吗

因为我是一个初学者,你们专业人士中有没有人注意到自从改变后有什么重大的不同

编辑:


请忽略这个问题的.NET部分,我只是将其用作比较。我真正关心的是了解开源对Java有什么好处。

Java和.Net都是任何人都可以编写开源实现的标准。NET3.0恰好没有完整的开源实现

不管开放性如何,对于您和许多人选择Java的原因来说,区别在于可移植性。Java的实现要多得多,而且大多数都是封闭的

Java可以为手机创建应用程序。Java可以创建web应用程序。Java在Mac上运行。不是.Net


Sun只是在宣传通用开源内核可能提供的简化和标准化。但是如果你仔细查看你链接的页面,你会发现它使用的是将来时态。

说.NET是封闭源代码并不完全公平——微软的.NET运行时和开发工具是封闭源代码


是.NET世界中许多东西的开源实现,CLR和C是最大的。如果你是一个主流用户,可能不会立即为你带来好处

然而,Java的开源基础使人们更容易将其适应于封闭源代码供应商认为不需要支持的更特殊的需求。较小的供应商或开源项目可以针对这些特殊需求提出解决方案

例如,Java运行在各种各样的平台和操作系统上,大多数平台和操作系统都是由Sun以外的公司支持的,甚至在开源之前也是如此

你的专业人士中有没有人注意到自从改变后有什么重大的不同


我喜欢Linux发行版现在包含官方的Sun JVM和JDK,而不是让您单独安装或使用提供的最兼容的替代实现。

虽然有竞争性的开源实现,但.NET的主要实现是封闭源代码的


JVM的主要实现是开源的,尽管也有竞争性的封闭源代码实现

Java标准仍然完全由Sun Oracle控制。其他人可以提供意见,但最终决定取决于Sun


CLR的标准完全由ECMA和ISO控制。微软可以提供意见,但最终的决定取决于标准机构。如果微软真的忽视了他们的决定,那么这个标准是否仍然适用还值得商榷。

开放JVM源代码有助于将其移植到其他架构(如ARM)以供嵌入式使用。

更多选择。灵活性Java社区进程。我认为主要较低的拥有成本—Eclipse+ApacheServer+Linux—都是免费的。

自从OpenJDK开源以来,它的改进是无法估量的,以下是一些:

该项目由Redhat提供,已将Hotspot移植到许多新平台,如PowerPC 32和64位、IA-64、ARM和zSeries,并使未来到其他平台的端口变得更加容易。Shark子项目还使其在其中一些平台上具有更好的性能 OpenJDK已经移植到新的操作系统上,如和 已由个人和公司报告和修复 已加入OpenJDK项目,一个MacOS端口正在准备中 IBM也是如此 各种创新项目,例如 OpenJDK jtreg测试现在可用于其他Java实现 对于普通Java程序员来说,一些直接的好处是:

您可以调查并修复JDK源代码中的错误 您可以构建OpenJDK的自定义版本,例如,将其剥离以使其更小 在嵌入式设备上发布OpenJDK不需要支付许可费
我很想把它标记为主观的和有争议的,但我准备让它有怀疑的好处,因为它可能导致一些有趣的答案。其他人怎么想?你可能应该把这个问题放到社区维基上,因为它没有明确的答案。只需单击“编辑”并在问题文本下方标记复选框。@johnc:我投票决定结束。Mono让这个问题变得毫无意义,所以我不认为它能带来任何有用的东西。。。让我想想。我不是想争论,我真的想知道。我只是不明白在开发框架的上下文中开源是一个优势还是一个劣势,除了用于开发的软件工具在
Java在很大程度上是免费的。下面的一些人说,称.NET为封闭源代码是不公平的,但我接受了不同的教育。如果我被教错了,有人能用一些具体的文献来启发我吗?此外,我不知道Mono如何计数,因为它并没有得到微软的正式支持。@typoknig我绝不会试图把你描绘成一个巨魔。投票结束是一种尽可能客观地保留可用问题的机制,以避免成为“对话”网站。为了记录在案,我没有投票结束这个问题。Mono不是开源的吗?更不用说在Windows以外的其他操作系统上了?您或您的用户实际使用的Java实现不一定是开源的。说得好。macjvm当然不是,尽管据推测它主要基于Sun的code@Potatocorn:即使是可移植性的争论也变得毫无意义。现在有几个Gnome应用程序使用Mono。Linux发行版中包含了多少Java应用程序?@Martinho:您见过多少用于手机的.net应用程序?Mono是.net 2.0源代码的完整实现:。我喜欢Linux发行版现在包含官方的Sun JVM和JDK,而不是让您单独安装或使用提供的最兼容的替代实现。谢谢,这就是我想要的信息。Java是开源的,这实际上是该平台的一大好处。你有关于这个主题的任何文献的链接吗?.NET是微软的产品,而Mono不是。这就像仅仅因为你改变了标志就把一辆福特封闭源码车称为雪佛兰开放源码车。@mmsmart:当然,但你永远不知道它会“开放”多久。米格尔·德伊卡扎,对于最近的混乱,最大的.Net“信徒”说了一句非常不好的话:当我要信任一家公司时,我会非常谨慎,因为这家公司一直在玩肮脏的游戏,而且被裁定滥用其垄断地位来保护和扩大其垄断地位,这是提供“开放”和玩得好的最终裁决。就连德伊卡扎现在也意识到了这一点。他花了好几年才说出这句话;