Java是开源的,那么呢?

时间:2010-04-06 03:34:23

标签: java .net open-source

我总是听说Java是开源的,这是一个很大的好处,但是我没有看到Java是开源的应该让我使用它而不是封闭源的.NET。 This website有一些Q& A部分(这些发展对行业的意义何在?特别是)提供了一些信息,但是只有(或最大)免费Java是开源的优势吗?

由于我是初学者,有没有任何专业人士发现自改变以来有什么重大差异?

编辑:

请忽略此问题的.NET部分,我只是将其用作比较。 我真正关心的是了解开源已经成为Java的好处。

7 个答案:

答案 0 :(得分:6)

如果您是主流用户,可能对您没有直接的好处。

然而,Java的开源基础使人们更容易使其适应闭源供应商认为不需要支持的更多利基要求。较小的供应商(或开源项目)可以提供满足这些特殊需求的解决方案。

例如,Java运行在各种各样的平台和操作系统上,其中大部分都是由Sun以外的公司支持的(即使在开源之前也是如此)。

  

有任何专业人士发现自改变以来有任何重大差异

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

答案 1 :(得分:4)

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

Mono是.NET世界中很多东西的开源实现 - CLR和C#是最大的。

答案 2 :(得分:3)

.NET的主要实现是封闭源代码,尽管存在竞争的开源实现。

JVM的主要实现是开源的,尽管存在竞争的闭源实现。

Java的标准完全在Sun(Oracle)的控制之下。其他人可以提供意见,但最终的决定取决于Sun.

CLR的标准完全在ECMA和ISO的控制之下。允许Microsoft提供输入,但最终的决定取决于标准组织。如果Microsoft 忽略了他们的决定,则可以质疑该标准是否仍然相关。

答案 3 :(得分:3)

OpenJDK自开源以来的改进已经无法估量,仅举几例:

  • 由Redhat贡献的Zero项目已将Hotspot移植到许多新平台,如PowerPC(32位和64位),IA-64,ARM和zSeries,并使未来的端口更容易进入其他平台。 Shark子项目还在其中一些平台上提供了更好的性能
  • OpenJDK已移植到新的操作系统,例如HaikuBSD
  • 个人和公司已经报告并修复了
  • Many bugs
  • Apple加入了OpenJDK项目,MacOS端口正在加入
  • IBM已经
  • 各种创新项目,例如IcedRobot已成为可能
  • OpenJDK jtreg测试现在可用于其他Java实现

普通Java程序员的一些直接好处是:

  • 您可以调查并修复JDK源代码中的错误
  • 您可以构建OpenJDK的自定义版本(例如,将其剥离以使其更小)
  • 您无需支付许可费即可在嵌入式设备上运送OpenJDK

答案 4 :(得分:1)

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

无论开放性如何,您的差异(以及许多人选择Java的原因)都是可移植性。有更多的Java实现,大多数是关闭的。

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

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

答案 5 :(得分:1)

打开JVM源有助于将其移植到其他架构,例如ARM,以便嵌入使用。

答案 6 :(得分:0)

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