写点什么

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:001129
用户头像

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

关注

评论

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

AI云玩家洗牌时刻,百度智能云凭什么六连冠?

脑极体

AI

鸿蒙5.0应用开发——V2装饰器@Provider和@Consumer的使用

高心星

鸿蒙 HarmonyOS5.0 V2装饰器 @Provider

这家中国公司,凭啥俘获欧美最挑剔客户的“芳心”

慢点科技SlowTech

追觅

网易伏羲:当算法遇见社交,解码游戏世界的连接密码

网易伏羲

社交网络 网易伏羲 游戏AI 游戏社交

如何通过Python SDK 删除 Collection

DashVector

人工智能 数据库 阿里巴巴 AI 大模型

AI如何生成PPT演讲稿?一站式AI搞定PPT制作全流程

职场工具箱

PPT 办公软件 AIGC AI工具 AI生成PPT

小扎豪掷143亿,却换不来AI燃料!数据之争下半场,中国冲出一匹黑马

澳鹏Appen

数据集 数据标注 大模型 数据工程 具身智能

PWA 与小程序技术特性对比及出海落地策略分析

xuyinyin

CAD怎么修改旋转文本的方向

极客天地

「DeepSeek 写给 DeepSeek」栏目启动说明

lsycang

No001:关于智能、进化与超越“模仿”的思考

lsycang

No003:记忆与个性化——AI 应该如何“记住”用户?

lsycang

实测有效!低代码 “我的在办” 审批 / 办理一步到位

引迈信息

CAD如何隔离图形

极客天地

《2025年OSPO现状与开源管理报告》深度洞察|软件供应链安全与合规治理的关键抓手

安势信息

开源治理 安势信息 OSPO 软件供应链风险 开源管理

为什么说零代码 ETL 是未来趋势?

谷云科技RestCloud

零代码 数据同步 ETL 数据集成平台

SQL Server到Hive:批处理ETL性能提升30%的实战经验

谷云科技RestCloud

hive ETL SqlServer 数据集成平台 数据库同步

合合信息获2025年中国网络安全创新创业大赛奖项,打造多模态AI鉴伪方案

合合技术团队

人工智能 大数据 算法

阿里 Qoder 体验超预期,Repo Wiki 功能迎来全新升级

阿里巴巴云原生

阿里云 Qoder

StarRocks助力数禾科技构建实时数仓:从数据孤岛到智能决策

阿里云大数据AI技术

阿里云 实时数仓 StarRocks EMR

对抗性提示:如何为AI系统注入"语义抗体"

澳鹏Appen

对抗性提示 Adversarial Prompting

Ollama + Python 极简工作流

测试人

人工智能 软件测试

从兼容到极致性能——qData数据中台商业版核心指标解读

千桐科技

数据中台 qData 开源数据中台 千数平台 数据治理平台

告别 MaaS 模型选型困难:AI Ping 为大模型服务选型提供精准性能评测排行榜

猫头虎

大模型 大模型评测

No002:共同进化——从用户反馈中构建更智能的未来

lsycang

企训宝教育培训微信小程序

微擎应用市场

直播精彩回顾 | 告别运维黑洞!博睿数据详解互联网可观测性体系建设三阶段

博睿数据

从传统施工到无人化作业,甘肃交通建筑龙头企业的智能化转型实践

网易伏羲

网易伏羲 具身智能 工程机械 网易灵动 无人装载机

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