什么是混合Ruby和其他语言的最佳方式? (特别是C++)

问题描述:

我正在学习Ruby,我开始使用C语言构建扩展。我有编程Ruby实用程序员指南,所以我可以遵循这些基本知识点和螺栓。我想知道的是,是否已经存在一些漂亮的框架/什么来帮助Ruby和其他语言之间的互操作性,C++对我来说是最重要的。我试过Google搜索,但结果集中在语言比较上,而不是语言互操作性。什么是混合Ruby和其他语言的最佳方式? (特别是C++)

TIA,

安迪

+0

有cplus2ruby(http://rubyforge.org/projects/cplus2ruby/),虽然我不能深入地评论它的有用性,但我会把它留给红宝石专家... – ChristopheD 2010-04-16 22:43:21

+0

非常有趣,我会肯定要玩一下,谢谢! (SWIG的优势在于可以使用许多不同的脚本语言......哦,决定,决定!) – Andy 2010-04-17 13:52:11

看看SWIG。这是将C和C++程序与其他使用高级语言编写的程序集成的一个很好的框架。它最初是为了支持Python,TCL和Perl而编写的,但现在已经扩展到支持Ruby。

+0

谢谢,这看起来非常有用。 – Andy 2010-04-17 13:12:28

+0

PS无法为您的答案投票。我觉得这整个声誉真的很有趣 - 它就像一个RPG和XP!现在什么时候可以得到魔法导弹? – Andy 2010-04-17 13:53:56

如果你想使用Ruby与Java,然后看看JRuby。它是Ruby的Java实现,并允许您通过Ruby调用Java库/代码。

http://jruby.org/

+0

谢谢。我听说过它,但没有看到它。我想我可能想用它来运行我的Ruby代码(需要调查优点和缺点),但我不认为我想在Java中进行我的扩展。这主要是因为性能的原因,我会做其他的语言扩展,而且我最喜欢C++ ...... – Andy 2010-04-17 13:45:09

FFI是挂钩的Ruby实现高达C库的推荐方法,但有点谷歌搜索表明,这可能会无法正常工作,是一个用C++,所以尝试痛饮。有一个FFI-SWIG的东西here

+0

谢谢,有趣。从一眼就可以看出它的巨大优势是我可以用任何方式制作与Ruby无关的C库(不包括ruby.h,rb_define_class等),并使用它们与它们进行交互。很不错,但不完全是我在这种情况下寻找的。再次感谢。 – Andy 2010-04-17 13:39:45