写点什么

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

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

关注

评论

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

Android-系统预设-App,有什么难的?,关于Android开发的面试经验总结

android 程序员 移动开发

Android-面试中常问的MMAP到底是啥东东?原理及应用解析

android 程序员 移动开发

Android 面经:我是如何进入大厂腾讯的?,kotlinui封装

android 程序员 移动开发

Android---性能优化方案分享,快来收藏

android 程序员 移动开发

Android-_巧_仿蚂蚁森林水滴动效,Android开发技巧

android 程序员 移动开发

Android-源码分析-Dalvik-虚拟机创建过程,干货整理

android 程序员 移动开发

Android-Studio-教程:入门开发第一个程序,真牛皮

android 程序员 移动开发

Android-是不是要跪了-我几乎是一个废安卓了!,kotlin开发框架

android 程序员 移动开发

Android-面试-Jetpack-LiveData-你必须滴知道得知道的那些玩意儿

android 程序员 移动开发

Android-Framework学习笔记(三)SystemServer进程启动过程

android 程序员 移动开发

Android-悬浮窗功能的实现(附Java、KT实现源码,Android黑科技实现原理揭秘

android 程序员 移动开发

Android-音视频学习系列-(三)-Shell-脚本入门,高级安卓工程师面试题

android 程序员 移动开发

Android 面试主题集合整理,血与泪的总结

android 程序员 移动开发

Android-OkHttp-史上最优雅的设置baseUrl(1),android开发视频播放代码

android 程序员 移动开发

Android-怎么就不卡了呢之Choreographer,怒斩腾讯和阿里的Offer

android 程序员 移动开发

Android-样式系统---主题背景属性,最新金九银十Android面试合集

android 程序员 移动开发

Android 面试总结 - LiveData,2021大厂Android知识点总结

程序员 移动开发

Android-架构组件的最新进展,安卓工程师面试题及答案

android 程序员 移动开发

Android-Navigation的四大要点你都知道吗?,深入理解JVM

android 程序员 移动开发

Android-OkHttp-史上最优雅的设置baseUrl,安卓binder

android 程序员 移动开发

Android-适配各国语言、屏幕尺寸、系统版本及常见适配方法总结

android 程序员 移动开发

Android-Framework学习笔记(二)Zygote进程启动过程,移动互联网app开发

android 程序员 移动开发

Android-框架问题分析案例---谁杀了桌面-,android软件开发教程

android 程序员 移动开发

Android 适配 64 位架构,掌握这十个搜索技巧让你的工作效率至上提高十倍

android 程序员 移动开发

Android--关闭某个指定activity,android游戏开发实战

android 程序员 移动开发

Android-11标配的新技术,再也不怕死机了!,androidapp保活

android 程序员 移动开发

Android-APK防止二次签名妙招:为何你的应用老是被破解,该如何有效地做签名校验

android 程序员 移动开发

Android---教你如何用三十分钟在安卓上开发一个微笑抓拍神器

android 程序员 移动开发

Android-气泡对话框(根据被点击View位置显示、可定制,移动端开发

android 程序员 移动开发

Android-面试官:View-post()-为什么能够获取到-View-的宽高-?

android 程序员 移动开发

Android-黑科技保活实现原理揭秘,字节跳动Android内部学习资料泄露

android 程序员 移动开发

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