NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Ruby.NET 0.8 发布:提升与其它.NET 语言的互操作性

  • 2007-06-20
  • 本文字数:1203 字

    阅读完需:约 4 分钟

如今 Ruby 运行时的实现已经满大街俯拾皆是了。目前在 Java 虚拟机平台上已有两个 Ruby 的实现了,它们分别是 JRuby 和 XRuby,而.NET 平台也在迎头赶上。IronRuby项目就在上个月引来了众多开发者的关注,但是不到 2007 年 7 月末它最终被发布出来,外界谁都不知道它到底有多完善。

在另一方面, Gardens Point Ruby.NET 编译器是由昆士兰理工大学的 Wayne Kelly 博士和 John Gough 教授所领导的研究小组负责开发的,于2006 年6 月面世,通过将Ruby 代码编译成微软中间语言( Microsoft Intermediate Language/MSIL,.NET CLR的指令集),使得代码在 CLR 之上得以运行。

同样是提供了 Ruby 在.NET 环境下的运行机制,IronRuby 项目与 Ruby.NET 项目间的关系非常微妙。 IronRuby 项目的开发者 John Lam 曾提到,IronRuby 项目借用了 Ruby.NET 项目中的部分代码

我们在今年初得到了 Ruby.NET 项目代码使用的授权许可,并且我们在 IronRuby 之中使用了 Ruby.NET 的扫描机制和解析机制。这帮助我们减轻许多编码方面的工作,同时使我们项目获得了与 MRI(译注:Matz’s Ruby Interpreter,即 Matz 的 Ruby 解释器,Ruby 的 C 语言版本,也是标准实现)高度集成的扫描器和解析器。

在项目代码实现中,符合标准的语法解析器是非常重要的组成部分,使用 Ruby.NET 的解析器可以减轻 IronRuby 项目组大量的工作。

Ruby.NET 新的 0.8 版本中添加了重要的功能改进

自从在 Ruby.NET 上一个版本中我们添加了与其它.NET 语言的互操作机制以来,基于.NET 语言开发的组件能够方便的使用 Ruby.NET 实现跨语言的函数调用,反之也是如此。

下面是一个在 C#代码中调用 Ruby 代码的例子,Ruby 编写的类如下:

class Person<br></br> def init(name, age)<br></br> @name = name<br></br> @age = age<br></br> end<p> def print()</p><br></br> puts "#{@name} is #{@age}"<br></br> end<br></br>end在 C#中调用 Ruby 代码:

Person bruce = new Person();<br></br>bruce.init("Bruce", 42);<br></br>bruce.print();在 Ruby 中调用基于.NET 编写的函数也是遵循同样的方式,在 0.8 版本发布中,关于项目有一段有趣的注释:

项目将会很快转移到一个更为普遍的开放源代码社区之中,同时需要吸引更多的开发者参与到项目之中。如果你在维护开源社区运转方面有丰富的经验,我们将会非常欢迎你加入到社区之中。

至于近来关于 IronRuby 的一些疑虑, 事实上一直以来,许多 Ruby 基础运行时库的开发者已被吸收到 JRuby、XRuby、Rubinius 和 IronRuby 这些项目的开发之中,熟悉 Ruby 的.NET 开源项目参与者将会感兴趣语言互操作方面的内容。 由于对IronRuby 存在着一些疑虑,而且从去年以来,有许多Ruby 运行时实现的开发人员都被商业公司雇用,为各自的Ruby 实现(包括JRuby、XRuby、Rubinius 和IronRuby)添砖加瓦,对Ruby 有强烈兴趣的.NET 开源开发人员可以好好探索一下这个项目。

查看英文原文: Ruby.NET 0.8 release

2007-06-20 07:30776
用户头像

发布了 74 篇内容, 共 11.7 次阅读, 收获喜欢 3 次。

关注

评论

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

PostgreSQL:内存结构

天翼云开发者社区

LED显示屏怎么翻新?

Dylan

LED LED显示屏 led显示屏厂家

git使用ssh

刘旭东

git SSH

深度访谈 Eolink 高管|研发团队如何更好地进行 API 管理?

万事ONES

项目管理 软件研发 API管理

MQTT发布/订阅模式介绍

EMQ映云科技

物联网 IoT mqtt 客户端 企业号 2 月 PK 榜

打造自主可控云网算力,天翼云为湖南数字经济发展注入新动能

天翼云开发者社区

分布式云原生平台Kurator v0.2.0正式发布!一键构建分布式云原生平台

华为云开发者联盟

云计算 华为云 企业号 2 月 PK 榜 华为云开发者联盟

接口调试时如何实现接口之间的数据传递?

不想敲代码

IoT Studio场景最佳实践——实践类

阿里云AIoT

阿里云 物联网 IoT

了解医疗上云门道,尽在“共铸国云 红云行业思想汇”!

天翼云开发者社区

eKuiper 1.8.0发布:零代码实现图像/视频流的实时AI推理

EMQ映云科技

物联网 IoT 视频流 流式计算 企业号 2 月 PK 榜

关于DataLeap中的Notebook,你想知道的都在这

字节跳动数据平台

数据库 大数据 数据治理 数据研发 企业号 2 月 PK 榜

C#/VB.NET 如何在不同工作簿之间复制单元格范围

在下毛毛雨

C# .net Excel 文档操作

serverless与容器优缺点

天翼云开发者社区

serverles

Teradata的离开,是国内ToB服务转变的信号

ToB行业头条

快速开发光伏电站数字孪生运维系统——实践类

阿里云AIoT

阿里云 物联网 IoT

火山引擎数智平台的这款产品,正在帮助APP提升用户活跃度

字节跳动数据平台

大数据 客户数据平台 客户 客户数据 企业号 2 月 PK 榜

接口测试的测试要点

Liam

测试 接口测试 接口测试软件

如何从0开始搭建 Vue 组件库

京东科技开发者

npm UI vant Vue3 组件库

全网招募P图高手!阿里巴巴持续训练鉴假AI

阿里技术

人工智能

使用 Ingest Pipeline 在 Elasticsearch 中对数据进行预处理

Se7en

OpenYurt v1.2 亮点速览丨云边流量峰值相比原生 K8s 降低 90%

阿里巴巴云原生

阿里云 开源 容器 云原生 openyurt

人工智能 LLM 革命前夜:一文读懂ChatGPT缘起的自然语言处理模型Transformer

阿里技术

人工智能 自然语言处理

如何在Excel中查找并高亮数据

Geek_249eec

C# .net Excel VB.NET

Apipost正式发布《API行业白皮书》!

不想敲代码

API 白皮书 行业趋势 行业报告

从MVC到DDD转变过程中的一点碎碎念

为自己带盐

DDD CQRS

聚焦现代化应用安全,F5的安全扩增,稳了!

F5 Inc

架构 安全 API 应用

天翼云联合国际咨询机构IDC发布《中国医疗云建设与应用白皮书》

天翼云开发者社区

腾讯内网“Redis 深度(全彩版小册)”限时开源!面面俱到太全了

架构师之道

Java 面试 架构师

创建MQTT连接时如何设置参数?

EMQ映云科技

物联网 IoT mqtt 企业号 2 月 PK 榜 连接参数

安全可信| 首批!天翼云智算平台率先通过可信算力服务评估

天翼云开发者社区

Ruby.NET 0.8发布:提升与其它.NET语言的互操作性_.NET_Werner Schuster_InfoQ精选文章