写点什么

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

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

关注

评论

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

智能交互引擎平台有奖体验活动开始啦!

Openlab_cosmoplat

人工智能 测试 大模型 问答助手 有奖体验

MobPush 个性化参数API

MobTech袤博科技

开发者 产品动态

院感培训ppt课件怎么做?用这3款做ppt的ai软件自动生成!

彭宏豪95

职场 PPT 办公软件 AIGC AI生成PPT

信息安全: MAC(消息认证码)算法,保护数据完整性和真实性的利器

我再BUG界嘎嘎乱杀

网络安全 安全 后端 网安

一文揭开JDK21虚拟线程的神秘面纱

不在线第一只蜗牛

Java Python jdk 算法

【论文速读】| LLMCloudHunter:利用大语言模型(LLMs)从基于云的网络威胁情报(CTI)中自动提取检测规则

云起无垠

即构场景化SDK UIKits,互动应用开发周期缩短 75%

ZEGO即构

企业出海 泛娱乐出海 UI组件库 音视频SDK,直播 即构UIkits

爆赞!终于有大佬把网络安全零基础入门教程给讲明白了!

我再BUG界嘎嘎乱杀

网络安全 安全 入门 零基础 网安

PingCAP 王琦智:下一代 RAG,tidb.ai 使用知识图谱增强 RAG 能力

PingCAP

数据库 知识图谱 TiDB 人工智能、 ;RAG

工业智能化|人工智能与仿真的共生

Altair RapidMiner

人工智能 算法 汽车 仿真 altair

EMQX 跨域集群:连接三大洲,横跨 12,600 公里的数据纽带

EMQ映云科技

mqtt 分布式部署 emqx mqtt broker 跨域集群

MobPush iOS端 SDK API

MobTech袤博科技

开发者 产品设计 产品动态

11K star!开源WAF的NO1,不花钱也能搞定安全

我再BUG界嘎嘎乱杀

GitHub 开源 网络安全 安全

《搜索型数据库白皮书》正式发布,极限科技荣登贡献单位榜单

极限实验室

白皮书 极限科技 搜索型数据库

腾讯云大数据TBDS 助力国有大行一表通业务性能翻三倍!

腾讯云大数据

腾讯云 大数据

大客户销售设法接触客户决策层 怎么操作成功概率最高

客户在哪儿AI

ToB营销 ToB获客 ToB增长 大客户营销

深度揭秘!观测云产品核心理念

观测云

观测云 可观测性用观测云

【IoTDB 线上小课 05】时序数据文件 TsFile 三问“解密”!

Apache IoTDB

Chrome扩展程开发初探

FunTester

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