写点什么

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

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

关注

评论

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

极狐GitLab 企业级 CI/CD 规模化落地实践指南(一)

极狐GitLab

DevOps cicd runner template Component

一文预览 | 8 月 16 日 NVIDIA 在 WAVE SUMMIT深度学习开发者大会 2023精彩亮点抢先看!

飞桨PaddlePaddle

人工智能 百度飞桨 WAVE SUMMIT

本地工具是什么意思?本地工具与远程工具一样吗?

行云管家

IT运维 远程工具 本地工具

18. Python中的模块与包

茶桁

Python

实战:工作中对并发问题的处理 | 京东物流技术团队

京东科技开发者

数据库 并发 数据库锁 更新丢失 企业号 8 月 PK 榜

分布式事务的华丽进化 | 京东物流技术团队

京东科技开发者

分布式事务 数据库事务 企业号 8 月 PK 榜 柔性分布式事务

从零开始学极狐GitLab|03 Runner 裸机部署

极狐GitLab

DevOps gitlab cicd SaaS DevSecOps

因为私域流量运营,App重新受重视?

FinFish

小程序生态 私域运营 小程序容器 私域流量运营 流量运营

GeaFlow任务能力增强:通过API定制流图计算逻辑

TuGraphAnalytics

分布式计算 java编程 API 图计算 tugraph

面试涨薪神奇操作,直接多给3k的JVM垃圾优化笔记

小小怪下士

Java 程序员 JVM 调优

断点续传的未来发展趋势与前景展望

镭速

断点续传 文件传输软件

突破大模型 | Alluxio助力AI大模型训练-成功案例(一)

Alluxio

机器学习 gpu 模型训练 大模型 AIGC

语音聊天源码平台开发小知识

山东布谷网络科技

19. 第三方库的管理和虚拟环境

茶桁

Python pip conda

【资料包】HDC.Together 2023精选Codelabs指南现已上线(内有活动)

HarmonyOS开发者

HarmonyOS

企业文件外发系统必备八大要素

镭速

文件外发系统

聊聊JDK1.0到JDK20的那些事儿 | 京东云技术团队

京东科技开发者

Java jdk jdk8 jdk17 企业号 8 月 PK 榜

极狐GitLab 上新:跳过无需备份项目,节约数 10 至 1000 倍时间与磁盘空间

极狐GitLab

DevOps gitlab 磁盘空间 数据备份恢复 备份时间

百度百舸平台的大模型训练最佳实践

Baidu AICLOUD

容错机制 大模型训练 异构计算 CheckPoint

Programming abstractions in C阅读笔记p111-p113: boilerplate

codists

aspera替代方案:探索这些安全且可靠的文件传输工具

镭速

aspera替代方案 文件传输工具

2023城博会|上海国际智慧工地展览会

AIOTE智博会

城博会 上海城博会

DTCC 2023即将启幕 明天见!

酷克数据HashData

规划性和可扩展性,助力企业全面预算管理的推进

智达方通

全面预算管理系统 智达方通EPM系统 财务规划与分析 多维模型

相约天津!全国智能汽车竞赛百度创意组总决赛通知

飞桨PaddlePaddle

百度 paddle 百度飞桨 飞桨国赛 全国大学生智能汽车竞赛

小灯塔系列-中小企业数字化转型系列研究——知识管理测评报告

向量智库

洛阳等级保护测评机构有哪些?在哪里?咨询电话多少?

行云管家

等保 等级保护 等保测评 洛阳

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