写点什么

Charles Nutter:为何选择 JRuby?

  • 2010-03-18
  • 本文字数:865 字

    阅读完需:约 3 分钟

作为 MRI 之外的另一个 Ruby 实现,JRuby 正受到越来越多的关注,日前 JRuby 团队核心成员 Charles Nutter 接受了一个访谈,深度探讨了很多JRuby 相关的话题。

首先,JVM 是一个相当成熟的VM,在内存管理、性能、安全性等方面都表现出色,而且覆盖几乎所有平台,同时拥有多个持续维护的实现可供选择。JRuby 基于JVM 之上,天生拥有很多优势。例如MRI 上经常被提及的垃圾回收性能问题, REE 通过 GC 补丁大幅提升了性能,而 JRuby 则可充分利用 JVM 的垃圾回收机制。

在 JRuby 中,我们能充分利用 JVM 在 GC 方面多年努力的结果。以 Hotspot 为例,这是通常我们用来测试的 JVM,你有不止 1 个,而是 5 个可供选择的垃圾回收器。[…] 根据应用程序行为(或者你需要的行为)的不同,这些垃圾回收器能协同工作。而且你还能对它们进行调整和监控。

在多种 Ruby 实现中,JRuby 的启动时间相对较长,而且启动后还要经过一段“预热”,JRuby 才能发挥其最佳性能。这对服务器端应用来说不算什么,可客户端程序就不行了。Charles 在其近期的博客中也提供了一些建议,帮助缩短启动时间。好在情况正在不断改观,新版JVM 发布后,JRuby 的启动速度将会得到进一步提升。

Java 在企业级应用方面有着大量的经验,借助 JRuby,我们能够更好地融合 Ruby 与 Java,为开发者提供更好地工具及环境(例如 Torquebox ):

Torquebox 和 GlassFish 都是很好的例子,通过一点 Ruby 技巧,如何赋予 Java/JVM 生态环境中最好的那些部分新的力量。无论选择谁,你都将获得一个简单的一站式部署方案,其中包含了设计良好的服务 API 和管理工具。

JRuby 自 1.2 RC1 开始就支持 Android 平台, ruboto 已能很好地在手机上提供 irb 功能。Android Scripting Environment 也提供了 JRuby 支持。随着 Android 1.6 和 2.0 的更新,无需任何修改就能在 Android 平台上运行 JRuby 的日子也不会远了。

虽然自去年 11 月 JRuby 1.4 发布后,很长一段时间都没有发布新版本,但 JRuby 的社区正在不断发展,相信 2010 年里,JRuby 将会有更好地表现。作为读者,您对 JRuby 的看法是什么?您会在项目中使用 JRuby 吗?

2010-03-18 02:051909
用户头像

发布了 135 篇内容, 共 60.2 次阅读, 收获喜欢 43 次。

关注

评论

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

Java数组、排序和查找

timerring

Java

危中蕴机:Oi! Network展现出的勇气和决心

股市老人

ContentProvider介绍

梦笔生花

ContextClassLoader 三周年连更

成都.NET线下技术沙龙倒计时一天

MASA技术团队

.net 开发者 MASA Stack

【坚果派-坚果】获取OpenHarmony 3.2 Release源码的两种方式

坚果

HarmonyOS OpenHarmony OpenHarmony3.2 三周年连更

一文掌握 Go 文件的读取操作

陈明勇

Go golang 文件读取 三周年连更

Unity 之 转微信小游戏本地数据存储

陈言必行

Unity 三周年连更

kubernetes indexer源码解析

欢乐的阿苏

golang DevOps cache 源码阅读 #Kubernetes#

kubernetes fifo源码解析

欢乐的阿苏

golang DevOps 后端 源码阅读 #Kubernetes#

AI日课@20230412:Prompt Engineering

无人之路

ChatGPT

从ReentrantLock角度解析AQS

Java AQS 并发

跨平台应用开发进阶(四十三)一文走近网络层抓包工具:WhireShark

No Silver Bullet

网络层 抓包工具 三周年连更

Go语言开发小技巧&易错点100例(三)

闫同学

Go 三周年连更

C生万物 | 反汇编深挖【函数栈帧】的创建和销毁

Fire_Shield

C语言 汇编 三周年连更 函数栈帧

程序员如何保住自己的饭碗?| 社区征文

liuzhen007

程序员 三周年征文

Unity 之 使用原生UGUI实现随手移动摇杆功能经典实例

陈言必行

Unity 三周年连更

Spider实战-抓取视频

浅辄

三周年连更

影驰 GeForce RTX 4070显卡正式开售!星曜 OC系列首发评测抢先看

Geek_2d6073

RabbitMQ组件介绍

穿过生命散发芬芳

RabbitMQ 三周年连更

Golang并发编程实战:使用ring buffer实现高效的阻塞队列

Jack

openEuler、龙蜥Anolis、统信UOS系统下编译GreatSQL二进制包

GreatSQL

不要过于吹捧ChatGPT:人工智能生成文字还有很大提升空间

石头IT视角

kubernetes delta_fifo源码解析

欢乐的阿苏

golang DevOps 后端 源码阅读 #Kubernetes#

一定是疯了!在M1的Mac上玩OpenVINO,让Intel怎么看我?

IT蜗壳-Tango

OpenVINO Stable Diffusion 三周年连更

【Linux】之【磁盘】相关的命令及解析[df、du、iostat、iotop]

A-刘晨阳

Linux 三周年连更 磁盘空间

Java程序控制结构

timerring

Java

如何使用 taosKeeper 做好监控工作,时序数据库 TDengine 3.0 监控工具详解

TDengine

大数据 tdengine 物联网 时序数据库 数据监控

vivo全球商城:电商交易平台设计

vivo互联网技术

分布式事务 订单管理 架构设计 多租户 交易平台

论程序员的为码之“道”

酱紫的小白兔

数据库原理及MySQL应用 | 约束

TiAmo

数据库 MySQL数据库 三周年连更 数据库约束

专注写作:Ulysses for Mac中文版

真大的脸盆

Mac markdown编辑器 Mac 软件 文本编辑 文本管理工具

Charles Nutter:为何选择JRuby?_Java_丁雪丰_InfoQ精选文章