写点什么

Sun 的 JDK7、OpenJDK 及 IcedTea 释疑

  • 2009-01-16
  • 本文字数:1791 字

    阅读完需:约 6 分钟

由于 JDK7 OpenJDK IcedTea 都是并行发展的,它们之间到底是什么关系很容易让人迷惑。OpenJDK 的质量主管 David Herron,试图澄清相关情况并解释为什么 JDK7 花费了这么长时间。

David 先描述了 OpenJDK 6 和 JDK 6 之间的不同:

OpenJDK 6 是 OpenJDK 7 的一个分支,为了通过 JCK 6 测试条件的检验,我们团队从 OpenJDK 7 分支上剥离出了很多代码,直到它符合 Java 6 规范为止。 关键是 OpenJDK 6 工作得非常好,好几个 Linux 的发行版都使用它作为其 JDK,它能够通过 JCK6 测试套件的测试,这意味着 OpenJDK 6 可以被用来构建一个兼容的 JDK,但是很不幸,我们所希望的这种进化轨迹相对来说是短期的。它服务于一个目的,即,拥有一个兼容 Java6 的完全开放的 OpenJDK。

接着,他谈到了 OpenJDK 和 IcedTea 的关系:

看上去有些人非常喜欢用“./configure”而不是设置环境变量,并运行“make”。IcedTea 项目最初是由于 OpenJDK 不完整(因产权 而造成的障碍)而创立的,社区需要一个完整的开源工具链及代码库。IcedTea 长期以来一直是 OpenJDK 的一套补丁,正如刚才我所说到的,它有一个 基于“./configure”的不同的构建系统。 在 OpenJDK 中,我们已经替换了产权代码(encumbered code),因此不再有障碍了。正因为我们的努力,IcedTea 项目已经减少了使用补丁的数量。IcedTea 中看上去不错的一点是,它的 configure 脚本使得在多种不同的模式下构建 OpenJDK 变得很容易,比如使用 Zero Assembler Port 在非 x86/sparc 芯片上来支持编译等等。 IcedTea 提供的一大块内容是 plugin/java-web-start 基础架构。我们还没有把我们的 plugin 开源,并且对于 6u10 我们重写 了该 plugin。人们都希望把新 plugin 开源给 OpenJDK 项目,但是据我所知,这一决定还没有提到议事日程。

David 表示 JDK7 和 OpenJDK7 将拥有(几乎)同一个代码库:

……计划 OpenJDK7/JDK7 的起点代码库将几乎一样。维护分支显然是昂贵的,如果 JDK7 与 OpenJDK7 差异太大,会导致两个结果:a) 非常 昂贵,b) 破坏我们在开源生态系统上所做的努力。 但是“几乎一样”代表着还是有一些不同。 还记得因产权而造成的障碍吗?其中有一些是截至 2007 年 5 月之前不能开源的代码(现在已经可以开源了),而另一些则还未得到同意(比如 SNMP),但是 有一些开源代码可以替换我们仍在使用的老的还未开源的那一部分代码。这些主要集中在字体及图形光栅部分。这些老的未开源光栅代码,尽管是有产权的且经过了 10 余年的修正和精调(有较好的质量质量保证),但是对于产生 JDK 构建的开源替代品来说,它们与现存非开源代码一样快速、稳定且拥有非常好的质量。

按照 David 的说法,OpenJDK 源码发布、JavaFX 以及整体资源不足是导致 JDK7 花了这么长时间的原因:

要是我们按照正常模式走,JDK7 现在就应该已经出来了。即,Java6 是于 2006 年 12 月发布的,而我们的正常模式是两个主版本之间间隔 18-24 个月,这意味着 JDK7 应该在 2-5 个月之前就已经发布了。到底怎么回事呢?很明显是几个方面的资源短缺。 比如,2007 年 5 月发布的近乎完整的 OpenJDK 源码花费了大量人力物力。但是在 2007 年 5 月的 JavaONE 大会上又宣布了一个产品(一个叫做 JavaFX 的小家伙),它又变成了对 Java 的一个较大调整(正如一些人所说,它不是原来那个 Java 了),而且也耗费了大量的工作。 换句话说,生产 JDK7 的时间被用来做 JDK6u10 和 JavaFX 了。

Joe Winchester 最近在 Java Developers Journal 的一篇文章上表达了关于 JavaFX 减缓了平台发展的类似主张,他将 Java 采用动态语言和类似 JavaFX 的技术,与 90 年代 Smalltalk 团队要把 Java 运行在其 VM(叫做统一 VM—— Universal VM)上所做的努力进行了对比。该作者指出,就像 Smalltalk 的情况一样,最好应该把精力集中在 Java 自身上,“而不是扩充 JVM 把它变成万金油 ”。

还要注意的是 OpenJDK 理事会即将寿终就寝,像 Neal Gafter 这样的人还关心着该组织新的组成形式

OpenJDK 理事会已经延期一年了,在 4 个月之内就要解散,有两个非 Sun 的位置仍然空缺。2008 年 4 月公布的最近一次会议备忘录中,大家一致同意在 2008 年底之前起草出宪章草案。 理事会的七个成员都是谁?我们能够看到 4 月之后的会议备忘录并获得宪章方面的现状报告吗?

你怎么看 Sun 的 JDK 以及开源Java 的未来呢?

查看英文原文: Sun’s JDK7, OpenJDK & IcedTea: Disambiguation

2009-01-16 07:577010
用户头像

发布了 150 篇内容, 共 46.1 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

一个字牛!腾讯大牛把《数据结构与算法》讲透了,带源码笔记

程序知音

Java 数据结构 算法 后端 数据结构与算法

低代码的“钱景”——专业的事交给专业的人来做

引迈信息

低代码 JNPF

Nautilus Chain上线主网,为DeFi和流支付的未来构建基础

股市老人

Nautilus Chain上线主网,为DeFi和流支付的未来构建基础

西柚子

火爆Github的1000道Java面试题:无死角打击所有Java面试问题,按这个学,找工作完全没问题!

架构师之道

Java 编程

一张图感受真实的 TCP 状态转移

九零后程序员

TCP 网络 Linux Kenel ebpf

分布式事务的21种武器 - 6

俞凡

架构 云原生

未来边缘计算:趋于分布式智能

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

2023-05-27:给你一个只包含小写英文字母的字符串 s 。 每一次 操作 ,你可以选择 s 中两个 相邻 的字符,并将它们交换。 请你返回将 s 变成回文串的 最少操作次数 。 注意 ,输入数据

福大大架构师每日一题

Go 算法 rust 福大大

无惧面试!2023最新最全Java面试手册全网首次开放下载

程序员小毕

程序员 多线程 高并发 架构师 java面试

2023华为伙伴大会:ISDP发布伙伴体验中心,邀伙伴探索数智化未来

科技怪授

模板一作业

家有两宝

#架构训练营

WritingGPT: 基于ChatGPT和AutoGPT打造个人写作团队

俞凡

人工智能

Java 修改项目名称及其相关信息

Andy

Nautilus Chain上线主网,为DeFi和流支付的未来构建基础

鳄鱼视界

这个线上BUG,让你彻底搞懂了MySQL的字符集,别问我咋知道的

Java你猿哥

Java MySQL ssm 字符串 字符集

Nautilus Chain上线主网,为DeFi和流支付的未来构建基础

BlockChain先知

不愧是阿里巴巴内网的“高并发系统设计”学习笔记,全程不讲一句废话!

采菊东篱下

Java 高并发

高并发封神之作的《亿级流量高并发》惨遭GitHub免费开源

小小怪下士

Java 程序员 高并发

面试官:SpringBoot可以同时处理多少请求?

做梦都在改BUG

Java spring Spring Boot 框架

腾讯T8架构师基于SpringBoot2.x搭建分布式架构

做梦都在改BUG

Java spring Spring Boot 框架

如何通过Python将JSON格式文件导入redis

华为云开发者联盟

Python redis 华为云 华为云开发者联盟 企业号 5 月 PK 榜

腾讯T4大牛整理的SpringBoot文档,覆盖你认知中的所有操作

程序知音

Java 架构 微服务 springboot Java进阶

解决缓存与数据库数据不一致的问题,这篇文章告诉你如何做!

做梦都在改BUG

Java 数据库 缓存 一致性

线程的生命周期和常用方法

Java你猿哥

源码 jdk 线程 多线程 Monitor

GaussDB(DWS)条件表达式函数返回错误结果集排查

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

华为ISDP:从ChatGPT说起,企业作业数字化转型需要怎样的平台工具?

科技怪授

首页推荐!阿里大佬带你一周刷完Java面试题1700页,offer拿到手软

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache抽象详解的核心原理探索

洛神灬殇

spring 缓存 cache 缓存管理

Python潮流周刊#3:PyPI 的安全问题

Python猫

Python 编程 rust 安全

Sun的JDK7、OpenJDK及IcedTea释疑_Java_Dionysios G. synodinos_InfoQ精选文章