写点什么

Mobile Ruby 综述:Symbian Ruby 1.9、Android、JME、iPhone 及 Mono

  • 2008-11-23
  • 本文字数:1017 字

    阅读完需:约 3 分钟

Ruby 1.9 针对 Symbian 的版本已经发布了,之前针对 Symbian 的 Ruby 1.8 版也早已出现(同时还有 Python for Symbian)。

除了应用于 Symbian 的 Ruby,现在还缺少对移动电话上的 Ruby 的支持。不过我们可以在 Android 上运行 Ruby 的 ARM 版

既然 Android 基于 Java,我们当然就可以在它上面运行 JRuby 了。一个需要注意的问题是 Android 不会执行 Java 字节码,而是执行 Dalvik 字节码(我们必须将 JVM 字节码转换成 Dalvik 字节码)。在 JRuby 用户列表的一个讨论中,JRuby 的 Charles Nutter 列举出了如下可能的解决方案

有如下两种可能的执行场景会突破这些限制: * 纯解释,所有的代码在设备上完成了解析并且通过我们的 AST-walking 解释逻辑执行。其速度可能比我们想的要慢点但实现起来很简单。

* 纯编译,所有的调用和处理都提前生成好。

在当前的代码基上已经实现了这两种方式;还需要做的一件事就是生成一个可用的.jar 文件,该文件只会提供其中一种方式并且不会依赖于另一种方式。

当前在 JME 上运行 JRuby 实在不是一个好主意。早在2007 年的JavaOne 大会上就已经介绍了针对JME 的JRuby 版本。这个链接页面上的Zip 文件含有该介绍的幻灯片,它详细说明了如何得到JRuby 的一个子集以运行于JME 上。因为JME 是Java 的一个简化版,因此要想让JRuby 运行于其上需要对JRuby 的很多内容进行重写。当前版本的JRuby 依赖于Java 5——但正如幻灯片中所述,JME 缺少Java 1.2 之后所增加的那些类和方法。其中最缺少的就是正则表达式和大部分Collections API。

针对iPhone 的IronRuby 和Mono 很快就要出来了。但iPhone AppStore 不提供解释器的下载,最新版本的Mono 提供了一个解决方案:提前编译,也就是说将CIL 中的代码编译到CPU 指令中,对于iPhone 来说就是编译到ARM 指令中。因为IronRuby 可以将Ruby 代码编译到CIL 中而不是对其进行解释,所以我们可以将Ruby 应用编译到CIL 中,接下来AOT 再来编译并在iPhone 中运行该应用。正如 Miguel de Icaza 所述,要想成功运行 IronRuby 代码,我们还需要解决一些小问题

当然,一旦移除了 JIT,你将无法使用任何动态生成的代码。这意味着如果没有 Reflection.Emit,也就没有了 IronPython/IronRuby。 John Lam 在 PDC 上跟我说他们正在研究如何实现 IronPython/IronRuby/DLR 的静态编译,因此这种限制很可能是短暂的。

查看英文原文: Mobile Ruby Roundup: Symbian Ruby 1.9, Android, JME, iPhone and Mono

2008-11-23 23:22872
用户头像

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

关注

评论

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

生成式 AI 时代数据库与大模型的融合探索

编程猫

中小企业数字化转型难点凸显,华为云Flexus X实例革新上云体验

YG科技

华为云Flexus X实例:最高6倍算力提升,满足中小企业多元需求

轶天下事

华为云Flexus X实例创新柔性算力技术,助力企业提质、增效、降本

轶天下事

重塑云服务,华为云Flexus X实例破解云服务传统难题

YG科技

聚焦中小企业实际需求,华为云Flexus X实例推动中小企业数字化转型愿转敢转

轶天下事

顺应数字化浪潮,华为云Flexus X实例助力中小企业破局崛起

轶天下事

顺应数字化趋势!Flexus X实例助力中小企业开启数字转型“必修课”

轶天下事

性能易用二合一!华为云Flexus X实例加快中小企数字转型

YG科技

华为云Flexus X实例全方位为中小企业护航,加速迈进“专精特新”

YG科技

双倍性能、跃级体验!华为云Flexus X实例助力企业轻松上云

轶天下事

华为云Flexus X实例,以创新技术打造中小企业高质量发展新引擎

轶天下事

自动化业务状态码设计

三七互娱后端技术团队

效率 自动化 状态码

数字化转型正当时!华为云Flexus X实例助力中小企业高效便捷上云

轶天下事

华为云Flexus X实例创新柔性算力!直击中小企业数字化转型痛点

轶天下事

华为云Flexus X实例依托生态优势,破解中小企业数字化转型困局

YG科技

激发云服务效能,华为云Flexus X实例助力破除中小企上云痛点

YG科技

数字化转型正当时!华为云Flexus X实例助力中小企业高效便捷上云

轶天下事

DARPA计划“消灭”C语言代码

我再BUG界嘎嘎乱杀

网络安全 编程语言 C语言 内存安全 DARPA

GitHub星标4000!清华大牛的CTF竞赛入门指南,真的太香了!

我再BUG界嘎嘎乱杀

黑客 网络安全 信息安全 PWN CTF竞赛

数字转型得力伙伴:华为云Flexus X实例打造云计算应用新标杆

轶天下事

解锁携程美食与景点数据接口:打造个性化旅行体验的秘密武器

tbapi

携程API 携程景点列表接口 携程酒店API 携程美食列表API

充分发挥数字经济赋能效应,Flexus X实例协助企业高效转型

轶天下事

华为云Flexus X实例性能出众,降本显著,促进中小企业高质量发展

YG科技

华为云Flexus X实例全方位创新,开拓企业数字化发展新边界

YG科技

无缝升级云服务,华为云Flexus X实例带来零门槛极致体验

YG科技

SpringBoot项目中HTTP请求体只能读一次?试试这方案

小明同学的学长

springboot java

直击中小企业痛点!Flexus X实例让中小企业也可以上好云、用好云

YG科技

开发者生产力提升的API终极指南

幂简集成

API

掀起性能巨浪:华为云Flexus X实例定义业务负载多面手

YG科技

论如何利用仿真技术轻松攻克电子产品热流体仿真难题

Altair RapidMiner

设计 汽车 电子产品 仿真 altair

Mobile Ruby综述:Symbian Ruby 1.9、Android、JME、iPhone及Mono_Java_Werner Schuster_InfoQ精选文章