AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

Lift JRuby 集成架起了 Ruby 与 Scala 之间的桥梁

  • 2011-02-19
  • 本文字数:1435 字

    阅读完需:约 5 分钟

近日,流行的 Scala Web 框架 Lift(单击以查看InfoQ 上关于Lift 的更多报道)想通过一个JRuby API 吸引Ruby 程序员。Lift 创建者 David Pollak 写到:“除了某些特殊情况,JRuby 中可以完美应用 Lift”。

但既然有了 Rails 和其他 Ruby 框架可以开发 Web 应用,Ruby 开发者为何还会使用 Lift 呢?David 在声明中写到:

Lift 无疑是目前最为优秀的 Web 框架。相对于其他任何 Web 框架来说,它对 Comet 和 Ajax 都提供了更好的语义支持。默认情况下,它比其他大多数框架都更为安全。基于 Lift 的应用的可伸缩性也更棒。Lift 应用要比其他大多数 Web 应用都更为简洁。换句话说,如果你是个 Ruby 开发者,正在寻找更加安全、可伸缩性更好的 Web 框架以构建交互性更好的应用,那么 Lift 就是你的不二之选。

你可以通过 Lift’s Seven Things 站点验证上面这些声明,该站点提供了一些示例,演示了“其他 Web 框架很难或是根本没法实现的 7 件事”。

我们向 David 问到:将 Lift 带给 Ruby 程序员的动机是什么。

我热爱 Scala,它是我最钟情的编程语言。在与一些开发组织交流并看到 Scala 的使用率之后,我认识到 Scala 在未来几年内的使用率不可能达到 Ruby,甚至是 Python 的水平。另一方面,Lift 已经演变为一个成熟的 Web 框架,比其他任何 Web 框架(看看 Seven Things 吧)都更为安全、更易于构建交互式应用。因此,我决定在 Lift 中支持其他语言。 我相信这么做是正确的,并且招聘了几名资深的 Ruby 开发者帮助我在 Lift 中开发 Ruby API,他们看起来像是 Ruby API,而非生硬地添加到 Lift 之上的附属物。我们打算采用 Ruby 的方式编写 Lift-Ruby 代码。感兴趣的读者可以到 http://liftjr.org 了解更多信息。

我真诚希望 Lift 之上的 Ruby API 能够以一种比 Scala API 更好的方式将 Lift 暴露出来,未来某一天,Ruby 方式终究会对 Lift 的 Scala API 产生积极的影响。

但作为静态语言 Scala 的拥趸,我的主要目标是少说、多听,看看我们到底能将 Ruby API 开发到什么程度。

InfoQ:从 JRuby 中访问 Scala 或是从 Scala 中访问 JRuby 会遇到什么问题呢?

JRuby API 是整洁、平滑且易于使用的。除了标准的 unityped 与完整的类型之间的差别外并没有什么实际的问题,请查看 Philip Wadler 的介绍。 如果从 JRuby 中访问 Scala,那么 Scala 的 singletons(object 关键字)会产生一些问题,我们已经增强了 JRuby,将其当作是 Ruby 的 Class 对象。Scala 还有一些符号方法名(如!、%、& 等等),我们需要将其在 JRuby 中公开出来,现在正在解决这个问题。

InfoQ:Scala 的一个非常灵巧,又被经常使用的一个特性就是模式匹配,而这在 Ruby 中却没有对应之物。你提到了 Ruby 中用于模式匹配的 DSL,能否向我们介绍一下呢?

这或许是整个项目中最为困难的一部分了。我们针对 Actor 做了一个设计(尚未实现),看起来还不错:

复制代码
class MyActor < LiftActor
def string(str) # same as case str: String =>
end
def some_message(p1, p2) # same as case SomeMessage(p1, p2) =>
end
end

我们还具体分析了每一种模式匹配的情况。重申一次,这个想法是以 Ruby 的方式编写 API,但却反映出 Lift 的语义而不是将 Scala 语法硬塞到 Ruby 语法中。 Lift Google Group 上的其他 Ruby 开发者的建议也是非常不错的。

Lift JRuby 集成有自己的站点( liftjr.org )。不知读者怎么看?Ruby 和 Scala 社区会从这种跨界中受益么?

查看英文原文: Lift-JRuby Integration Bridges the Gap Between Ruby and Scala

2011-02-19 02:001578
用户头像

发布了 88 篇内容, 共 262.7 次阅读, 收获喜欢 8 次。

关注

评论

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

报名参加通义灵码高校训练营,领 300 元阿里云产品通用抵扣金

阿里巴巴云原生

阿里云 云原生 通义灵码

VMware vCenter Server 8.0U2d 下载 - 修复堆溢出 (远程执行代码) 和本地权限提升漏洞

sysin

vSphere vmware vcenter esxi

2024年全球架构师峰会(ArchSummit深圳站)

后台技术汇

Java 后台开发 架构师 全球架构师峰会 ArchSubmit

多环境镜像晋级/复用最佳实践

阿里巴巴云原生

阿里云 云原生 云效

使用Python获取HTTP请求头数据

霍格沃兹测试开发学社

利用JAVA语言调用GLM-4接口实战指南

幂简集成

Java API 大模型

破除“数据孤岛”新策略:Data Fabric(数据编织)和逻辑数据平台

Aloudata

数据管理 数据孤岛 数据虚拟化 Data Fabric 数据编织

火山引擎×OPPO,以多样化AI智能体为手机用户带来全新体验

新消费日报

一文读懂Lumoz节点的潜力与收益,加密收益新范式

BlockChain先知

高考志愿服务,一张AI搜索的现实考卷

脑极体

AI

PhantomReference 和 WeakReference 究竟有何不同

bin的技术小屋

JVM Java’

快速掌握 WinRAR:详细安装与使用指南

霍格沃兹测试开发学社

Postman 集合变量使用详解

霍格沃兹测试开发学社

从钉钉到跨境电商技术演变,HHO通过NineData实现全球化业务布局

NineData

数据安全 数据管理 NineData 两氢一氧 本地机房

加密货币未来趋势展望

dappweb

ao

一文读懂Lumoz节点的潜力与收益,加密收益新范式

股市老人

使用Python获取HTTP请求头数据

霍格沃兹测试开发学社

解决华为NEXT应用开发中模拟器组件缺失问题

彭康佳

鸿蒙 an'droid

小鲤AI志愿填报助手:一键探索最适合你的大学专业

AI Inception

AI 高考 AIGC rag

报名参加通义灵码高校训练营,领 300 元阿里云产品通用抵扣金

阿里云云效

阿里云 云原生

VMware vCenter Server 8.0U1e 下载 - 修复堆溢出 (远程执行代码) 和本地权限提升漏洞

sysin

vSphere vcenter esxi

近期区块链市场趋势分析

dappweb

ao

英伟达成全球市值第一公司;苹果暂停下一代高端头显研发丨 RTE 开发者日报 Vol.227

声网

Altair 助力优化摩托车空气动力学性能,实现最佳的整流罩设计

Altair RapidMiner

人工智能 仿真 AIGC altair

质检迈入新时代,天润融通推出基于大模型的质检3.0解决方案

天润融通

人工智能

数仓安全:数据脱敏技术深度解析

快乐非自愿限量之名

数据库 数仓安全

华为阅读亮相BIBF:以AI赋能出版行业,引领阅读新业态

最新动态

MQTTX 1.10.0 发布:CLI高级文件管理与配置

EMQ映云科技

mqtt mqttx

VMware vCenter Server 7.0U3r 下载 - 修复堆溢出 (远程执行代码) 和本地权限提升漏洞

sysin

vSphere vcenter esxi

Web3新视野:Lumoz节点的潜力与收益解读

石头财经

区块链技术:解锁数字时代的信任与安全新纪元

dappweb

区块链 ao

Lift JRuby集成架起了Ruby与Scala之间的桥梁_Java_Mirko Stocker_InfoQ精选文章