【问题标题】:Java is open-source, so what? [closed]Java是开源的,那又怎样? [关闭]
【发布时间】:2010-04-06 03:34:22
【问题描述】:

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

由于我是初学者,你们中的任何一位专业人士是否注意到更改后的任何重大差异?

编辑:

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

【问题讨论】:

  • 我很想将其标记为主观和论证,但准备好让它受益于怀疑,因为它可能会导致一些有趣的答案。别人怎么看?
  • 您可能应该将此问题设为社区 wiki,因为它没有明确的答案。只需点击编辑并标记问题文本下方的复选框。
  • @johnc:我投票决定关闭。 Mono 有点让这个问题变得没有意义,所以我认为它不会产生任何有用的东西......让我们看看。
  • 我不是要争论,我真的很想知道。我只是不明白在开发框架的上下文中开源是一个优势还是劣势(除了用于 Java 开发的软件工具大部分是免费的这一事实)。下面的一些人说将 .NET 称为闭源是不公平的,但我被教导不同。如果我被教错了,有人可以用一些特定的文献来启发我吗?此外,我不知道 Mono 是如何计算的,因为它没有得到 Microsoft 的官方支持。
  • @typoknig 我绝不会试图把你描绘成一个巨魔。投票结束是一种使可用问题尽可能客观的机制,以避免 SO 成为“对话”站点。郑重声明,我没有投票结束这个问题。

标签: java .net open-source


【解决方案1】:

如果您是主流用户,可能不会立即为您带来好处。

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

例如,Java 可以在各种各样的平台和操作系统上运行,其中大多数由 Sun 以外的公司提供支持(当然,在开源之前就是这种情况)。

有没有任何专业人士注意到更改后的任何重大差异

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

【讨论】:

  • “我喜欢 Linux 发行版现在包含“官方”Sun JVM 和 JDK 的事实,而不是让您单独安装它或使用提供的“大部分兼容”替代实现。”谢谢,这是我正在寻找的信息。 Java 是开源的,这实际上对平台有利。你有关于这个主题的任何文献的链接吗?
【解决方案2】:

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

Mono 是 .NET 世界中许多事物的开源实现 - CLR 和 C# 是最大的。

【讨论】:

  • .NET 是 Microsoft 产品,但 Mono 不是。这就像把福特(封闭源代码)称为雪佛兰(开源)仅仅因为你改变了标志。
  • @mmsmatt:当然,但你永远不知道它会保持“开放”多久。 Miguel de Icaza,最大的 .Net '信徒'最近对这个 SNAFU 说了很多坏话:itwire.com/opinion-and-analysis/open-sauce/… 在信任一家一直玩得很脏并且被裁定有的公司时,我会非常谨慎滥用其垄断地位来保护和扩大其垄断地位(这是最终判决)以提供一些“开放”的东西并表现得很好。甚至德伊卡萨现在也意识到了这一点。他花了几年时间说;)
【解决方案3】:

.NET 的主要实现是封闭源代码,但也有与之竞争的开源实现。

JVM 的主要实现是开源的,但也有相互竞争的闭源实现。

Java 标准完全由 Sun (Oracle) 控制。其他人可以提供意见,但最终决定权在 Sun。

CLR 的标准完全受 ECMA 和 ISO 的控制。微软可以提供意见,但最终决定权在标准机构。如果微软确实无视他们的决定,那么该标准是否会保持相关性值得怀疑。

【讨论】:

    【解决方案4】:

    自开源以来对 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 无需支付许可费

    【讨论】:

      【解决方案5】:

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

      不管开放性如何,对您而言(以及许多人选择 Java 的原因)的不同之处在于可移植性。 Java 的实现要多得多,而且大多数都已关闭。

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

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

      【讨论】:

      • Mono 不是开源的,更不用说在 Windows 以外的其他操作系统上?
      • “您或您的用户实际使用的 Java 实现不一定是开源的。” 好点。 Mac JVM 肯定不是(尽管据说它主要基于 Sun 的代码)
      • @Potatocorn:即使是可移植性的争论也越来越没有意义。现在有几个 Gnome 应用程序使用 Mono。您看到 Linux 发行版中包含多少 Java 应用程序?
      • @Martinho:你见过多少用于手机的 .net 应用程序?
      • Mono 是 .NET 2.0 的完整实现(来源:mono-project.com/Compatibility)。
      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-10-19
          • 2015-01-10
          • 1970-01-01
          • 2010-10-31
          • 2013-06-29
          • 1970-01-01
          • 1970-01-01
          • 2021-02-16
          相关资源
          最近更新 更多