java是一种开源编程语言吗?

Gur*_*lki 69 java open-source

我知道Python,Ruby,Perl都是开源的,但Java真的是一种开源编程语言吗?

我一直在Google上搜索,但我找不到合适的答案.

kus*_*sma 83

编程语言不是自开源的,不是它的实现,但它的实现可能是.是的,有Java的开源实现.Sun的Java实现(最受欢迎的实现)就是其中之一.

  • 为了在技术上正确,作为JDK的一部分,Sun发布了**Java实现作为开源.还有内部Sun代码和工具,从来都不是开源的.既然Oracle拥有专利和Sun代码,情况就更加模糊:甲骨文起诉谷歌只是为了在Java中使用API​​.en.wikipedia.org/wiki/Oracle_v._Google另请考虑www.cnet.com/news/apache-foundation-quits-proprietary-java-process/"说平台完全由Oracle控制,Apache Software Foundation从Java社区流程执行委员会." 2010年12月10日. (3认同)
  • 嗯,当前的“JDK6”是“公开的”源代码(在 JRL、JIUL 下,可能还有其他)。OpenJDK(6-open 和 7)是 GPL(可选地带有 CLASSPATH 例外)。 (2认同)

pax*_*blo 20

是的,或者它最终会成功(可能仍有一些东西正在替换,因为它们是在许可下使用的).Sun 致力于使其成为开源的,您可以从中下载它.查看OpenJDK.

  • 嗯,我认为这实际上没有意义,@ Rob.所有*语言*都是开源的,因为它们已被指定(源是关于工作原理的规范,例如ISO C,语言,因为C99标准是开源的).讨论开源语言实现的源代码更有意义.如果你在谈论一种语言是否允许社区对其演变进行输入,这可能是有意义的,但是,由于OP接受了这个答案,我将假设我的解释是正确的:-) (21认同)
  • 这个答案是关于开发工具包,问题是关于语言. (9认同)

Tho*_*ens 14

语言本身的"官方"SUN实现不是,但是有一个社区驱动的过程(不确定它的工作原理)是否有改进语言的建议 - Java Community Process.还有Java开发工具和运行时的开放实现,例如OpenJDK.


ABc*_*ter 7

还没有,但很快就要开源了.

资源:


引自https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se:

  • Oracle建议将Java SE的发布节奏提高到每六个月一次
  • Oracle将简化开发人员,客户和消费者使用Java SE的方式
  • 从JDK 9 GA开始,Oracle计划在GPL下发布OpenJDK版本
  • Oracle为Java SE提出了一个时间驱动的发布模型,而不是历史特征驱动模型
  • Oracle JDK将为OpenJDK提供以前的商业功能,如Java Flight Recorder
  • Oracle将与其他OpenJDK贡献者合作,使社区基础设施完整,现代且易于访问
  • Oracle JDK将继续作为商业长期支持服务
  • 一旦OpenJDK二进制文件可与Oracle JDK(目标2018年末)互换,Oracle JDK将主要用于商业和支持客户.Oracle将继续增强完整的即用型应用程序的打包和分发

我们已将Java EE移至:http://openjdk.java.net/projects/jdk9/spec/

进一步阅读:

  1. https://blogs.oracle.com/theaquarium/opening-up-ee-update
  2. https://blogs.oracle.com/java-platform-group/java-se-offerings
  3. https://blogs.oracle.com/java/java-9-release-now-available
  4. https://blogs.oracle.com/java-platform-group/convergence-of-oracle-java-se-embedded-with-oracle-jdk


ano*_*ous 7

来自 Oracle America Inc 诉 Google LLC,编号 3:10-cv-03561-WHA:

\n\n

“...\n本次上诉涉及 Java SE 1.4 版和 5.0 版的 37 个 API 包。我们已经得出结论,涉及的 37 个 Java API 包的声明代码和 SSO 均享有版权保护。\n Oracle, 750 F.3d at 1348。Java 编程语言本身是免费的,无需许可即可使用。现阶段,毫无争议的是,用 Java 编程语言编写 \xe2\x80\x9c62 类(以及一些必须使用分布在 Java API 库内的三个包中的方法)。否则语言本身将会失败。\xe2\x80\x9d Order Denying JMOL, 2016 WL 3181206,at *5。毫无疑问,任何人使用 Java 编程语言可以编写自己的预编写程序库来执行各种功能。虽然 Oracle 让 Java 平台免费供程序员构建应用程序 (\xe2\x80\x9capps\xe2\x80\x9d),但它设计了一种许可计划吸引程序员,同时将平台商业化。在相关部分,Oracle向那些想要在竞争平台中使用API​​或将其嵌入电子设备中的人收取许可费。为了保留\xe2\x80\x9c一次写入,随处运行\xe2\x80\x9d的理念,Oracle对被许可方提出了严格的兼容性要求。Oracle,750 F.3d,1350。Oracle 还根据开源许可免费提供了一个名为 \xe2\x80\x9cOpenJDK 的 Java 版本。\xe2\x80\x9d 拒绝订单 JMOL,2016 WL 3181206,位于 *10。然而,Oracle 坚持认为 OpenJDK 有一个重要的问题:任何对 OpenJDK 中的软件包进行改进的公司都必须将这些更改免费提供给 Java社区。\xe2\x80\x9d 上诉人 Br。53. 有证据表明,到 2005 年,Oracle 已为 7 亿台 PC 授予了 Java 许可。尽管 Oracle 从未成功地使用 Java 开发了自己的智能手机平台,但它为移动设备授予了 Java SE 许可。根据 Oracle 的说法,\xe2\x80\x9c 移动设备市场利润特别丰厚,\xe2\x80\x9d 和 \n ORACLE AMERICA, INC. v. GOOGLE LLC 10 \n\xe2\x80\x9cJava 迅速成为领先的平台在手机上开发和运行应用程序。\xe2\x80\x9d 上诉人 Br. 9. \n..."

\n\n

该语言的部分内容需要支付许可费,因此这些部分似乎不是“开源”的......

\n


Eas*_*onk 5

短语"Java编程语言"是指Sun(现在的oracle)提供的规范.Sun提供了Java虚拟机和Java编译器的参考实现.这两者都不是开源的(至少不完全像Python一样).

但是,OpenJDK是一个完整的JAVA编程语言开源实现.可能还有更多.

大多数程序员都认为Java是Sun提供的编程语言.我认为Sun只提供语言规范实现,任何人都可以在任何许可下完成.