阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

JRuby 综述:Google App Engine 支持、BiteScript 及新的编译器

  • 2009-04-14
  • 本文字数:856 字

    阅读完需:约 3 分钟

几周前 JRuby 1.2 发布了( InfoQ 对 JRuby 1.2RC1 的报道总览了其变化)。借助于该发布,JRuby 团队现在又开始了新的项目。

现在 Ola Bini 正忙于 JRuby 和 Ioke 的测试工作,它们将用在 Google 新发布的 Google App Engine 的 Java 支持上(请查看 InfoQ 对 Java on GAE 的报道)。Ola 还谈到了 GAE 上的 JRuby 和 Rails 的需求以及建立 JRuby on Rails 应用的方式:

你需要使用最新版的 JRuby。对于 JRuby 来说,自从 1.2 版发布后大多数变化都加到了主干上,因此请先检出最新的代码然后再进行构建。最新版的 Rails 也没什么问题。

因为 GAE 并不支持 RDBMS,所以无须使用 JDBC。 Ola 给出了 Bumble,这是对 Google DataStore 的一个包装器

JRuby 仅仅是 GAE 所支持的众多 JVM 语言中的一个,其他还有 Clojure 及 Rhino(Google维护了支持语言的一个列表)。Ola 还列出了GAE 的一些限制,这些限制会导致JVM 语言出现问题,同时关于反射、线程、字节码验证等方面的一些示例也进行了更新。

与此同时,Tom Enebo 创建了 JRuby-Parser ,它从 JRuby 中抽取出了 JRuby 解析器,凭借这一点,IDE 或其他工具可以使用解析器而无需依赖整个 JRuby。

Charles Nutter 开始着手编写全新的 Ruby 编译器,其目标是将 Ruby 类型编译成 Java 类

* 使用我的字节码 DSL “BiteScript”,就像 Duby 一样 * 使用类的“运行时”定义来生成对应的 Java 版本

第二点很重要。相对于使用离线编译器来检测文件并生成代码,该编译器实际上使用了运行时的类来创建对应的 Java 版本。这意味着我们可以使用通常的元编程工具,这样无论何时,只要编译器得到类,它就能查看到其中的所有方法。

Charles 还发布了一个有用的工具 BiteScript (用于创建字节码的内部 DSL),该工具使用 JRuby 生成字节码。JVM 字节码会映射到 Ruby 方法上,由后者生成字节码;用于创建类和方法的那些 Ruby 方法构成了 API 并采取紧凑的方式来生成 class 文件。

请查看 Charles 关于 BiteScript 发布的声明来了解更多信息。

查看英文原文: JRuby Roundup: Google App Engine Support, BiteScript, New Compiler

2009-04-14 01:061307
用户头像

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

关注

评论

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

React组件复用的技巧

夏天的味道123

React

深度剖析React懒加载原理

xiaofeng

React

一文搞懂XaaS

俞凡

架构 云原生

C++学习---_IO_new_fdopen函数原理分析学习

桑榆

c++ 源码分析 10月月更

硬核好文!网络拓扑类型:总线、环形、星形、网状、树形、点对点、混合

wljslmz

网络技术 网络拓扑 10月月更

基于IDE和dlv远程调试Kubernetes组件

琦彦

Go Kubernetes 调试 10月月更 delve

【牛客刷题-算法】NC16 对称的二叉树

清风莫追

算法 二叉树 10月月更

Servlet规范中的监听器-Listener

楠羽

Servlet 笔记 10月月更

React性能优化的8种方式

xiaofeng

React

React中常见的TypeScript定义实战

xiaofeng

React

开发者有话说|我何以坚持编程25年?

个人成长

Qt|双缓存机制

中国好公民st

c++ qt 10月月更

书单推荐|宅家不动过国庆,好书相伴不寂寞

图灵教育

书单 国庆节

react源码中的hooks

flyzz177

React

这可能是你需要的React实战技巧

夏天的味道123

React

ESP32-C3 学习测试 蓝牙 篇(六、添加 Service)

矜辰所致

service 蓝牙 ESP32-C3 10月月更

Vue3入门指北(八)v-model

Augus

Vue3 10月月更

InetAddress.getLocalHost() 执行很慢?

xiaoxi666

网络 网络库

Python应用之反转字符串

智趣匠

10月月更 反向字符串输出 函数与表达式

【牛客刷题-算法】NC25 删除有序链表中重复的元素-I

清风莫追

算法 链表 10月月更

面向对象究竟是什么鬼?该如何理解?

乌龟哥哥

10月月更

深入了解计算机语言

邱学喆

响应式编程 C语言 汇编 对象编程 C++

Java 属性文件乱码问题

HoneyMoose

一Go到底】第四天---数据类型

指剑

Go golang 10月月更

【C语言难点突破】指针入门讲解

Geek_65222d

10月月更

书单推荐|宅家不动过国庆,好书相伴不寂寞

图灵社区

书单 国庆节

恼人的网络时延

agnostic

网络时延

【愚公系列】2022年10月 Go教学课程 018-分支结构之switch

愚公搬代码

10月月更

最长回文串

掘金安东尼

10月月更 算法、

【牛客刷题-算法】NC22 合并两个有序的数组

清风莫追

算法 数组 10月月更

2022-10-04:以下go语言代码输出什么?A:{123} main.T{x:123} B:{123} T{x:123} C:boo boo D:boo main.T{x:123}。 packag

福大大架构师每日一题

golang 福大大 选择题

JRuby综述:Google App Engine支持、BiteScript及新的编译器_Java_Werner Schuster_InfoQ精选文章