写点什么

JVM 动态语言比武

  • 2008-03-12
  • 本文字数:1298 字

    阅读完需:约 4 分钟

JVM 在支持多语言方面的能力比较晚才受到 Sun 的重视。Sun 态度上的转变反映出了在 JVM 上工作的广大开发者的口味变化,一些开发者正打算通过动态语言来加速部分开发过程。通过纳入 JSR 223(Java 平台脚本),Sun 开始正式认可这种变化,JSR 223 让 Java SE 6 能够执行用 Ruby、Python、Groovy 或 JavaScript 等动态语言编写的脚本代码。

Travis Jensen 是 SirsiDynix 的一名技术架构师,最近他对Groovy、Jython 和JRuby 进行了一次对比,看看这三种语言是否适合用来给一个Java 开发团队进行Web GUI 开发。他按照以下五条粗略的标准来评估这三种语言:

1、 动态语言与 Java 之间的交互。Jensen 觉得 Groovy 最强,Jython 也相差无几:

“因为 Groovy 支持使用 Java 类型,所以覆盖类的方法可以很直接。实例化一个 Groovy 类和实例化一个 Java 类没什么两样。”

他认为 JRuby 的困难最大:

“从 Java 转到 JRuby 不是一件小事,虽然 JRuby 也是编译成 class 文件。编译器主要还是在加速 JRuby 本身的交互上着墨。”

2、 IDE 支持。因为 SirsiDynix 一律使用 JetBrains 公司的 IDEA,所以这方面的比较不够充分。比如 NetBeans 的 JRuby 插件就没有被纳入评估。Jensen 觉得 IDEA 对 Groovy 的支持让 Groovy 成为明显的胜利者。

3、Java 开发者的学习曲线。Jensen 的结论是 Groovy 又一次胜出:

“因为 Groovy 是 Java 的一个超集,所以从 Java 到 Groovy 的学习曲线是十分平直的。尤其是在 API 方面,它可以直接使用 Java API。说实话我不知道 Groovy 的生产效率是不是像 Python 和 Ruby 那么高,但我没有看到任何反面的证据。我直觉认为 Python 和 Ruby 的库更适合各自语言,因此会有更高的生产效率。”

他还认为尽管 JRuby 被看作是一种生产力非常高的语言,但它带给 Java 开发者的挑战却是最大的:

“由于 Ruby 更接近函数式语言,它的学习曲线是三者之中最高的。它在 Java 库以及原生库方面也存在相同的问题。不过老实说,我认为一旦越过困难的学习门槛,JRuby 的生产效率是最高的。在这方面我对 Ruby 只有敬佩之情。”

4、可供选择的 Web 框架。JRuby 赢得一票:

“凭着直接移植的 Rails,JRuby 得到了最高票数。”

Jython 是三者当中最弱的:

“CPython 有很多不错的选择,而 Jython 却已经两年停滞不前。主要原因有两重:一是 Jython 当前版本是 2.2.1,而 CPython 已经是 2.5 了;二是很多框架都为了性能而要求 C 代码编译。”

5、 社区支持:Jensen 觉得三种语言的社区支持都很优秀,不过 Groovy 稍胜一筹:

“因为 JVM 是 Groovy 的唯一平台,所以整个 Groovy 社区同时也属于 JVM 社区。对于打算部署到 JVM 上的人来说,这一点显然是重要的优势。而且 Groovy 挂着‘Java 脚本语言’的名头,也吸引了很多注意力,对社区显然是有好处的。”

当然像这样的评价多少都会有点主观,而且情况会随着时间改变。比如最近受到 Sun 雇佣 Frank Wierzbicki 和 Ted Leung 的鼓舞,Jython 的活跃程度就在上升,他们未来应该会改善 Jython Web 框架的状况。无论如何 Jensen 的文章提供了一个很好的起点,也给面临类似决策的架构师和开发者们设立了一组基本的评估标准。

查看英文原文: JVM Dynamic Language Shootout

2008-03-12 19:072603
用户头像

发布了 225 篇内容, 共 70.8 次阅读, 收获喜欢 52 次。

关注

评论

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

「高盛」最新人形机器人研报:主流人形机器人公司梳理和商业化瓶颈(附报告)

机器人头条

科技 大模型 人形机器人 具身智能

阜博集团完成对 PEX 的收购

财见

代码成为 "乐高积木"——AI 时代的开发革命

代码制造者

#AI编程

字节跳动开源 Godel-Rescheduler:适用于云原生系统的全局最优重调度框架

字节跳动开源

云原生 全局最优调度 多策略协同 高吞吐执行 生产级稳定性

Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座

SelectDB

AI 数据湖 存算分离 实时分析 日志场景

域名转移会影响域名解析吗?

国科云

如何使用 Databend Cloud 化简大数据架构?| Data Infra NO.24 回顾

Databend

程序员业务能力进阶:技术与业务的深度融合

代码制造者

低代码 #程序员

CAD如何利用两点间的中点解决镜像中心线问题

极客天地

CAD中的草图绘制功能

极客天地

Claude 语音模式曝光:支持多音色和文件上传;谷歌发布和海豚对话的语音模型 DolphinGemma|日报

声网

利用代理 IP 突破反爬限制,实现跨境电商数据高效爬取

Yan-英杰

Python 爬虫 爬虫实战

如何高效使用 Text to SQL 提升数据分析效率?四个关键应用场景解析

镜舟科技

数据湖 数据分析 分析型数据库 StarRocks Text to SQL

凌晨 GPT - 4.1霸气登场,性能狂飙还降价

GPU算力

openai ChatGPT ChatGPT4 LLM模型 #大语言模型

CodeBuddy 焕新升级: 软件开发智能体 Craft 重磅发布

CodeBuddy

腾讯云 腾讯 AI编程 CodeBuddy

MCP Server 开发实战 | 大模型无缝对接 Grafana

阿里巴巴云原生

阿里云 云原生 Grafana

【活动预告】4.19 相约上海,详解数据库与 AI 的理念融合

Apache IoTDB

ERP系统生产模式(ATO、MTS、MTO、ETO、CTO)你了解多少?!

积木链小链

数字化 ERP 智能制造 生产模式

天润融通AI Agent重塑零售连锁行业客户服务竞争力

天润融通

海信三筒洗衣机全系配置及价格公布,疯狂宠粉!科技创新引领产业升级

新消费日报

CST联合Isight进行天线DOE设计

思茂信息

cst cst电磁仿真 CST Studio Suite

线上线下畅玩无阻,陪玩系统小程序源码是怎样做到的?

DUOKE七七

php vue.js MySQL uniapp

Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速

阿里巴巴云原生

阿里云 Serverless 云原生

Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置

阿里巴巴云原生

阿里云 云原生 nacos

无感改造,完美监控:Docker 多阶段构建 Go 应用无侵入观测

阿里巴巴云原生

golang 阿里云 云原生

阿里云 MSE Nacos 发布全新“安全防护”模块,简化安全配置,提升数据保护

阿里巴巴云原生

阿里云 云原生 nacos MSE

优化 Apache 日志记录的 5 个最佳实践

运维有小邓

日志管理系统 Apache 日志

如何合理规划Elasticsearch的索引|得物技术

得物技术

索引 Elastic Search 容量设计

前端热更新:无声引擎驱动中国互联网的数字化转型

xuyinyin

Cision宣布获得2.5亿美元新资金

财见

CAD缩放后有符号不显示怎么办

极客天地

JVM动态语言比武_Java_Charles Humble_InfoQ精选文章