2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

JRuby:该不该转向 Java 5?

  • 2007-07-30
  • 本文字数:1338 字

    阅读完需:约 4 分钟

jruby-dev 邮件列表中,一个关于向Java 5 迁移的讨论已经展开。早在Java 5 被引入之时,这就已经是对于Java 项目频繁讨论的话题了。有许多项目,例如Eclipse,选择尽可能久地保持对1.4 的兼容性,甚至有一些基本技术,例如OSGi 或者 SWT 还在保持对 1.1 和 1.2 的兼容性

独立应用程序在这方面问题则少了很多,尤其在它们的发行版附带了 JVM 的情况下更是如此。而在另一方面,类库则像个烫手山芋,因为向 Java 5 的迁移,从根本上意味着被强制部署在 Java 1.4 环境下的类库使用者将无法使用该类库,或者他们必须使用类库能够支持 Java 5 的较新版本。

JRuby 则处在独立应用程序和类库之间。毕竟,人们可以使用下面的一行命令来运行任意的 Ruby 程序:

jruby filename.rb对于这种情况,JRuby 需要某个特殊的 Java 版本并不会成为问题,除非 JRuby 中的特定代码需要 Java 5 类库。当然,如果公司在某个 Java 版本上进行了标准化的话,那么这就会成为一个问题了。

当 JRuby 被用在应用程序内部作为 Ruby 解析器的时候,它的身份也就变成了一个类库。在这种情况下,如果提高了 JRuby 所需的 Java 版本,也将迫使宿主应用不得不升级相应的需求(如果这些应用还没有使用 Java 5)。

除了允许 JRuby 团队使用诸如Annotation或者Enum这样的新语言特性以外,人们对打破与 1.4 的兼容性以及使用 Java 5 的新特性方面,还有一些相当有力的支持论据。其中之一就是在 Java 5 新增的高级并发类库。目前,JRuby 的分发包中还附带了用于早期Java 版本的 <strong>java.util.concurrent</strong>移植版类库,这就意味着下载大小的增加。此外,由于这个移植版无法使用 Java 5 中针对并发支持的类,它其中的某些功能无法和 Java 5 的java.util.concurrent系列类相匹敌的性能。

保持 1.4 版本兼容性的主要原因是大公司的升级周期一般都非常长,因此他们会试图在软件版本上进行标准化。然而,由于绝大多数平台都提供了 Java 5 的支持,当然也就是 Windows、MacOS X 和 Linux 的三重唱,因此反对向 Java 5 迁移的理由已经很快变得非常微不足道了。在 Java 5 发布了三年之后,有了早期采用者发现并报告问题之后,JVM 及其类库也已经可以很安全地被认为是成熟了的。

另外一个原因相比起来就不是那么重要了,即缺乏一个基于自由(文如其名)软件许可,与 Java 5 完全兼容的实现。尽管GNU Classpath以及Apache Harmony项目正在一步一步朝着完全兼容的目标挪进,但它们都还不到火候。实现95% 以上的API 完成度,已经是这些项目所取得的极大成功,但比起和Java 5 100% 兼容的目标,还仍显不足。尽管类似于Eclipse 这样的大型应用可以运行在开源JVM 之上,但仍有一些小的不兼容问题会随时跳将出来,也可能成为支持部门头上的一道金箍。

随着Sun 公司OpenJDK 项目的产生,一个完全以GPL 授权的Java 将会在不久的将来问世。(注意,Java 的其中一些部分还没有以GPL 的形式授权,因为Sun 还不具备将这些部分用GPL 授权的权力)。

应该提到的是,已经发布的JRuby 1.0 是兼容于Java 1.4 的,并且也将一如既往保持对1.4 的支持。

对此您又是什么样的想法呢?您是否还在从事需要保持1.4 兼容性项目的开发呢?如果是的话,在公司标准之外是否还有其它原因呢?

查看英文原文: JRuby: Java5 or not?

2007-07-30 01:001121
用户头像

发布了 117 篇内容, 共 20.7 次阅读, 收获喜欢 0 次。

关注

评论

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

首发,Higress AI 网关率先支持 QwQ-32B,推理成本可再降 90%

阿里巴巴云原生

人工智能 云计算

GSoC谷歌编程之夏2025招募中,Apache DolphinScheduler需要你的提案!

白鲸开源

开源 Apache DolphinScheduler 谷歌 GSoc

AI驱动智能决策:商品计划领域的零售时装品牌革新之路

第七在线

基于阿里云可观测产品构建企业级告警体系的通用路径与最佳实践

阿里巴巴云原生

云计算

超实用!Prompt程序员使用指南,大模型各角色代码实战案例分享

王磊

CAD线型比例变了怎么办

极客天地

局域网开会的视频会议软件推荐哪个?

BeeWorks

IM 即时通讯IM 私有化部署 企业级应用 局域网视频软件

Higress 开源 Remote MCP Server 托管方案,并将上线 MCP 市场

阿里巴巴云原生

云计算

类似企微钉钉的企业聊天软件,这个局域网聊天工具可以选择!

BeeWorks

IM 即时通讯IM 私有化部署 企业级应用 局域网视频软件

CAD如何提取图形数据

极客天地

纯干货 | Dolphinscheduler Master模块源码剖析

白鲸开源

开源 源码解析 Apache DolphinScheduler

新一代AI低代码MES,助力企业数字化升级

万界星空科技

AI 制造业 mes AI低代码平台 AI低代码MES

安装Redis

^O^

redis

<技术白皮书> 智能开发范式革新:iVX 图形化平台重塑软件开发生态

代码制造者

Burp Suite Professional 2025.3 发布,引入 Burp AI 通过人工智能增强安全测试工作流程

sysin

burp

基于阿里云可观测产品构建企业级告警体系的通用路径与最佳实践

阿里巴巴云原生

云计算

Nacos 发布 MCP Registry,实现存量应用接口“0改动”升级到 MCP 协议

阿里巴巴云原生

云计算

加速人形机器人技术发展,2025亚洲人形机器人展开启全国巡展

AIOTE智博会

机器人展 机器人展览会 人形机器人展 机器人展会

Higress.ai 站点全新发布,轻松解锁 AI 新能力,开启全球服务!

阿里巴巴云原生

阿里云 AI 云原生

怎样购置有限元分析软件 Abaqus?达索代理商思茂信息为您答疑

思茂信息

abaqus 达索系统 正版软件

25年湖北等保测评机构名单汇总

行云管家

等保 堡垒机 等保测评

通义灵码 Rules 来了:个性化代码生成,对抗模型幻觉

阿里巴巴云原生

云计算 通义灵码

《Operating System Concepts》阅读笔记:p528-p544

codists

操作系统

加入DolphinScheduler大家庭,成为大数据调度的传播者!

白鲸开源

开源 Apache DolphinScheduler

直播预约|ApsaraMQ x Confluent 云原生 Kafka 线上沙龙

阿里巴巴云原生

kafka 阿里云 云原生

2年前端人血泪经验,避坑贴……

伤感汤姆布利柏

Java程序员需要掌握的技术

秃头小帅oi

【LazyLLM × MinerU】你的私人学术特工已上线!PDF拆解黑科技来了,让RAG更懂你的文章!

商汤万象开发者

AI LLM

CAD怎么插入PDF图纸

极客天地

大模型 Token 的消耗可能是一笔糊涂账

阿里巴巴云原生

阿里云 云原生 Token

JRuby:该不该转向Java 5?_Java_Werner Schuster_InfoQ精选文章